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