Hadoop - OSC2013 .Enterprise

1,665 views

Published on

12/13に開催されたOSC 2013 .Enterpriseで発表したHadoopに関するスライドです。

  • Be the first to comment

Hadoop - OSC2013 .Enterprise

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

×