勉強会メモ - Apache Hadoop エコシステムを中心とした分散処理の今と未来
今日は、Hadoop のセミナーを見るために IIJ さんにお邪魔してきました。
内容としては、Hadoop の歴史と現状の流れを技術的な面から紐解いた第一部と、Hadoop コミュニティやオープンソースコミュニティを解説した二部という構成でした。技術的な面では、何となく理解していたつもりだったところ(分散処理をしてもオーバーヘッドが激しくIOが多くなるので速くなるとは限らない、MapReduce が遅いのはMap後にかならずHDFSに書きだすから遅い、DAGは実行するジョブを計画のなかで最適化するので速い、などなど)を非常にわかりやすく解説されていて感動しました。残念ながらまだ資料は公開されていないようですが、繰り返して読みたい内容でした。
以下、印象に残ったところだけですが、メモです。
Apache Hadoop エコシステムを中心とした分散処理の今と未来
小沢健史 NTT ソフトウェアイノベーションセンタ Hadoop のコミッタ!
- 分散処理をしても処理が速くなるとは限らない
- データを分散することで、書き込みにオーバーヘッドがかかる
- ネットワークにもオーバーヘッドがある
- 光速の壁
分散処理はスケーラビリティの最終手段
並列DB
- 書くときになるべく早く返せるように予め最適化しておく
- 早く返せるが、書き込みが遅い
- クエリに対する柔軟性がないので、スキーマや処理内容を意識する必要がある
データをロードする時間が必要
国内で最大のクラスタは Yahoo! Japan (6000台!) -http://itpro.nikkeibp.co.jp/atcl/interview/14/262522/031800133/?ST=bigdata&P=1
Hadoop を選択する理由
- 処理対象のデータが巨大 (100GB/day や PBクラス)
- データベースに入れる前に、非構造化データに対して前処理をしたい
- スキーマが頻繁に変更される場合
これ以外のケースはRDBMSを選択するほうが無難
素のMapReduceを書く人はもう少ない。ただし、use case 次第。
- Hive とか Pig とか高水準な言語がよく使われている
- ゆるやかに別の処理基盤へ移行中
Spark / Tez / Impala / Presto など
コミュニティへの還元方針への違い
- ベンダは、売りになるような新機能を作りたい
- ユーザーは、安定動作するエンハンスをしたい
QA
Hotな技術は Spark !
Storm と Spark Streaming は、レイテンシーのオーダーが1桁違う
- Spark Streaming は、細かいアプリを繰り返し起動し、擬似ストリーミングになっている
- Storm はピュアなストリーミング処理基盤なので速い