© 2018 NTT DATA Corporation
2018/7/20
技術革新統括本部 システム技術本部
鯵坂 明
HDFS router based federation
© 2018 NTT DATA Corporation 2
本日紹介するセッション
• HDFS router based federation
• Microsoft, Uberの共同発表
• 資料: https://www.slideshare.net/Hadoop_Summit/hdfs-router-based-federation
• HDFS BoF
© 2018 NTT DATA Corporation 3
従来のNameNode Federation
• HDFSクラスタを複数束ねて、1つのHDFSクラスタに見せるための仕組み
• NameNodeの限界を緩和するために、開発された
• Uberでは、現在これを利用して、1つのDCごとに3つのクラスタに分割している
• Main production HDFS cluster
• HBase cluster
• Tmp cluster (Hive scratch directory, YARN application logs, etc.)
© 2018 NTT DATA Corporation 4
従来のNameNode Federation
• クライアントにViewFileSystemの設定を記述
<property>
<!-- デフォルトでViewFileSystemを利用 -->
<name>fs.defaultFS</name>
<value>viewfs://cluster</value>
</property>
<property>
<name>fs.viewfs.mounttable.cluster.link./data</name>
<value>hdfs://ns1/data</value>
</property>
<property>
<name>fs.viewfs.mounttable.cluster.link./project</name>
<value>hdfs://ns2/project</value>
</property>
<property>
<name>fs.viewfs.mounttable.cluster.link./user</name>
<value>hdfs://ns3/user</value>
</property>
<property>
<name>fs.viewfs.mounttable.cluster.link./tmp</name>
<value>hdfs://ns4/tmp</value>
</property>
<property>
<!-- フォールバック先の指定-->
<name>fs.viewfs.mounttable.cluster.linkFallback</name>
<value>hdfs://ns5/</value>
</property>
ns5
ns4
ns1 ns2 ns3
© 2018 NTT DATA Corporation 5
従来のNameNode Federation
• クライアントが実行するコマンド
• 実際の処理内容
$ hdfs dfs –ls /data/sampledata.txt
$ hdfs dfs –ls hdfs://ns1/data/sampledata.txt
ns5
ns4
ns1 ns2 ns3
クライアント側で透過的に変換
© 2018 NTT DATA Corporation 6
従来のNameNode Federationの問題点
• ViewFileSystemの設定管理
• 全てのクライアントに全く同じ設定を実施する必要がある
• 設定変更は全てのクライアントに影響
• Subcluster間のリバランスが手動
• 解決策
• Mount tableを中央集権的に管理する
• Routing layerを加える
© 2018 NTT DATA Corporation 7
Router Based Federation (RBF)
• Router
• クライアントから送られてきたリクエストを、正しいNameNodeにプロキシする
• State Store
• Mount tableの管理
subcluster 0
R
NN
DN DN DN
subcluster 1
R
NN
DN DN DN
subcluster 2
R
NN
DN DN DN
StateStore(ZK)
clientC
© 2018 NTT DATA Corporation 8
RBF deployments
• Microsoft
• 23K servers
• 8 subclusters
• 28 NameNodes
• 28 Routers
• Uber
• 2 routers
• 1 data center
© 2018 NTT DATA Corporation 9
Routerによるレイテンシの影響
• NN と 4NN+12R を比較してみると、
• レイテンシは4倍程度に増加 (read metadataリクエストなので、最悪ケース)
• 単位時間あたりに処理できるリクエスト数は4倍弱に
© 2018 NTT DATA Corporation 10
開発状況
• アクティブに開発が続いている
• Phase 1 (HDFS-10467, 2016/5~2017/10, 22/22 subtasks)
• Phase 2 (HDFS-12165, 2017/10~, 66/86 subtasks)
• New features
• WebHDFS
• Federated quotas
• On-going work
• Mount points across subclusters (HDFS-13224)
• Rebalancer (HDFS-13123)
© 2018 NTT DATA Corporation 11
Mount points across subclusters
• マウントポイントとsubclusterは1対1対応
• 1対N対応させることで、容量やNameNodeへのリクエストの偏りが解消できる
• どうやって割り当てるか
• Consistent hashing
• HASH (ディレクトリ1階層目のハッシュ), HASH_ALL (フルパスのハッシュ)
• LOCAL
• RANDOM
• 制約
• ファイルを探すために複数のクラスタを辿る必要がある (consistent hashing以外)
• renameがクラスタ跨ぎになる可能性があり、非効率
• trunkにマージ済
© 2018 NTT DATA Corporation 12
On-going work: Rebalancer
• 現状では、偏りが発生した場合にはリバランスさせる必要がある
• リバランスは現状手動でやるしかない上に、煩雑
• リバランス対象のディレクトリをread-only化する
• データコピー
• Mount tableの修正
• Read-onlyの解除
• 旧データの削除
• 偏りを自動で特定し、自動でリバランスしてくれると、運用が非常に楽になる
開発状況
• JIRAにはdesign documentが置いてあるだけの状態
• Rebalancer を実装して、その評価をした論文がある
• Scaling Distributed File Systems in Resource-Harvesting Datacenters [ATC ‘17]
© 2018 NTT DATA Corporation 13
Future plan
• Uber
• Observer NameNode (HDFS-12943)
• RBF
• Upgrade to 3.x and use Erasure-Coding
• Auto rebalancing between hot and warm clusters
• Microsoft
• Federating federation!!!
© 2018 NTT DATA Corporation 14
HDFS BoF
• 開発者が集まって、各自話したいことを話す
• アジェンダはその場で決まる
© 2018 NTT DATA Corporation 15
HDFS BoF
• その場で書かれたアジェンダ
• 開発者が多いシリコンバレー開催だからこその集まり具合 (HDFSで20人くらいいて、大半はコミッタ)
• 他のカンファレンスにはない、Dataworks Summitの醍醐味だと思う
• 来年は東海岸開催なので、集まりが悪くならないか不安
© 2018 NTT DATA Corporation

