狠狠撸

狠狠撸Share a Scribd company logo
黄色い象と共に生きる
(株)サイバーエージェント
大田 和寛
@ciela
今日のおはなし
? Hadoopの簡単な紹介と業務導入に関して
事例と共にお話します
– あえてHadoop以外の話題も結構入れました
– ぼくは構築しただけです
– MapReduceプログラミングはしたことない
– はやりのKVSであるHBaseとかも触ったことな
い
近頃
? ビッグデータとか大規模データとか聞く
こと増えました
– 増えましたよね?
? そもそも大規模データとは
– 数ギガ?テラ?ペタバイト級のデータ
– 数億?数兆レコード
– 何らかのログを指すことが
多いように思えます
大規模データの使い道
? Webアクセスログ統計
? 全文検索用のインデックス作成
? 機械学習
? 画像?動画像処理
? 不正値?異常値検出
が、しかし…
いずれも普通のマシン1台で処理しようとし
た場合時間がかかってしょうがないっす…
分散処理の必要性
? 先に挙げた処理の多くはいわゆるバッチ
処理がメイン
– 対象となるデータの特性として
? 細分化可能
? 並列処理可能
ということはもし複数マシン上で処理環
境を整えることができれば時間短縮につ
ながる???!
GFS/MapRedue
? と、いうことをGoogleが論文で発表しま
した
– Google File System
? スケーラブルな分散ファイルシステム
– MapReduce
? データセットを小さな塊に分割し並列処理する
? Googleはこれらを利用して自前の検索エ
ンジンに役立てていたようです
– PageRankとか
黄色い象の誕生
? そんな折、誰でも気軽に大規模な並列分
散処理フレームワークを利用できるよう
にと願いを込めて開発が始まったのが
Hadoopです
Doug Cuttingさん
Hadoop
? MapReduce/GFSのオープンソース実装
– マスタ?スレーブ構成
? スレーブを増やすことで処理能力及び容量の向上
が可能
– Java製オープンソース
– コモデティ(コスパが高い)なIntelアーキテ
クチャサーバを対象
おおまかなアーキテクチャ
Slave Slave Slave
Slave Slave
Master
Master
Master
? MR?HDFSともにマスタスレーブ型
RDBMSとの対比
? 一般的なデータストアであるRDBMSとどう
違うの?
RDBMS Hadoop
扱うデータサイズ ?数テラバイト テラバイト?ペタバイト
想定データ操作 小さなデータの参照?更
新
大きなデータの挿入?参照
(更新はなし)
レスポンスタイム 速い 遅い
サーバ台数と性能
向上策
1桁台数でスケールアップ 数十台?数千台でスケール
アウト
データ構造 構造化データ 準構造化データ
例えばこんな時
? PoSデータの解析
– 在庫?販売管理
– 売れ筋?販売傾向の把握
– 結構時間のかかる処理だったとします
? Hadoopを使えば???
– 処理サイクルが短期化!
– 分析範囲が拡大!
OSSとしてのHadoopの盛り上がり
? 昨年度は2192回のコミットがあったそう
– ほぼ100万行の変更
– 150人以上のコミッター
? 国内でも
– Hadoop Conference Japan
– 日本最大のHadoopカンファレンス
– 年々規模が大きくなっている
– 今年はビッグサイトでやったそうです
ちなみにここまでの話は
? この本にほとんど載ってます(?ω<)
– 最近あたらしい版でました
ここからは
某C社における事例紹介を交えてHadoopの
簡単な業務導入についてお話します。
※多少の前後逆転?誇張あり
某C社
? インターネットで様々なサービスを展開
しているWeb系の企業
– 儲かってるサービスから儲かってないサービ
スまで大小様々なアクティブサービスが50以
上
– 各サービスではユーザの行動ログを出力して
おり何とか運営に役立てたいと四苦八苦して
います
そこで
? データウェアハウス(データ基盤)専門の部署を設立し
よう!という流れに
– 各サービスごとにログを集約?解析し、1日単位でプロデュー
サーやディレクターにフィードバックする
– 解析結果はUU?PVなどの指標に反映
– もちろん中ではHadoopが大活躍!
DWH
サービスA
サービスB
サービスC
ログ転送
解析ログ転送
ログ転送
FBK
FBK
FBK
そんな中
? 某サービスPでは???
– 仮想空間におけるアバターサービスを運営しておりユーザが日
夜騒ぎ続けます
– カスタマーサポート(CS)からDWHの1日おきの解析ではユーザ
対応に間に合わないという悩みを抱えていました
? 卑猥な発言してないかとか援助交際もちかけていないかとか24時間
頻繁に確認したいです!><
? やむなく自前で検索基盤を持つことに???
– DWH側での対応はちょっと時間がかかる
– かといって既存のバッチ処理に組み込むにはログ量大杉
– というわけで、やっぱりHadoopに
さらなる追加☆要求
? 基本的にはDWHのサブセット版みたいな
のを作ればいいので解析?検索の実装は
なんとかなるが???
– エンジニア以外でもいぢれる画面がいいな?
– 即時性は大体1時間ずつぐらいで??????
などの要望がががが
正直ナマのHadoop本体だけだと辛い
? 非エンジニアに優しくないUI
– 各デーモンごとにWebUIはあるものの、しっ
かりとしたオペレーションを行うとなると
シェル必須
? 「定期的に」MapReduceを動かさないと
いけない
– 別途バッチスケジューリングシステムが必要
さらに極力コストをかけずに実現したい…
てなわけで考えました
? UI
– 管理画面に機能追加
? スケジューリング
– 新たにバッチシステムを作成
バッチシステム
管理画面
プロデューサー
ディレクター
CS
検索 1時間ごとに解析して
検索インデックスを作成
管理画面ログ検索機能
? UI
– 管理画面に機能追加
? スケジューリング
– 新たにバッチシステムを作成
バッチシステム
管理画面
プロデューサー
ディレクター
CS
検索 1時間ごとに解析して
検索インデックスを作成
管理画面ログ検索機能
? 管理画面に追加することで、利用者(プロ
デューサたち)の初期負担を軽減
– サービス運営、属人性高いっすよね???
? 入力フォームは期間、ユーザID、検索条件のみ
に絞る
– 必要最低限の項目に絞る
– 検索条件はチェックボックスで予め用意
– 検索期間の範囲は1周間以内にとどめる
– 入力後検索ボタンを押せば検索開始
? Web的には至って普通といえる泥臭い対応です
バッチシステム
? UI
– 管理画面に機能追加
? スケジューリング
– 新たにバッチシステムを作成
バッチシステム
管理画面
プロデューサー
ディレクター
CS
検索 1時間ごとに解析して
検索インデックスを作成
バッチシステム
? かの有名なJenkins氏を利用
? 解析にも継続的インテグレーションを
? 導入が楽
? ルーチンジョブの設定
? シェル呼び出し
? 失敗時アクション設定
解★決
? 画面作成簡単
– 基本的にはHTML/JS頑張るだけ
– ベースが既にあったのはデカい
? Jenkins氏がイイ役やってくれる
– ただのCIツールにしておくにはもったいない
? 常にHDFS上に検索インデックスが存在
– 検索がとても速い
? 失ったもの
– 柔軟な検索機能
– 動作環境の一貫性 まぁいいよね???
(恐らく)普通の解決法
? Hive
– MapReduceのフロントエンド
– SQLライクなクエリでアドホックに
MapReduceを実行できる
– 逐一実行形式なのでバッチジョブは不要
– その分検索として使ったときのレイテンシは
高い
SELECT user_id FROM activity_log
WHERE activity_type = ‘5’
AND date = ‘2013-08-24’
GROUP BY user_id
HAVING COUNT(user_id) >= 5
(恐らく)普通の解決法
? Hue
– Hadoopの(割とかっちょいい)UIを提供
もっといろいろ良くするには
まだまだあるHadoopの取り巻きを
利用してもっと良いクラスタ運用へ
ディストリビューション
? 色んな企業がHadoopをパッケージ化
– Cloudera
– Hortonworks
– MapR
? インストールが簡単
? 独自の管理プロダクト
? 専門のトレーニングコース開設
? カネまで払えば運用の面倒みてくれたり
? AWS上でのパッケージも提供してくれたり
– Amazon Elastic Mapreduce
ログ集約ミドルウェア
? 各アプリケーションサーバに軽量のデーモンを
配置
– Fluentd
– Apache Flume
? シームレスなログ転送
– ログ出力したらすぐにHDFSに転送
– ログ回収ロジックが不要に
サーバ構築?設定の自動化
? 何台もあるクラスタを同じ設定で構築す
るのってメンドイですよね
– 設定も管理しておきましょ
– Chef
– Puppet
? 一度書いた設定は定期的にサーバに流す
ことで常にクラスタ全体で最新の環境を
保つ
– 設定はすべてVCS(git,svn)で管理
– 毎日定時にcronで流す
Hadoopの今
? SPOFがなくなった(Ver. 2.0)
– 自前でマスタの冗長化を組む必要がなくなった
– 急なサーバ故障でも安心
– 自動でフェイルオーバー
? HDFSのスナップショット(Ver. 2.1-beta)
– 現状と少し前とのDiffを保存
– データに何かあったら状態復元
どんどん業務運用に耐えうる
プロダクトになってきています
まとめ
? Hadoopの業務導入についてお話ししまし
た
? 皆さんも黄色い象と共に生きてみません
か?
– アタマのいい話はできませんが構築上の苦労
話ぐらいだったら僕できます
おしまい
が、万が一???
黄色い象との明るい未来が見えない場合
? 外部のDWHを利用するという手もありま
す
– 自分はあんまり知りませんがTreasureDataと
か結構有名かと
– スタートアップ向けに無料プランあるけど本
格的なビジネスユースは月$3000ぐらいはか
かるらしい
ほんとにおしまい

More Related Content

黄色い象と共に生きる