Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Apache Hadoop and YARN, current development status

1,606 views

Published on

2017年9月7日に開催されたdb tech showcase Tokyo 2017での講演資料です。

Published in: Technology
  • Be the first to comment

Apache Hadoop and YARN, current development status

  1. 1. © 2017 NTT DATA Corporation Apache Hadoop, YARNの最新動向 2017/9/7 株式会社NTTデータ OSSプロフェッショナルサービス 鯵坂 明 db tech showcase 2017 Tokyo
  2. 2. © 2017 NTT DATA Corporation 2  鯵坂 明 (Akira Ajisaka, @ajis_ka)  NTTデータ OSSプロフェッショナルサービス  配属以来、ずっとApache Hadoopと関わってきた  Hadoopの新機能や、関連するミドルウェアの検証  プロジェクトへの技術支援  サポートサービス  Apache Hadoop committer, PMC member  最近は、来たるJava 9に備えメンテナンスを続けている  JUnitやLog4Jのアップデートに苦戦中 自己紹介
  3. 3. © 2017 NTT DATA Corporation 3  多数のサーバで大規模データの保存・処理を実現するための、オー プンソースのミドルウェア Apache Hadoopとは HDFS (データ格納) YARN (リソース制御) Map Reduce Hive Pig Tez Spark Spark Streaming Spark MLlib ・・・
  4. 4. © 2017 NTT DATA Corporation 4  リソース管理・処理基盤: YARN (Yet Another Resource Negotiator)  ResourceManager(マスタ)はNodeManager(スレーブ) のリソースを管理  アプリケーションからの要求に応じ、タスクに必要なリソース(メモ リ、CPU)をYARN containerという形で割り当て  処理はNodeManager上で実行される YARNの簡単な紹介
  5. 5. © 2017 NTT DATA Corporation 5  Applicationの管理をするためのApplication Masterを起動 YARN applicationの処理の流れ ResourceManager NodeManager NodeManager NodeManager NodeManager NodeManager クライアント Application Master 処理の実行 : YARN container
  6. 6. © 2017 NTT DATA Corporation 6  ApplicationMasterからResourceManagerに依頼し、処理 に必要なYARN containerを起動 YARN applicationの処理の流れ ResourceManager NodeManager NodeManager NodeManager NodeManager NodeManager Application Master : YARN container
  7. 7. © 2017 NTT DATA Corporation 7  ApplicationMaster管理のもと、処理が実行される YARN applicationの処理の流れ ResourceManager NodeManager NodeManager NodeManager NodeManager NodeManager Application Master : YARN container
  8. 8. © 2017 NTT DATA Corporation 8  最近、YARNに様々な機能が追加されようとしている  今回はその状況確認をしたい  GPU Support  Resource Profile  Docker container support  Native Services  Timeline Service v.2.  Support distributed scheduling  Router-based Federation 今日のアジェンダ
  9. 9. © 2017 NTT DATA Corporation 9  大規模データに対するDeep-learning/machine learningの 流行に伴って、GPUの利用も広まっている  現状では、YARNで管理できるリソースタイプはCPUとメモリのみ  Node labelという機能が使えるが、充分ではない  あるタスクにN枚のGPUを割り当てる、ということができない  GPUの利用状況を管理・監視できない  本機能では以下の内容を実施する  リソースタイプにGPUを追加  CGroupsによるisolation GPU Support (YARN-6223) Available in 3.1
  10. 10. © 2017 NTT DATA Corporation 10  先程述べたGPUだけではなく、FPGA, disk, network, HDFS 帯域などがリソースタイプとして追加されようとしている  CPUとメモリを使ってスケジューリングする前提で実装されていため、 リソースタイプを追加するたびに大幅なロジックの書き換えが必要  手軽に新規リソースタイプを追加できる仕組みがほしい! ということ で開発が進んでいる Resource Profile (YARN-3926) Available in 3.0 or 3.1
  11. 11. © 2017 NTT DATA Corporation 11  sub-taskであるYARN-4081のパッチから抜粋 日本語だけだと伝わりづらいのでコードを紹介
  12. 12. © 2017 NTT DATA Corporation 12  Dockerは便利なツール  YARN上でもDocker containerが動作可能になっている  YARN on Dockerでないことに注意  YARNのContainer Executor  DefaultContainerExecutor  LinuxContainerExecutor  DockerContainerExecutor Docker container support (YARN-3611) Available in 2.8
  13. 13. © 2017 NTT DATA Corporation 13  YARN container内で、Docker containerが動作する 概念図 ResourceManager NodeManager NodeManager NodeManager NodeManager NodeManager Application Master : YARN container
  14. 14. © 2017 NTT DATA Corporation 14  Docker containerの中に Hadoop artifacts が必要  たとえば、HDFSへのアクセスのため  解決のため、volume mount ができるようにしようとしている (YARN-5534)  巨大なimageを扱うと、タイムアウトで落ちることがある  タスク内で暗黙的に pull されるため  あらかじめ cache しておく必要がある  解決のため、明示的にdocker pullが使えるようになっている (YARN-5669, Hadoop 2.9)  本格的に使うのは、2.9/3.0まで待ったほうがよい Docker container support の現状
  15. 15. © 2017 NTT DATA Corporation 15  YARNはapplicationのためにAPIを提供しているが、非常に low-levelなため、applicationの実装が困難  よりhigh-levelなAPIを提供するためのプロジェクトが登場  Apache REEF  Apache Slider -> YARN本体にマージ  障害発生時のコンテナ再割り当て  REST APIでサービスを実行  コンテナ数の拡張・縮退も可能  DNSによるサービスの名前解決 YARN Native Services (YARN-4692) Available in 3.0
  16. 16. © 2017 NTT DATA Corporation 16  例: nginxの起動 REST APIで手軽にYARN applicationを実行
  17. 17. © 2017 NTT DATA Corporation 17  YARN applicationの一般的な情報を格納し、それを表示する Web UIを提供  application試行一覧およびその情報  各application試行で起動したcontainer一覧およびその 情報など  HistoryServerがapplicationごとに乱立するのを防ぐ目的  初期実装の問題点  HA機能がない  reader/writerが1インスタンスかつ、ストレージが単一サー バのローカルディスクのため、スケールしない TimelineServer Available in 2.4
  18. 18. © 2017 NTT DATA Corporation 18  初期実装の問題を解決するため、アーキテクチャから見直された  distributed readers/writers  writerは各applicationごとのcontainerが担当  readerはclientからのREST APIを処理することに特化  Apache HBase for backing storage  read, write性能が良く、スケールする  耐障害性もある Timeline Service v.2 Available in 3.0
  19. 19. © 2017 NTT DATA Corporation 19  1つのジョブが複数のapplicationに分割されるケースで、それらの applicationの統計情報をまとめて確認するための仕組み "flow"という複数のYARN applicationをまとめた概念の導入
  20. 20. © 2017 NTT DATA Corporation 20  YARNでは、全てのコンテナをResourceManagerが割り当てる (centralized scheduling)  長所: FairScheduler, CapacitySchedulerのようなスケ ジューリングポリシーを正しく満たすことができる  短所: 割り当て処理がResourceManagerに集中し、クラス タ規模やapplicationの同時実行数が大きくなると、レイテン シが大きくなる  例えば、仮に数秒で終わるようなタスクであっても、タスクの割り当て そのものに数秒かかってしまうようなことが課題 Support distributed scheduling (YARN-2877) Available in 2.9
  21. 21. © 2017 NTT DATA Corporation 21  この課題をうまく解いているMicrosoftの論文  centralized schedulingとdistributed schedulingの組み 合わせで、良いとこ取りをする  256台のHadoop 2.4.1のクラスタに実装し、Microsoftのワー クロードで最大35%のスループット向上 Mercury, 2015 USENIX
  22. 22. © 2017 NTT DATA Corporation 22  container execution typeを2種類に分ける  GUARANTEED: ResourceManagerが割り当て  OPPORTUNISTIC: ResourceManagerを介さず、リ ソースが空いているNodeManagerにリソースを割り当てる  2種類でリソースが競合したらどうなるのか?  OPPORTUNISTIC containerがpreemptされる  そのため、時間のかかるタスクはOPPORTUNISTIC containerで動作させるべきではない どうやって組み合わせるのか
  23. 23. © 2017 NTT DATA Corporation 23 処理の流れ (YARN-2877のdesign docより) QUEUEABLE は OPPORTUNISTIC に読み替える
  24. 24. © 2017 NTT DATA Corporation 24  数千台のYARNクラスタでは満足できない人向けの機能  複数のYARN clusterを束ねて1つのクラスタとして見せる  Routerというサービスによってapplicationは個別のYARN clusterに割り当てられる  設定次第で、複数のYARN clusterに跨るapplicationを実行 することも可能  HDFSには既にFederationの機能が存在するが、HDFSにも Routerを利用したFederationが追加されようとしている (HDFS-10467) Router-based Federation (YARN-2915) Available in 3.0
  25. 25. © 2017 NTT DATA Corporation 25  Hadoop, YARNは分散処理に特化してきたが、ここ最近では、 より一般的なアプリケーションを手軽に動作させられるようになってき ている  近年の新しいハードウェアにも対応しつつある  超大規模クラスタでもスループット、スケーラビリティを損なわない工 夫がなされている  Hadoop 3.0のリリースに期待! まとめ
  26. 26. © 2017 NTT DATA Corporation 26  "Docker on Hadoop", Apache: Big Data North America 2017, http://events.linuxfoundation.org/sites/events/files/slides/Docker OnHadoop.pdf  "Mercury: Hybrid Centralized and Distributed Scheduling in Large Shared Clusters", USENIX 2015, https://www.usenix.org/system/files/conference/atc15/atc15- paper-karanasos.pdf References
  27. 27. © 2017 NTT DATA Corporation 本資料中に記載されている会社名、商品名、ロゴは、各社の商標または登録商標です。

×