hadoop - osc2013 .enterprise
DESCRIPTION
12/13に開催されたOSC 2013 .Enterpriseで発表したHadoopに関するスライドです。TRANSCRIPT
Apache Hadoopの現状、これから
Hadoopユーザー会山下 真一
OSC .Enterprise 2013 2
自己紹介
• 山下 真一 (@_sinchii_)
• 日々進化するHadoopと格闘中
• Hadoop Advent Calendar やります : 12/21 予定
• http://qiita.com/advent-calendar/2013/hadoop • 12/1 から開催中!
OSC .Enterprise 2013 3
Hadoopユーザー会
• Hadoopユーザーの集い場です!
• http://hugjp.org/index.php
• 不定期ですが、イベントも開催しています!• ソースコードリーディング : 次回は12/20 (金)• Advent Calendar などなど
• 年一回ユーザーカンファレンスも開催しています!• 前回は、今年1月@東京ビッグサイト 次回は来年?
OSC .Enterprise 2013 4
本日の発表内容
• Hadoopのおさらい
• Hadoopの歩み
• Hadoop最新動向
• Hadoopのこれから
OSC .Enterprise 2013 5
おさらい : Hadoopとは
HDFS分散ファイルシステム
MapReduceフレームワークGoogle MapReduce
論文 (2004)
Google File System論文 (2003)
集計 抽出 加工 分析主な利用用途
OS / Java
数十分~数日のバッチ処理を数分~短時間で処理
色々なデータを分散して保存データは複数の複製を保持
容易に入手できるコモディティなサーバを利用
処理異常時は再試行
OSC .Enterprise 2013 6
MapReduceの仕組み
<A, 10>
<A, 25>
<C, 15><B, 20>
Map
Map
Map
Reduce
Reduce
Shuffle(同じKeyでデータを集約)
<D, 5>
<D, 10>
<B, 10><C, 5>
<A, {10,25} >
<C, 10>
<C, {10,5,15} >
<B, {20,10} ><D, {5,10} >
<A, 35 ><C, 30 >
<B, 30 ><D, 15 >
スコアの抽出
何らかの処理
スコア一覧
・<Key, Value>の形でデータを管理
・MapやReduceが分散処理の対象
OSC .Enterprise 2013 7
Hadoopの仕組み
クライアント
DataNode(s)
TaskTracker(s)
・・・
・・・
・・・
・・・
・・・
・・・
JobTrackerJobClient
DFSClient
マスターサーバ
ファイル
ファイルをブロックに分割配置を指示
ラックを意識したブロック配置を実施
M M MR R R
タスク
M
M
R
入出力データはHDFSと連携
データローカリティを意識した割り当て
ジョブ情報 タスク分割
NameNode
OSC .Enterprise 2013 8
本日の発表内容
• Hadoopのおさらい
• Hadoopの歩み
• Hadoop最新動向
• Hadoopのこれから
OSC .Enterprise 2013 9
Hadoopのヒストリー
2003 2004 2006 2013
The Google File System論文の公開
MapReduce論文の公開
2005
プロトタイプ作成
2011
1.0リリース
2系安定版リリース
0.20リリース
2009
Pig
Hive
HBase
Impala
Spark
CDH HDP
EMR
HA
YARN
NFS
API
Sqoop
Flume
Oozie Ambari
OSC .Enterprise 2013 10
Hadoopエコシステム
HDFS分散ファイルシステム
MapReduceフレームワーク
Hive(SQL style)
Pig(DSL)
Impala(低レイテインシ)
HBase(カラム指向型ストア)
Spark(インメモリ)
Flume(データ投入)
Sqoop(DB連携)
Oozie(ジョブフロー)
Ambari(クラスタ管理)
ZooKeeper(分散ロック)
Mahout(機械学習)
OSC .Enterprise 2013 11
本日の発表内容
• Hadoopのおさらい
• Hadoopの歩み
• Hadoop最新動向
• Hadoopのこれから
OSC .Enterprise 2013 12
YARN : Yet Another Resource Negotiator
• Hadoop 1.0 系 MapReduce基盤の問題
• JobTrackerへの負荷集中• 多数のリクエストを処理するためネックとなりやすい
• TaskTrackerでリソースを予約して動作• スロット数は固定して利用するためリソースを十分活用でき
ない
MapReduceジョブ制御(タスクアサイン)
TaskTracker管理(ハートビート)
Mapスロット Reduceスロット
OSC .Enterprise 2013 13
YARN : Yet Another Resource Negotiator
• JobTrackerのリソース管理とジョブ管理を分離
• ResourceManager : リソース管理• スレーブノード(NodeManager)管理
• ApplicationMaster : アプリケーション• MapReduceジョブは、ApplicationMasterが制御
• 処理はコンテナ(Container)が実行
• NodeManager : スレーブノード• リソース使用状況(CPU・メモリ)を確認
OSC .Enterprise 2013 14
YARNを構成するノード
ResourceManager
NodeManager
NodeManager
NodeManager
ApplicationMaster
NodeManager
Container
Container
ハートビートCPU・メモリ利用状況
AM割り当て&管理
MapReduceジョブ管理タスク割り当て Map(Reduce)タスク
JobHistoryServer
(ジョブ履歴)
OSC .Enterprise 2013 15
YARNの特徴
• スレーブノードのリソースを十分に利用する仕組み
• MapReduce APIの互換性
• Hadoop 1.0系のMapReduceジョブも実行可能
• 様々なApplicationMasterが動作可能
• MapReduceジョブ以外のアプリケーションも実行可能
OSC .Enterprise 2013 16
YARN上で動作するアプリケーション
• MapReduce• Apache Spark : インメモリ処理エンジン
• Apache Storm : ストリーミング処理
• Apache Giraph : グラフ処理
• Apache Tez : Hive/Pig実行エンジン
• HOYA (Apache HBase) : カラム指向型ストア
• Impala : 低レイテンシ処理
などなど
OSC .Enterprise 2013 17
YARNもstableとなったものの...
• 2013年12月12日時点では...あと一歩な印象
• YARN HA の実装
• ResourceManager• ApplicationMaster
• スケジューラ• CapacityScheduler• FairScheduler
• 長時間動作するApplicationMaster対応
OSC .Enterprise 2013 18
HDFS 2.0
• NameNode HA• HDFS Snapshot• HDFS Cache• NFS• (HDFS Federation)
OSC .Enterprise 2013 19
NameNode HA
• ホットスタンバイ構成
• ZooKeeperを利用して死活監視
• QJMによりトランザクションログ(edits)管理
NameNode(active)
NameNode(standby)
JournalNode JournalNode JournalNode
トランザクション情報 edits
fsimage
ZKFC ZKFC
ZooKeeperロック情報 ロック監視
ロック消滅時にフェールオーバー実施
OSC .Enterprise 2013 20
HDFS Snapshot
• ユーザ単位でのスナップショット
/user
hoge fuga
file1 file2dir1
file3 file4
file5
管理者によってスナップショット可能な
ディレクトリを設定65535世代保存可能
Read-Only
OSC .Enterprise 2013 21
HDFS Snapshot
• スナップショットのコマンド• 作成 : hdfs dfs -createSnapshot• 削除 : hdfs dfs -deleteSnapshot• リネーム : hdfs dfs -renameSnapshot• 比較 : hdfs snapshotDiff
• スナップショットの確認• hdfs dfs -ls <対象ディレクトリ>/.snapshot/
OSC .Enterprise 2013 22
その他
• Apache Pig : 0.12.0• ASSERT 文、IN CASE文、
• AvroStorageをサポート
• (HCatalogによるHiveメタ情報の連携)
• Apache Hive : 0.12.0• Date型対応
• Parallel ORDER BY• クエリ最適化
OSC .Enterprise 2013 23
その他
• Java 7 対応
• Windows 上での Hadoop環境
• ログ周りの改善• auditログ
• メッセージレベルの見直し• 無駄なstacktrace出力の抑制
OSC .Enterprise 2013 24
本日の発表内容
• Hadoopのおさらい
• Hadoopの歩み
• Hadoop最新動向
• Hadoopのこれから
OSC .Enterprise 2013 25
Hadoop Trunk状況
• Hadoop 2系(2.2がcurrent)• 2.3
• バグフィックス? • 2.2.1 を2.3として扱うかも?
• 2.4• YARN HA (RM Fail Over via ZKFC) ?• Application History Server• Long-running applications
• HDFS Trace ? HDFS Symlink ? ヘテロなストレージ ?
• Hadoop 1系 … 果たして今後リリースはあるのか?
OSC .Enterprise 2013 26
Hadoopエコシステムの拡大
• Apache Sentry• ロールベースのHadoopクラスタ認証
• Apache Tez• YARN上でPig / Hive をより適切な実行計画での動作
• Stinger • Hiveのクエリを100倍高速にするとか...
• Openstackとの連携
• Savannaプロジェクト
OSC .Enterprise 2013 27
まとめ
• Hadoop 2系
• HDFS : 必要な仕組みは一通りそろった
• YARN : まだまだ発展途上
• エコシステムの膨張• 次々と新しいものは出てくる印象• これまで利用してきたもの(Hive/Pig ...)もより充実
• 従来の仕組み(HDFS+MR)はほぼ完成
• HDFSを土台とした新たな仕組みに期待!