More Related Content Similar to Hadoop-3.2.0の新機能の紹介とJava9+対応のコミュニティ動向 (20) More from Yahoo!デベロッパーネットワーク (20) Hadoop-3.2.0の新機能の紹介とJava9+対応のコミュニティ動向2. 自己紹介
名前
– 浅沼 孝信
業務履歴
– 2012年新卒入社
– Apache HadoopやApache NiFiを用いた社内インフラの設計・開発
– HadoopのOSS開発(Erasure Coding, Java9+対応など)
– 2018年7月からHadoopコミッター
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 2
3. 目次
Router-Based Federation (RBF)
Hadoop {Submarine} Project
HadoopのJava9+対応
3無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
4. 目次
Router-Based Federation (RBF)
Hadoop {Submarine} Project
HadoopのJava9+対応
4無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
9. Router-Based Federation (RBF)
9
Router
– クライアントのリクエストを
受け取り適切なNameNode
にルーティング
State Store
– マウント情報を中央管理
クライアントは何も気にせずに
大きなHDFSとして参照すること
ができる
Cluster A
R
DNDN DN
NN
State Store
Cluster B
R
DNDN DN
NN
①
②
③
④
無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
A
B
C
/
data
log tmp
10. 開発状況
多くの企業が開発に参加!
– Microsoft, Uber, VipShop, Huawei, LinkedIn, Hortonworks, Oath,
Yahoo! JAPAN...
開発が完了した機能(Hadoop-3.2.0に含まれる)
– Router WebUI (WebHDFS)(HDFS-12615)
– クラスタ全体に渡るクォータ制限(HDFS-12934)
– 1 対 * のマウントポイント(HDFS-13224)
開発中の機能
– セキュリティ対応(HDFS-13532)
– クラスタ間のバランサー(HDFS-13123)
10無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
12. 目次
Router-Based Federation (RBF)
Hadoop {Submarine} Project
HadoopのJava9+対応
12無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
13. Hadoop {Submarine} Project とは
Tensorflowプログラムを特別な変更を加せずにそのままYARNの上で
動かすことを目標にしたプロジェクト
名前の由来
– Submarine is the only vehicle that can take humans to deep places.
潜水艦は人間を深い場所に連れて行くことができる唯一の乗り物
13無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
14. {Submarine} に至るまでのYARNの進化
14
2.9
•Docker on YARN: YARNコンテナとしてDockerコンテナが利用可能に
3.1
•YARN Service framework: 長時間のアプリケーション実行をサポート
•GPU on YARN
3.2
•Hadoop {Submarine} Project
•上記のYARNの新機能を利用
無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
15. Hadoop {Submarine} projectの特徴
Tensorflowの分散処理を簡単な設定で実行可能
HDFSや他のストレージに簡単にアクセスできる
任意のDockerイメージを実行できる(Docker on YARN)
– 任意のバージョンのTensorflow、Pythonが使える
リソースにアイソレーションしたGPUを指定可能(GPU on YARN)
モデル提供のサービスを起動可能(YARN Service)
TensorBoardを起動可能(YARN Service)
15無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
16. Submarineのジョブの実行例
yarn jarコマンドでSubmarineのjarを指定して実行
– 将来的にはsubmarineコマンドができる模様
16
$ yarn jar hadoop-yarn-applications-submarine-3.2.0.jar job run
--input_path hdfs://path/to/dataset \
--checkpoint_path hdfs://path/to/checkpoint \
--name tf-job-001 --docker_image <docker image> \
--num_workers 2 \
--worker_resources memory=8G,vcores=2,gpu=2 \
--worker_launch_cmd "..." \
--ps_docker_image <docker image> \
--num_ps 1 --ps_resources memory=4G,vcores=2,gpu=0 \
--ps_launch_cmd "..." \
--tensorboard --tensorboard_docker_image <docker image>
無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
17. Submarineのジョブの実行例
yarn jarコマンドでSubmarineのjarを指定して実行
– 将来的にはsubmarineコマンドができる模様
17
$ yarn jar hadoop-yarn-applications-submarine-3.2.0.jar job run
--input_path hdfs://path/to/dataset \
--checkpoint_path hdfs://path/to/checkpoint \
--name tf-job-001 --docker_image <docker image> \
--num_workers 2 \
--worker_resources memory=8G,vcores=2,gpu=2 \
--worker_launch_cmd "..." \
--ps_docker_image <docker image> \
--num_ps 1 --ps_resources memory=4G,vcores=2,gpu=0 \
--ps_launch_cmd "..." \
--tensorboard --tensorboard_docker_image <docker image>
無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Worker
PS
Data source
18. 補足:TonY
LinkedInが開発したTensorflow on YARNのフレームワーク
既存のTensorflow on YARNプロダクトがニーズに合わなかったので自社で開発
→ OSS化
特徴
– GPU on YARNのAPIを利用してGPUのスケジューリング
– TensorBoardのサポート
– フォールトトレランス(チェックポイントをHDFSに保存できる)
– 最近Docekr on YARNにも対応した
現時点ではSubmarineと別のプロジェクトだが将来的にSubmarineのランタイムとして
も動くようになるらしい
18無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
19. 目次
Router-Based Federation (RBF)
Hadoop {Submarine} Project
HadoopのJava9+対応
19無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
20. 本日話すこと
前のHSCRで話された発表(↓)以降のコミュニティの活動
– Apache HadoopとJava9とJigsaw
https://www.slideshare.net/hadoopxnttdata/20170303-java9-hadoop-72688327
– このときはまだJava9でビルドができなかった・・・
20無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
22. これまでに完了したこと
sun.misc.Cleanerの問題を解決(HADOOP-12760)
– ファイルとメモリのマッピングを解消するのに使用
– Java9以降でパッケージが変わった
– Java8とJava9+で同時に対応するためにリフレクションによる黒魔術が必要
– ずっとブロッカーになっていたがついにクローズ
削除されたjavaxライブラリを追加(HADOOP-15775, HADOOP-15895)
– javaxの一部のライブラリが標準のJavaライブラリから削除されたのでmaven
dependencyに明示して追加する必要がある
ここまででJava9でビルド/MapReduceの動作が可能になった
22無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
24. まだ完了していないこと
依存ライブラリをJava9+サポートしているバージョンへ
アップグレードが必要
– JUnit 4 ➡︎JUnit 5
– Mockito 1 ➡︎Mockito 2
– Log4j 1 ➡︎SLF4Jアダプター with Log4j 1 ➡︎SLF4Jアダプター with Log4j 2
非互換
Jigsaw対応(nice to have)
– モジュール機能でパッケージの公開範囲を制御
– もっとコミュニティで議論する必要がありそう
24無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
25. Java9+対応の副次効果
プレゼンスの向上(会社・個人)
– Yahoo! JAPANからJava9+対応で貢献したJIRAは27個!
いろいろな開発者に感謝される
Hadoopのソースコードの全体像が把握できる
– Common, HDFS, YARN, MapReduce, HDDS
Mavenビルド職人になれる
– pom.xmlについてとても詳しくなった
25無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
26. 今後の予定
HadoopのJava9+対応
- Java9とJava10はEOL
- HadoopとしてはLTSのJava11対応がメインになりそう
- いろいろなエコシステムから依存されているので早めの対応が必要
- Java8のサポートも引き続き継続(期限は未定)
コントリビュート歓迎!
26無断引用・転載禁止Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
OpenJDKのサポート期限(2018年11月 時点)
JDK 8 JDK 11
RedHat OpenJDK ~2023/06 ~2024/10
AdoptOpenJDK ~2023/09 ~2022/09