devsumi 2011 にて、「黄色い象使いへの道」を聞いてきた際にとったメモを共有します。
Slide
Speaker 下垣徹 氏の自己紹介
もともとは DB屋さん PostgreSQL
- pg_bulkload 初期バージョン開発
- Oracle から PostgreSQL への migration
最近は OSS data store 担当
- Hadoop の導入支援
- Hadoop 徹底入門のとりまとめ
Hadoop概要
- Googleの基盤技術
- 大規模データを対象としたサービスを展開
- クラウドコンピュータをもってサービス展開
- Googleプラットフォームの図
- 使い古して論文をだす傾向
- OSSの大規模分散処理フレームワーク
- 大規模なデータをいかにして処理をするのか?
- 巨大なデータを並列で、サーバのローリティを活かして処理をする
- 大きく2つのコンポーネント
- 分散Fileシステム HDFS
- →低価格のサーバを多数使用することを前提
- →データの多重化で可用性
- →従来とは運用利便性の考え方が異なる
- →ラックも意識したデータの分散配置
- 大規模分散処理処理フレームワーク Hadoop MapReduce
- →Googleが検索インデックス作成のため考案
- →すくなくとも5000台までスケールアウト
- 利点、メリット
- →プログラム個別に分散処理処理ロジックを用意することなく、分散処理を気軽にできる
- →高いスケーラビリティ
- →IO性能を柔軟に拡張できる
- コモディティサーバの利用
- 集中管理型の分散処理システム
- マスターがいる仕組み
- 命令する側とされる側
- Hadoop適用領域
- 特に向いてる領域
- 数10GBからテラバイト、ペタバイト級のデータを扱う
- バッチ処理のApp
- リアルタイム性が求められる処理の前処理
- 一般的な利用例
- log解析
- レコメンデーション
- 検索
- データマイニング
- 機械学習
- データ変換
- 高度なETL
Hadoop適用事例
- Yahoo
- →過去3年分のlogデータ解析を約20分
- →82ペタバイト
- →4TBのデータが毎日新規に生成される
- →135TBのデータを毎日処理
- 楽天
- →広告のインプレッションlog、レコメンデーション、ランキング集計
- →20台程度のHadoop
- VISA
- 730億ものトランザクション、過去2年=36TB
- 13分で分析
- China Moile
- ユーザー5億人のデータ
- 国立国会図書館サーチ
- どの本がどこにあるか検索できる
- 裏方にHadoop
- GE
- ソーシャルネットワークの情報を使ってなにかできないかを分析
- 顧客の感情分析
- MySQLで42時間かかっていた処理をHadoopで42分
- リクルート
- DWH製品とHadoopを比較し、特性を評価
- 顧客動向分析
- じゃらん、リクナビ
RDBMSと競合するものではない
- HadoopをWorld NYCの図
- RDBと組み合わせて使うもの
Hadoop徹底入門の読み方
- まずは第1〜5、6章まで続けて読む
- 3、4章 HDFS、MapReduceの理論、後半は使い方、実践
- 5章 MRUnit・デバッグ技法→一回はjavaでMapReduce書いた方がいいのではという提案
- 6章 SQL的インターフェイスHive
- →JavaでMapReduceを書きたくない、全く書けない人むけ
- 残りの章は必要に応じて
- SequenceFile、圧縮、メモリ、JVM、OSチューニング
Hadoop徹底入門に書かれていることの紹介
- クラスタの自動構築
- kickstart、puppet
- SPOFの排除
- DRBD、Heart Beat
- クラスタの状態の可視化
- Ganglia
- サーバ群を塊で監視しましょうや
- Hadoopと連携する周辺ツール
- Pig
- →データの流れ記述する独自言語でMR
- Hive
- →SQLぽくMR
- Mahout
- →機械学習を容易に実行するためのライブラリ
- HBase
- →カラム志向型KVS、データの追記、少量データの扱いを容易に
- →SQLさえも扱うのが難しい人はHBase
- Thrift
- →各種言語による接続環境を実現
Hadoop の利用で気をつけるべきこと
- Hiveの利用
- SQLインターフェイスが利用可能に
- Javaによるコーディングは苦手でもSQLはできるという人は多い
- とはいえ、SQL的なだけ
- Update、Deleteはない
- InsertではなくInsert OverWrite
- hdfsへのデータはmvのイメージ
- 日付時刻型がない
- いったんString型で格納しておく
- Unixtimestampに一回変換しておく
- ソート
- order by だけではない
- sort by → reducer ごとのソート
黄色い象使いへの道、よくある質問
RDBMS的な機能はないのですか?
- RDBMSではない
- Silver Bulletではない
- →適材適所の観点で
- 大量データの前処理をHadoopで+結果をRDBMSに格納し検索しやすく
HadoopへのMigrationはどう?
- 商用rdbms、DWHからのMigrationはやれなくはないが、それなりに工数がかかることは多い
- Hadoopの利用をMigrationによるコスト削減を目的にされるとつらいことが多い
- Hadoopの利用目的に何かの壁をぶち破るためにがあってしかるべき
- 何か=処理時間、データ量など
- Migration前と同じ機能、品質、SLAを求められるとつらいことが多い
- 商用RDBMS、DWHとHadoopの機能差異
- 性能問題
- RDBMSの処理をHadoopにおきかえると
- そのまま移行するとオーバーヘッドのほうが大きくなってしまう
- 細かい処理の積み重ねのバッチ処理だったら当たり前。
- 処理ロジック自体を組みかえる
- ジョブ数を極力減らす
- 日経コンピュータセミナー2010リクルート発表資料
どのHadoopをつかえばいいのか?
- コミュニティから提供中のコア部分は0.21系
- →最新機能を使い人むけ
- しかしHadoopの周辺プロダクトのほとんどは0.21を未サポート
- →安定志向
References.
「【17-E-3】 Hadoop:黄色い象使いへの道 〜「Hadoop徹底入門」より〜」の聴講メモ
スポンサーリンク