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 HDFSの最新機能の紹介(2018)#dbts2018

524 views

Published on

2018年9月20日開催されたdb tech showcase Tokyo 2018で発表した資料です。

Published in: Technology
  • Be the first to comment

Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018

  1. 1. Apache Hadoop HDFSの最新機能の紹介 (2018) https://www.yahoo.co.jp/ ヤフー株式会社 浅沼 孝信 2018年9月20日
  2. 2. 自己紹介 2 Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  名前 • 浅沼 孝信  業務履歴 • 2012年新卒入社 • Apache HadoopやApache NiFiを用いた社内インフラの設計・開発 • Hadoopを中心としたOSS開発(Erasure Coding, Java9対応など) • 2018年7月からHadoopコミッター
  3. 3. もくじ 3  Hadoopとは  Router-based Federation  Consistent Reads from Standby Node  Heterogeneous Storage++ Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  4. 4. もくじ 4  Hadoopとは  Router-based Federation  Consistent Reads from Standby Node  Heterogeneous Storage++ Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  5. 5. Hadoopとは 5  大規模なデータを分散処理するためのオープンソースソフトウェア  主なコンポーネント • HDFS • 分散ファイルシステム • YARN • リソースマネジメント • ジョブスケジューリング  今日はHDFSの最新機能について説明します HDFS YARN MR Tez Spark Hive HBase Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  6. 6. HDFS: アーキテクチャー 6 NameNode DataNode File metadata Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Client
  7. 7. HDFS: アーキテクチャー 7 NameNode DataNode b1 b2 b3 128MB 128MB metadata Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Client
  8. 8. HDFS: アーキテクチャー 8 NameNode DataNode b1 b2 b3 128MB 128MB metadatab1を保存したいです d1, d3, d5に保存してください d1 d2 d3 d4 d5 d6 Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Client
  9. 9. HDFS: アーキテクチャー 9 b1 b1 b1 NameNode DataNode b1 b2 b3 128MB 128MB metadata Block Report Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Client
  10. 10. HDFS: アーキテクチャー 10 b1 b3 b2 b1 b1b2 b2 b3 b3 NameNode DataNode b1 b2 b3 128MB 128MB metadata Block Report Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Client
  11. 11. HDFS: NameNodeのメタデータ 11 b1 b3 b2 b1 b1b2 b2 b3 b3 NameNode DataNode b1 b2 b3 128MB 128MB metadata NameSpace Block Map File -> BlockID BlockID -> DN Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Client
  12. 12. HDFS: NameNodeのメタデータ 12 b1 b3 b2 b1 b1b2 b2 b3 b3 NameNode DataNode b1 b2 b3 128MB 128MB metadata NameSpace Block Map File -> BlockID BlockID -> DN EditLog Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 persist Client
  13. 13. HDFS: 長所と短所 13  長所 • 強い一貫性を保証 • Create, Deleteが瞬時に反映される • 大規模データのデータ分析が得意 • シーケンシャルアクセスで平行にデータを読み出すのでスループットが高い  短所 • NameNodeの責任が大きい • NameNodeのメモリサイズがボトルネックになりやすい • 特に大量の小さなファイルを扱うのが苦手 • クライアントやDataNodeのリクエストを処理しきれなくなる Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  14. 14. もくじ 14  Hadoopとは  Router-based Federation  Consistent Reads from Standby Node  Heterogeneous Storage++ Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  15. 15. HDFSのスケーラビリティの限界 15  NameNodeのメモリサイズがHDFSのスケーラビリティの制限になる  NameNodeのメモリサイズは数百GBが限界である • これ以上増やすとGCの影響が無視できない  クラスターを複数構築する(分割する) • ただし複数のネームスペースはクライアントにとって扱いにくい クライアントから見て1つのクラスタに見えるようにしたい Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  16. 16. ViewFS 16  ViewFS • 複数のネームスペースをマウントした ビューを作ることで、クライアントから 見て1つの大きなクラスタに見えること ができる機能  問題 • クライアントがマウント情報を管理しな ければならない ViewFS A B C / data log tmp Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  17. 17. Router-based Federation (RBF) 17  Router • クライアントのリクエストを受け取 り適切なNameNodeにルーティング  State Store • マウント情報を中央管理 • ViewFSの問題を解決  クライアント側でマウント情報を管理す る必要がない! Cluster A R DNDN DN NN State Store Cluster B R DNDN DN NN ① ② ③ ④ Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  18. 18. Router-based Federation: 開発状況 18  開発の進捗 • Phase1: HDFS-10467(Resolved v2.9.0, v3.0.0) • Phase2: HDFS-12615(Resolved v3.2.0) • 今後は新機能ごとに別JIRA・別ブランチで開発  開発が完了した機能 • Router WebUI (WebHDFS) • クラスタ全体に渡るクォータ制限 • 1 対 * のマウントポイント(複数クラスタに分散できる)  主な開発途中の機能 • ケルベロス認証 • クラスタ間のバランサー Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  19. 19. Router-based Federation: 企業事例など 19  多くの企業が開発に参加! • Microsoft, Uber, VipShop, Huawei, LinkedIn, Hortonworks, Yahoo! JAPAN...  Microsoftの活用事例 • 8個のサブクラスターを束ねている(サーバー全台合わせて2万3000台!) • 28個のNameNode • 28個のRouter  Uberの活用事例 • Hiveのジョブの中間ファイルを出力用のクラスタの分離 ※活用事例の出典: https://www.slideshare.net/Hadoop_Summit/hdfs-router-based-federation Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  20. 20. もくじ 20  Hadoopとは  Router-based Federation  Consistent Reads from Standby Node  Heterogeneous Storage++ Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  21. 21. NameNode HA のアーキテクチャー 21 Active NN Standby NN Journal nodes ① Read/Write metadata metadata EditLog Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 ② Write EditLog ③ Read EditLog
  22. 22. 問題: アクティブノードの処理がボトルネック 22 Active NN Standby NN Journal nodes ① Read/Write metadata metadata EditLog Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 ② Write EditLog ③ Read EditLog
  23. 23. Consistent Reads from Standby Node 23 Standbys Journal nodes Read/Write Read Only  処理の90%を占めるREADオペレーション だけスタンバイノードからでも実行できる ようにした機能  アクティブノードは今まで通り READ/WRITEできる  Hadoop3系で実装された複数の NameNode機能(HDFS-6440)と合わせ て使う Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Active
  24. 24. Consistent Reads from Standby Node: Stale Read 問題 24 Journal nodes ① write x ② Write EditLog metadata metadata EditLog ③ read x -> doesn’t exist! stale! Active NN Standby NN Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  25. 25. Consistent Reads from Standby Node: 開発状況 25  開発に参加している企業 • LinkedIn, Uber, PayPal, …  ステータス: 開発中(HDFS-12943)  ステージ1 • Stale Readを許容できるユースケースにのみ対応 • クライアント側の設定値でStale Readするかどうか選択できる  ステージ2以降 • Consistent Readを保証するためのAPIを作成 • このAPIを実行した時点のアクティブの状態をスタンバイがキャッチアップするまで クライアント側で待機する • 他のエコシステム(MR, Spark, Hive, HBase)を新しいAPIに対応させる Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  26. 26. もくじ 26  Hadoopとは  Router-based Federation  Consistent Reads from Standby Node  Heterogeneous Storage++  Provided Storage  Storage Policy Satisfier Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  27. 27. Heterogeneous Storage 27 Storage Policy Block Placement Hot (default) DISK: 3 Warm DISK: 1, ARCHIVE: 2 Cold ARCHIVE: 3 /logs │ ├── last_week │ │ ├── last_month │ │ └── last_year Hot Warm Cold  データの使用頻度などに応じてHDFS上でポリシー(温度)を設定することで DataNodeの多様なストレージ(SSD, DISK, ARCHIVEなど)を効率的に利 用できる機能  Yahoo! JAPANでもアーカイブディスク(ARCHIVE)に適用している Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  28. 28. Provided Storage 28 Storage Policy Block Placement Hot (default) DISK: 3 Warm DISK: 1, ARCHIVE: 2 Cold ARCHIVE: 3 Provided PROVIDED: 1, DISK: 2 /logs │ ├── last_week │ │ ├── last_month │ │ └── last_year Hot Warm Cold  Heterogeneous Storageに新しく追加されたストレージポリシー  外部のストレージをマウントできる • 特にオブジェクトストレージをマウントすることを意識して開発された Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  29. 29. Hadoopとオブジェクトストレージ 29  すでにいくつかのオブジェクトストレージのHadoopインターフェースはある(s3a://, abfs://, ...) がしかし・・・  HDFSとセキュリティの互換性がない • Linuxライクなpermissionが使えない • ケルベロス認証、Ranger/Sentryが使えない • クレデンシャルはクライアント側で管理  HDFSの便利な機能が使えない • クォータ制限ができない • fsckコマンドが使えない  Provided Storageを使うと解決できる! Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  30. 30. Provided Storage 30 Remote Store PROVIDED DN PROVIDED DN NameNode AliasMap Block - file URI  他のストレージタイプ(DISK, SSD, ARCHIVE)と同じ立ち位置  外部ストレージがPROVIDEDストレージと してマウントされる  PROVIDEDストレージのブロックと 外部ストレージのファイルURIの マッピング情報がAliasMapに保存される  AliasMapはKVSで現在はLevelDBで実装さ れている metadata Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  31. 31. Provided Storage 31  MicrosoftとWestern Digitalが共同で開発中  HDFS-9806: Provided Storage Phase 1 (Resolved 3.1.0) • READのみ対応 • 外部ストレージからNameNodeのメタデータを作成するツール(fs2img)が提 供されている  HDFS-12090: Provided Storage Phase 2 (開発中) • WRITEにも対応 • 今年のHadoop SummitでProvided Storage経由でAzure Blob Storageへの書 き込みと削除のデモが行われていた Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  32. 32. SPS: Storage Policy Satisfier 32  Heterogeneous Storageを使っていると設定されているポリシー(温度)と実際にブ ロックが保存されている物理的なストレージの間にズレが生じてくる(COLDポリシーな のにSSDにあるなど)のをどうにかしたい  例 • 後からストレージポリシーを設定・変更した場合 • 違うストレージポリシー配下にmvした場合  Moverというツールを使うとズレを解消することができるが、管理者が手動で行う必要が あり管理も複雑  自動でよしなにやってくれる機能が欲しい Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  33. 33. SPS: Storage Policy Satisfier 33  現在のディレクトリ(ファイル)のストレージポリシーに合わせて、自動的にブロックを 適切なストレージに移してくれる機能  SPSは新しいデーモンとして起動 $ hdfs –daemon start sps  指定したパス以下のディレクトリ・ファイルをモニタリング $ hdfs storagepolicies -satisfyStoragePolicy -path <path>  開発状況:  初期の実装完了(v3.2.0)  開発に参加している企業: Intel, Huawei, … Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  34. 34. 本日詳しく紹介できなかったHDFSの新機能 34  Erasure Coding • DataNodeのストレージ使用量がレプリケーションと比べて半分になる • Hadoopの3系から利用可能(最新のCDHとHDPで利用可能!) • 拙著: HDFS Erasure Codingの紹介とYahoo! JAPANにおける運用事例 https://techblog.yahoo.co.jp/infrastructure/hdfs_erasure_coding/ Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  35. 35. 本日詳しく紹介できなかったHDFSの新機能 35  Apache Ozone • Hortonworksが開発しているHadoopのオブジェクトストレージ • 大量の小さなファイルも扱うことが可能 • 現在も活発に開発中 • 最近Hadoopのメインブランチにマージされた Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  36. 36. HDFSの新機能とHadoopのリリース 36 Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 RBF 1 EC PROVIDED 1 RBF 2 SPS RBF with Security PROVIDED 2 Consistent Read from Standby Ozone trunk 3.0.0 3.1.0 3.2.0

×
Save this presentationTap To Close