OSC2014 Tokyo/Spring Hadoop

1,280 views
1,076 views

Published on

2014年3月1日に開催された「OSC 2014 Tokyo/Spring」で発表したHadoopに関する資料です。

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,280
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
26
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

OSC2014 Tokyo/Spring Hadoop

  1. 1. 多種多様なデータの分散処理基盤 Apache Hadoopの 現状、これから Hadoopユーザー会 山下 真一 2014/03/01 OSC 2014 Tokyo/Spring
  2. 2. 自己紹介 • 山下 真一 (@_sinchii_) • 日々進化するHadoopと格闘中 • • たくさん処理を実行して秘孔を付いたり Hadoopの仕掛けた罠(バグ)に嵌ったり OSC 2014 Tokyo/Spring 2
  3. 3. 本日の発表内容 • Hadoopのおさらい • Hadoop最新動向 • デモ OSC 2014 Tokyo/Spring 3
  4. 4. おさらい: Hadoopとは • 課題 • • • 日々増え続けるデータを蓄え続けたい 蓄えたデータを速やかに処理したい バッチ処理をより早く処理したい • • 処理データ規模は問わない Hadoopの特長 • • • 複数のサーバで構成する分散ファイルシステムを提供 分散ファイルシステム上のリソースを活用して分散処理を実 現、数十分~数時間の処理を数分~数十分に短縮 Hadoopを動作させるサーバは容易に入手できるサーバを 利用、リソース不足の場合は容易に追加可能 OSC 2014 Tokyo/Spring 4
  5. 5. おさらい : Hadoopとは 処理異常時は 異常箇所のみ再試行 Google MapReduce MapReduceフレームワーク Google File System HDFS分散ファイルシステム サーバが故障してもコピーを 持っているため欠損しない 主な利用用途 集計 OS / Java 抽出 OSC 2014 Tokyo/Spring 加工 分析 5
  6. 6. これまでのHadoopの仕組み タスク ジョブ情報 TaskTracker(s) M M M タスク分割 R R R JobTracker JobClient クライ アント データローカリティを 意識した割り当て ファイルをブロックに分割 配置を指示 DFSClient 入出力データは HDFSと連携 マスター サーバ M ・ ・ ・ R ・ ・ ・ ・ ・ ・ M ・ ・ ・ NameNode ・ ・ ・ ・ ・ ・ ファイル DataNode(s) OSC 2014 Tokyo/Spring 6
  7. 7. Hadoopエコシステム Hive (SQL style) Pig (DSL) Mahout (機械学習) HBase (カラム指向型ストア) Flume (データ投入) MapReduceフレームワーク Sqoop (DB連携) HDFS分散ファイルシステム Oozie (低レイテインシ) Spark (インメモリ) Ambari (ジョブフロー) Impala (クラスタ管理) ZooKeeper (分散ロック) OSC 2014 Tokyo/Spring 7
  8. 8. 本日の発表内容 • Hadoopのおさらい • Hadoop最新動向 • デモ OSC 2014 Tokyo/Spring 8
  9. 9. Hadoop 1系と2系の違い MapReduce等 アプリケーション MapReduce アプリケーション Application Master MapReduce フレームワーク YARN HDFS 1 HDFS 2 Hadoop 1系 Hadoop 2系 OSC 2014 Tokyo/Spring 9
  10. 10. Hadoop 1.0系のMapReduceの問題 • JobTrackerへの負荷集中 • 多数のリクエストを処理するためネックとなりやすい MapReduceジョブ制御 (タスクアサイン) • TaskTrackerでリソースを予約して動作 • スロット数は固定であるためリソースを十分活用できない Mapスロット • TaskTracker管理 (ハートビート処理) Reduceスロット map関数、reduce関数内で強引に処理を定義 • Giraph , Oozie など OSC 2014 Tokyo/Spring 10
  11. 11. YARN : Yet Another Resource Negotiator • JobTrackerのリソース管理とジョブ管理を分離 • ResourceManager : リソース管理 • • ApplicationMaster : アプリケーション • • • スレーブノード(NodeManager)管理 MapReduceジョブは、ApplicationMasterが制御 処理はコンテナ(Container)が実行 NodeManager : スレーブノード • リソース使用状況(CPU・メモリ)を確認 OSC 2014 Tokyo/Spring 11
  12. 12. YARNを構成するノード MapReduceジョブ管理 タスク割り当て Map(Reduce)タスク Application Master Container Node Manager AM割り当て&管理 Node Manager Container Resource Manager Node Manager ハートビート CPU・メモリ利用状況 Node Manager JobHistory Server ApplicationHistory Server (MRジョブ履歴) (YARNジョブ履歴) OSC 2014 Tokyo/Spring 12
  13. 13. YARNの特徴 • スレーブノードのリソースを十分に利用する仕組み • • LxC、cgroupsを活用して、厳密なリソース管理も実現 MapReduce 1.0 APIとの互換性 • Hadoop 1.0系のMapReduceアプリケーションも実行可能 • • • 再ビルドしなおすだけで、実行可能 現在は、再ビルド不要の仕組みも開発中 様々なApplicationMasterが動作可能 • MapReduceジョブ以外のアプリケーションも実行可能 • Apache Spark, Storm, Tez, Hbase(HOYA) などなど OSC 2014 Tokyo/Spring 13
  14. 14. YARNの今後の開発内容 • いくつかの機能は現在も開発中 • さまざまなアプリケーションをYARNで動作させるための 仕組み • • • • スケジューラ改良 (CapacityScheduler / FairScheduler) 長時間動作するApplicationMaster対応 アプリケーションの実行履歴管理(ApplicationHistory) アプリケーション実行の記録(ApplicationTimeline) OSC 2014 Tokyo/Spring 14
  15. 15. HDFS 2 • NameNode HA : 長年の問題が解決 • HDFS Snapshot : オペミスからの復旧が容易に • HDFS インメモリ Cache • HDFS Federation : NameNode分割 • ロック機構の改善 • ヘテロなストレージを利用可能 • • メモリ、SSD、などを組み合わせて利用可能に いよいよ問題なく利用出来る状態に! OSC 2014 Tokyo/Spring 15
  16. 16. その他Hadoop2系のポイント • Java 7 対応 • Windows 上での Hadoop環境 • ログ周りの改善 • • • auditログ メッセージレベルの見直し 無駄なstacktrace出力の抑制 OSC 2014 Tokyo/Spring 16
  17. 17. HDFSに蓄えたデータの活用 • HDFS上のデータをMapReduce以外で活用するため の仕組みも広がりつつあります • • • Apache Spark / UC Berkeley • • インメモリベースでのMapReduce処理エンジン Cloudera Impara / Cloudera • • 低レイテンシ、インメモリ、イテレーション … HiveのXXX倍速い などなど 低レイテンシ処理エンジン Presto / Facebook • 分散SQLエンジン OSC 2014 Tokyo/Spring 17
  18. 18. Apache Spark • インメモリによりMapReduceを処理 • • Map処理, Reduce処理を定義 Hadoop MapReduceの弱点を補う • 繰り返し処理(イテレーション) • ジョブ起動、Shuffleなどのオーバーヘッドを軽減 • HDFSとの親和性 • 高級言語(Scala, Java, Python)で処理を定義 • UC Berkeley AMPLab により開発 OSC 2014 Tokyo/Spring 18
  19. 19. Apache Spark 構成要素 HiveQL ストリーミング 処理 Shark MapReduce等 アプリケーション Application Master YARN 機械学習 Spark Streaming MLlib Spark アプリケーション Application Master Spark ノード YARN HDFS 2 HDFS 2 Hadoop 2系 Apache Spark OSC 2014 Tokyo/Spring 19
  20. 20. 本日の発表内容 • Hadoopのおさらい • Hadoop最新動向 • デモ OSC 2014 Tokyo/Spring 20
  21. 21. デモ • HDFS2 + YARN環境を動かしてみます • Webインタフェース • • • HDFS YARN & JobHistoryServer サンプルアプリケーションの実行 • Hadoopサンプルであるπ計算(PiEstimator) OSC 2014 Tokyo/Spring 21
  22. 22. デモ • Apache SparkとHadoop環境を連携してみます • Spark : スタンドアロンモード • • マスタとワーカ(1ノード)を起動 サンプルアプリケーションの実行 • • Spark での word count HDFS上のファイルに対して word countを実行 Sparkでのword count構文 (Scalaで実装) val file = sc.textFile("hdfs://osc:8020/user/hadoop/spark-readme") val words = file.flatMap(line => line.replaceAll("W", " ").toLowerCase().split("s+")) val wordCounts = words.map(x => (x, 1)).reduceByKey(_ + _) wordCounts.saveAsTextFile("hdfs://osc:8020/user/hadoop/spark-wordcount") OSC 2014 Tokyo/Spring 22
  23. 23. Hadoop のリリース予定 • Hadoop 2系(2.3がcurrent version) • 2.4 • • • • • • RM-HA automatic Failover Application History Server Long-running applications HDFS Trace ? HDFS Symlink ? Hadoop 1系 … 1.3とかは幻となるのか? OSC 2014 Tokyo/Spring 23
  24. 24. まとめ • Hadoop 2系 • • • HDFS : 必要な仕組みは一通りそろった YARN : MapReduceのみであれば、それなりに動作する エコシステムの膨張 • • • HDFSに蓄えたデータを扱う仕組み MapReduceの弱点を補う仕組み 何を使うにしてもデータを蓄えることが大切です! • 最初は数台、そして簡単な集計処理から... OSC 2014 Tokyo/Spring 24
  25. 25. ご清聴ありがとうございました! OSC 2014 Tokyo/Spring 25

×