HDFS Router-based federation

  • 1.
    © 2018 NTTDATA Corporation 2018/7/20 技術革新統括本部 システム技術本部 鯵坂 明 HDFS router based federation
  • 2.
    © 2018 NTTDATA Corporation 2 本日紹介するセッション • HDFS router based federation • Microsoft, Uberの共同発表 • 資料: https://www.slideshare.net/Hadoop_Summit/hdfs-router-based-federation • HDFS BoF
  • 3.
    © 2018 NTTDATA Corporation 3 従来のNameNode Federation • HDFSクラスタを複数束ねて、1つのHDFSクラスタに見せるための仕組み • NameNodeの限界を緩和するために、開発された • Uberでは、現在これを利用して、1つのDCごとに3つのクラスタに分割している • Main production HDFS cluster • HBase cluster • Tmp cluster (Hive scratch directory, YARN application logs, etc.)
  • 4.
    © 2018 NTTDATA Corporation 4 従来のNameNode Federation • クライアントにViewFileSystemの設定を記述 <property> <!-- デフォルトでViewFileSystemを利用 --> <name>fs.defaultFS</name> <value>viewfs://cluster</value> </property> <property> <name>fs.viewfs.mounttable.cluster.link./data</name> <value>hdfs://ns1/data</value> </property> <property> <name>fs.viewfs.mounttable.cluster.link./project</name> <value>hdfs://ns2/project</value> </property> <property> <name>fs.viewfs.mounttable.cluster.link./user</name> <value>hdfs://ns3/user</value> </property> <property> <name>fs.viewfs.mounttable.cluster.link./tmp</name> <value>hdfs://ns4/tmp</value> </property> <property> <!-- フォールバック先の指定--> <name>fs.viewfs.mounttable.cluster.linkFallback</name> <value>hdfs://ns5/</value> </property> ns5 ns4 ns1 ns2 ns3
  • 5.
    © 2018 NTTDATA Corporation 5 従来のNameNode Federation • クライアントが実行するコマンド • 実際の処理内容 $ hdfs dfs –ls /data/sampledata.txt $ hdfs dfs –ls hdfs://ns1/data/sampledata.txt ns5 ns4 ns1 ns2 ns3 クライアント側で透過的に変換
  • 6.
    © 2018 NTTDATA Corporation 6 従来のNameNode Federationの問題点 • ViewFileSystemの設定管理 • 全てのクライアントに全く同じ設定を実施する必要がある • 設定変更は全てのクライアントに影響 • Subcluster間のリバランスが手動 • 解決策 • Mount tableを中央集権的に管理する • Routing layerを加える
  • 7.
    © 2018 NTTDATA Corporation 7 Router Based Federation (RBF) • Router • クライアントから送られてきたリクエストを、正しいNameNodeにプロキシする • State Store • Mount tableの管理 subcluster 0 R NN DN DN DN subcluster 1 R NN DN DN DN subcluster 2 R NN DN DN DN StateStore(ZK) clientC
  • 8.
    © 2018 NTTDATA Corporation 8 RBF deployments • Microsoft • 23K servers • 8 subclusters • 28 NameNodes • 28 Routers • Uber • 2 routers • 1 data center
  • 9.
    © 2018 NTTDATA Corporation 9 Routerによるレイテンシの影響 • NN と 4NN+12R を比較してみると、 • レイテンシは4倍程度に増加 (read metadataリクエストなので、最悪ケース) • 単位時間あたりに処理できるリクエスト数は4倍弱に
  • 10.
    © 2018 NTTDATA Corporation 10 開発状況 • アクティブに開発が続いている • Phase 1 (HDFS-10467, 2016/5~2017/10, 22/22 subtasks) • Phase 2 (HDFS-12165, 2017/10~, 66/86 subtasks) • New features • WebHDFS • Federated quotas • On-going work • Mount points across subclusters (HDFS-13224) • Rebalancer (HDFS-13123)
  • 11.
    © 2018 NTTDATA Corporation 11 Mount points across subclusters • マウントポイントとsubclusterは1対1対応 • 1対N対応させることで、容量やNameNodeへのリクエストの偏りが解消できる • どうやって割り当てるか • Consistent hashing • HASH (ディレクトリ1階層目のハッシュ), HASH_ALL (フルパスのハッシュ) • LOCAL • RANDOM • 制約 • ファイルを探すために複数のクラスタを辿る必要がある (consistent hashing以外) • renameがクラスタ跨ぎになる可能性があり、非効率 • trunkにマージ済
  • 12.
    © 2018 NTTDATA Corporation 12 On-going work: Rebalancer • 現状では、偏りが発生した場合にはリバランスさせる必要がある • リバランスは現状手動でやるしかない上に、煩雑 • リバランス対象のディレクトリをread-only化する • データコピー • Mount tableの修正 • Read-onlyの解除 • 旧データの削除 • 偏りを自動で特定し、自動でリバランスしてくれると、運用が非常に楽になる 開発状況 • JIRAにはdesign documentが置いてあるだけの状態 • Rebalancer を実装して、その評価をした論文がある • Scaling Distributed File Systems in Resource-Harvesting Datacenters [ATC ‘17]
  • 13.
    © 2018 NTTDATA Corporation 13 Future plan • Uber • Observer NameNode (HDFS-12943) • RBF • Upgrade to 3.x and use Erasure-Coding • Auto rebalancing between hot and warm clusters • Microsoft • Federating federation!!!
  • 14.
    © 2018 NTTDATA Corporation 14 HDFS BoF • 開発者が集まって、各自話したいことを話す • アジェンダはその場で決まる
  • 15.
    © 2018 NTTDATA Corporation 15 HDFS BoF • その場で書かれたアジェンダ • 開発者が多いシリコンバレー開催だからこその集まり具合 (HDFSで20人くらいいて、大半はコミッタ) • 他のカンファレンスにはない、Dataworks Summitの醍醐味だと思う • 来年は東海岸開催なので、集まりが悪くならないか不安
  • 16.
    © 2018 NTTDATA Corporation