1.
ヤフー株式会社
Confidential :Discussion purpose only
Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
2014/6/4
Riak を利用したパーソナライズ事例
仁科 朋也
tonishin@yahoo-corp.jp
2.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P2自己紹介
• 氏名: 仁科 朋也
• 入社年月: 2010年4月(新卒)
• 担当業務: レコメンデーションシステム
• システム設計、開発、運用
• ストレージ設置、運用
• 配信システム(APIのようなもの)の開発、運用
3.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P3agenda
• システムについて
• パーソナライズ事例
• システム概要
• 格納しているデータ
• Riak について
• サーバ構成と設定・監視
• クライアント
• 運用事例
4.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P4agenda
• システムについて
• パーソナライズ事例
• システム概要
• 格納しているデータ
• Riak について
• サーバ構成と設定・監視
• クライアント
• 運用事例
5.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P5パーソナライズ事例
スマートフォン・タブレットのY!トップページの
『あなたにお勧め』
6.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P6agenda
• システムについて
• パーソナライズ事例
• システム概要
• 格納しているデータ
• Riak について
• サーバ構成と設定・監視
• クライアント
• 運用事例
7.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P7レコメンドシステムについて(はじめに)
社外秘の情報を含むため、詳細説明は省かせて頂き、
今回は以下の事項をご紹介します
• レコメンドシステム概要
• ユーザデータ作成フロー
8.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P8レコメンドシステム(概要)
Y!TOP
Riak
ユーザデータ
コンテンツ
ストレージ
コンテンツデータ
Optimizer
(API)
9.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P9ユーザデータ作成フロー(ユーザの行動)
Y!ニュース
・
・
・
各サービス
Y!検索
10.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P10ユーザデータ作成フロー(スコアリング)
Y!ニュース
・
・
・
ログデータ
Hadoop
ユーザデータ
各サービス
Y!検索
ユーザに紐づく、ワードとそのスコア
11.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P11ユーザデータ作成フロー(アップロード)
Y!ニュース
・
・
・
ログデータ
Hadoop
ユーザデータ
Riak
ユーザデータ
各サービス
Y!検索
Uploader
12.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P12ユーザデータ作成フロー(提供)
Y!ニュース
・
・
・
ログデータ
Hadoop
ユーザデータ
Riak
ユーザデータ
Optimizer
(API)
レコメンド
データ生成
ロジック
各サービス
Y!検索
Uploader
Y!TOP
13.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P13agenda
• システムについて
• パーソナライズ事例
• レコメンドシステムについて
• 格納しているデータについて
• Riak について
• サーバ構成と設定・監視
• 運用事例
27.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P27パフォーマンステスト時のリソース
リリース前のパフォーマンステスト時の
リソースの使用状況(dstat コマンドにて取得)
※メモリを全て解放した後測定しています
28.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P28パフォーマンステスト時のリソース
リリース前のパフォーマンステスト時の
リソースの使用状況(dstat コマンドにて取得)
※メモリを全て解放した後測定しています
29.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P29リソースの使用状況
• Disk I/O: 30%前後
• CPU: 10%前後
• メモリ: 60%前後
• ネットワーク: 10Mbps〜20Mbps
30.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P30監視について
• Riak のプロセスが生きているか
• 300ms 以内に返せているか
• ディスクI/O
• メモリ
• ネットワーク帯域
31.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P31agenda
• システムについて
• パーソナライズ事例
• システム概要
• 格納しているデータ
• Riak について
• サーバ構成と設定・監視
• クライアント
• 運用事例
32.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P32クライアントについて
基本的にパフォーマンス重視の使用方法
• (システムの都合上)C++ のクライアントを使用
• パフォーマンスを求めるため、Riak への接続はpb を使用
• read quorum = 1
3つのレプリケーションからの1つでもレスポンスがあればOK
• 使用したクライアントではタイムアウト制御が出来なかったため、
boost::thread を利用して強引にタイムアウト制御を実装
33.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P33agenda
• システムについて
• パーソナライズ事例
• システム概要
• 格納しているデータ
• Riak について
• サーバ構成と設定・監視
• クライアント
• 運用事例
34.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P34運用事例
半年以上運用して以下の対応を行いました。
• サーバの追加
• サーバダウン
35.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P35サーバの追加
1. 監視設定・sysctl 等の設定変更
2. Riak のインストール
3. Riak へサーバを追加する
riak-admin cluster join riak@xxx.xx.xx.xx
riak-admin cluster plan
riak-admin cluster commit
36.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P36サーバ投入時の帯域
• 新クラスタ作成後、初めてデータを流したとき
• 既存クラスタにサーバを追加したとき
->帯域の使用量が多くなる
Transfer-limit でしぼる
riak-admin transfer-limit riak@xxx.xxx.xxx.xxx <設定値>
37.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P37サーバダウン
深夜に一台のサーバがハードウェア障害によりダウン
-> ダウンした時に接続していたクライアントが一度エラーを出力
<応急対応開始>
• 他のサーバから問題なく引かれていることを確認
• アラートの通知を切る
<応急対応終了>
<翌日出社後>
• サーバリプレイスを行う
サーバがダウンしたのは一度だけ
38.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P38最後に
Riak を使ってみてどうだったか
• 運用面が優れている
• チューニング大事
• 社内に頼れる先輩がいてありがたかった
39.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
P39
ご清聴ありがとうございました
40.
Confidential :Discussion purpose only Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
Be the first to comment