SlideShare a Scribd company logo
HDFSのスケーラビリティの限界を
突破するためのさまざまな取り組み
〜エクサバイト級の分散ストレージを目指して〜
ヤフー株式会社 浅沼 孝信
2019年3月14日
自己紹介
2 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 名前
– 浅沼 孝信
 業務履歴
– 2012年度新卒入社
– HadoopやNiFiを用いた社内インフラの設計・開発
– Hadoopを中心としたOSS開発
– 2018年7月よりHadoopコミッター
もくじ
3 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 HDFSの復習
 Router-based Federation (RBF)
 Observer NameNode
 Erasure Coding
もくじ
4 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 HDFSの復習
 Router-based Federation (RBF)
 Observer NameNode
 Erasure Coding
HDFS: アーキテクチャー
5
NameNode
DataNode
File
metadata
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Client
HDFS: アーキテクチャー
6
NameNode
DataNode
b1
b2
b3
128MB
128MB
metadata
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Client
HDFS: アーキテクチャー
7
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
HDFS: アーキテクチャー
8
b1 b1 b1
NameNode
DataNode
b1
b2
b3
128MB
128MB
metadata
Block Report
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Client
HDFS: アーキテクチャー
9
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
HDFS: NameNodeのメタデータ
10
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
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
EditLog
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
persist
Client
HDFSのすごいところ
12 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 強い一貫性
– 1台のマスターが全てのメタデータをメモリ上で管理しているので、
あるユーザーが行なったオペレーションが他のユーザーから見ても
瞬時に反映される
 スケーラビリティ
– 1000台ぐらい(数十PB)までならコモディティなサーバーを追加す
るだけで線形にスケールする
HDFSのスケーラビリティの限界
13 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 数千台の大規模なクラスタやワークロードの重いク
ラスタではスケーラビリティの限界に達してさまざ
まな問題が生じる!
HDFSのスケーラビリティの限界
14 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
b1
b3
b2 b1 b1b2
b2
b3
b3
NameNode
metadata
NameSpace
Block Map
File -> BlockID BlockID -> DN
b1
b2
b3
128MB
128MB
Client
DataNode
HDFSのスケーラビリティの限界
15 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
b1
b3
b2 b1 b1b2
b2
b3
b3
NameNode
metadata
NameSpace
Block Map
File -> BlockID BlockID -> DN
b1
b2
b3
128MB
128MB
Client
①メタデータの肥大化
DataNode
HDFSのスケーラビリティの限界
16 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
b1
b3
b2 b1 b1b2
b2
b3
b3
NameNode
metadata
NameSpace
Block Map
File -> BlockID BlockID -> DN
b1
b2
b3
128MB
128MB
Client
①メタデータの肥大化
②リクエスト量の増大
DataNode
HDFSのスケーラビリティの限界
17 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
b1
b3
b2 b1 b1b2
b2
b3
b3
NameNode
metadata
NameSpace
Block Map
File -> BlockID BlockID -> DN
b1
b2
b3
128MB
128MB
Client
①メタデータの肥大化
②リクエスト量の増大
③レプリケーションのストレージコストが高い
DataNode
新機能でスケーラビリティ向上!
18 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
b1
b3
b2 b1 b1b2
b2
b3
b3
NameNode
metadata
NameSpace
Block Map
File -> BlockID BlockID -> DN
b1
b2
b3
128MB
128MB
Client
①メタデータの肥大化
→ Router-based Federation
②リクエスト量の増大
→ Observer NameNode
③レプリケーションのストレージコストが高い → Erasure Coding
DataNode
もくじ
19 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 HDFSの復習
 Router-based Federation (RBF)
 Observer NameNode
 Erasure Coding
問題: メタデータの肥大化
20 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 数千台のクラスタではメタデータがNameNodeのメモリ
サイズの限界に達する
 それ以上のデータを保存する場合は別のNameNodeが必
要なので複数のクラスタができる
 複数のクラスタはユーザーにとって扱いづらい
ユーザーから見て1つの大きなクラスタとして扱えるよう
にして欲しい
Router-based Federation(RBF)とは
21 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Federation Layer
Cluster A
Router
DNDN DN
NN
State Store
Cluster B
Router
DNDN DN
NN
 クライアントのリクエストを
ルーティングするフェデレー
ション層を導入
– Router(プロキシサーバー)
– StateStore(マウント情報管理)
 クライアントからNameNode
が隠蔽されて複数のクラスタを
1つの大きなクラスタのように
扱うことができる
BA
/
/ad /log
/ /
RBFの処理の流れ
22 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Federation Layer
Cluster A
Router
DNDN DN
NN
State Store
Cluster B
Router
DNDN DN
NN
(1)
(2)
(3)
(5)
hadoop fs -get /log/data/file .
(1) クライアントはRouterにリクエストを
送信
(2) RouterはStateStoreに保存されている
マウントテーブルを参照
(3) 適切なNameNodeにルーティングする
(4) NameNodeはRouterを経由しながら
クライアントにレスポンスを返信
(5) クライアントはレスポンスの情報を元
に目的のDataNodeにアクセス
(4)
BA
/
/ad /log
/ /
RBFの開発状況
23 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 開発企業
– Microsoft, Uber, VipShop, Huawei, LinkedIn, Cloudera,
Yahoo! JAPAN...
 現在はセキュリティ機能を開発中(HDFS-13532)
– UberやMicrosoftが中心
– ケルベロス認証のベースの実装が完了
– デリゲーショントークンに対応
– Hadoop-3.3.0に入りそう
もくじ
24 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 HDFSの復習
 Router-based Federation (RBF)
 Observer NameNode
– Consistent Reads from Standby Node
 Erasure Coding
NameNode HAのアーキテクチャ
25 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Active NN Standby NN
Journal nodes
① Read/Write
metadata metadata
EditLog
② Write EditLog ③ Read EditLog
metadatametadatametadata
複数NameNodeの機能(HDFS-6440)
26 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Active NN
Standby NNs
Journal nodes
① Read/Write
metadata
EditLog
② Write EditLog
③ Read EditLog
metadatametadatametadata
問題: Active NameNodeの責任が重い
27 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Active NN
Standby NNs
Journal nodes
① Read/Write
metadata
EditLog
② Write EditLog
③ Read EditLog
metadatametadatametadata
Observer NameNodeの登場
28 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Active NN
Standby
Journal nodes
① Read/Write
metadata
EditLog
② Write EditLog
③ Read EditLog
ObserverObserver
Read
Read処理はObserver
NameNodeから可能!!
Read
READリクエストの分散
29 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 READリクエストの分散は効果的である
– 一般的なユースケースではREAD/WRITEのリクエストのうち
約9割がREADリクエスト
 ObserverからのREADを優先する機能
– Hadoopクライアントの機能(ObserverReadProxyProvider)
– ObserverからREADできなかったらActiveからREADする
Observer NameNodeの状態遷移
30 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Active Standby
Observer
Active-Observer間は直接遷移できない
Stale Read 問題
31 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Journal nodes
① write x
② Write EditLog
metadata metadata
EditLog
③ read x
-> doesn’t exist!
stale!
Active NN Observer NN
Stale Read 問題の解決: state IDの導入
32 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Journal nodes
metadata metadata
EditLog
Active NN Observer NN
Stale Read 問題の解決: state IDの導入
33 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Journal nodes
metadata metadata
EditLog
Active NN Observer NN
Stale Read 問題の解決: state IDの導入
34 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Journal nodes
metadata metadata
EditLog
Active NN Observer NN
transaction ID
② Write EditLog
Stale Read 問題の解決: state IDの導入
35 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Journal nodes
metadata metadata
EditLog
Active NN Observer NN
transaction ID
② Write EditLog
Stale Read 問題の解決: state IDの導入
36 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Journal nodes
metadata metadata
EditLog
Active NN Observer NN
transaction ID
② Write EditLog
state ID
transaction ID
④transaction IDからstate IDを作成
Stale Read 問題の解決: state IDの導入
37 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Journal nodes
metadata metadata
EditLog
Active NN Observer NN
transaction ID
② Write EditLog
state ID
transaction ID
④transaction IDからstate IDを作成
Stale Read 問題の解決: state IDの導入
38 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Journal nodes
metadata metadata
EditLog
Active NN Observer NN
transaction ID
② Write EditLog
state ID
transaction ID
④transaction IDからstate IDを作成
⑥state IDに含まれたtransaction IDの
EditLogを読み込んでから処理を行う
transaction ID
Stale Read 問題の解決: state IDの導入
39 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
transaction ID
Journal nodes
metadata metadata
EditLog
Active NN Observer NN
state ID
transaction ID
⑥state IDに含まれたtransaction IDの
EditLogを読み込んでから処理を行う
② Write EditLog transaction ID
④transaction IDからstate IDを作成
シングルクライアントに関しては
Read-After-Write一貫性を保つ!
開発状況
40 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 開発企業: LinkedIn, Uber, PayPal, Cloudera...
 マスターブランチにマージ完了!(2018/12/24)
– Hadoop-3.3.0でリリースされる
– Hadoop2系にもバックポートされそう(HDFS-14204)
もくじ
41 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 HDFSの復習
 Router-based Federation (RBF)
 Observer NameNode
 Erasure Coding
問題: ストレージコストが高い
42 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 通常の3レプリケーションでは冗長性を保つために
元データの3倍のストレージコストがかかる
b1
b3
b2 b1 b1b2
b2
b3
b3
DataNode
 6個のデータブロックから3個のパリティブロックを生成
 9個のブロックうち任意の6個ブロックから元データを復元可能
 レプリケーションの半分のストレージコストで同等の冗長性を実現!
Erasure Coding(EC)とは
43 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
b1 b3 b4 b6 b7 b8b2 b5 b9
Replication Erasure Coding (6, 3)
損失の許容できるブロック数 2 3
元データに対するストレージコスト 3倍 1.5倍
encode
データ量が多いほど顕著な差が出る
44 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
レプリケーション EC 元データ
ストレージコスト
データ量
ECブロックの実装の詳細
45 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
1MB
1MB
b1 b2 b3 b4 b5 b6 b7 b8 b9
ECブロックの実装の詳細
46 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
b1 b2 b3 b4 b5 b6 b7 b8 b9
開発状況など
47 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 開発自体はだいぶ前に完了
– 新機能の開発はしばらく無し
– 細かい改善・バグ修正が行われている
 利用できるのはHadoop3系から
– ユーザーが増えるのはこれから
 解説記事(拙著)
– HDFS Erasure Codingの紹介とYahoo! JAPANにおける運用事例
https://techblog.yahoo.co.jp/infrastructure/hdfs_erasure_coding
番外編: Ozone
48 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
 Hadoopのオブジェクトストア
 HDFSのアーキテクチャを刷新
 マスターのメタデータ肥大化問題を根本的に解決
HDFSの新機能のリリースプラン
49 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Router-based
Federation
Erasure Coding
RBF with Security
Observer NameNode
Ozone
trunk
~ 3.2.0 (2019/01) 3.3.0

More Related Content

PDF
Apache Hadoop YARNとマルチテナントにおけるリソース管理
PDF
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
PDF
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
PPTX
HDFSネームノードのHAについて #hcj13w
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
PPTX
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
PPTX
Hadoop -NameNode HAの仕組み-
PDF
AlmaLinux と Rocky Linux の誕生経緯&比較
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
HDFSネームノードのHAについて #hcj13w
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Hadoop -NameNode HAの仕組み-
AlmaLinux と Rocky Linux の誕生経緯&比較

What's hot (20)

PPT
インフラエンジニアのためのcassandra入門
PDF
噛み砕いてKafka Streams #kafkajp
PDF
爆速クエリエンジン”Presto”を使いたくなる話
PPTX
事例で学ぶApache Cassandra
PPTX
RDB開発者のためのApache Cassandra データモデリング入門
PDF
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
PPT
Cassandraのしくみ データの読み書き編
PDF
Hadoop入門
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PDF
ログ管理のベストプラクティス
PDF
Apache NiFi の紹介 #streamctjp
PDF
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
PDF
Redis cluster
PDF
Apache Spark の紹介(前半:Sparkのキホン)
PDF
Hadoopの概念と基本的知識
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
PDF
Best Practices for ETL with Apache NiFi on Kubernetes - Albert Lewandowski, G...
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PPTX
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PDF
Hadoopのシステム設計・運用のポイント
インフラエンジニアのためのcassandra入門
噛み砕いてKafka Streams #kafkajp
爆速クエリエンジン”Presto”を使いたくなる話
事例で学ぶApache Cassandra
RDB開発者のためのApache Cassandra データモデリング入門
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Cassandraのしくみ データの読み書き編
Hadoop入門
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
ログ管理のベストプラクティス
Apache NiFi の紹介 #streamctjp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
Redis cluster
Apache Spark の紹介(前半:Sparkのキホン)
Hadoopの概念と基本的知識
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
Best Practices for ETL with Apache NiFi on Kubernetes - Albert Lewandowski, G...
アーキテクチャから理解するPostgreSQLのレプリケーション
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
Hadoopのシステム設計・運用のポイント
Ad

Similar to HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hcj2019 (20)

PDF
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
PPTX
現場のインフラエンジニアから見たヤフー #ヤフー名古屋
PDF
ビッグIoTデータに対応したデータベース GridDB
PDF
Beginner must-see! A future that can be opened by learning Hadoop
PDF
Search engineering tech talk 2019 summer
PPTX
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
PDF
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
PDF
MBAAで覚えるDBREの大事なおしごと
PDF
SPAを選択した理由とその結果 ~Reactを添えて~
PDF
AS/400のデータをクラウドで活用! 事例を交えながら『DBMoto』をご紹介。
PDF
[db tech showcase Tokyo 2014] D15:日立ストレージと国産DBMS HiRDBで実現する『ワンランク上』のディザスタリカバリ...
PPTX
Introduction to JIT Compiler in JVM
PDF
スキーマレスカラムナフォーマット「Yosegi」で実現する スキーマの柔軟性と処理性能を両立したログ収集システム / Hadoop / Spark Con...
PDF
[Modern Cloud Day Tokyo 2019] 基調講演(Day1):次世代クラウドが変える日本のエンタープライズ・ビジネス
PDF
ソーシャルアプリを分析してみた
PDF
db tech showcase2019 オープニングセッション @ 石川 雅也
PDF
Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日
PPTX
DLモデル開発中の雑務が嫌で支援プラットフォームを作った話
PDF
ヤフーにおけるHadoop Operations #tdtech
PDF
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
現場のインフラエンジニアから見たヤフー #ヤフー名古屋
ビッグIoTデータに対応したデータベース GridDB
Beginner must-see! A future that can be opened by learning Hadoop
Search engineering tech talk 2019 summer
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
MBAAで覚えるDBREの大事なおしごと
SPAを選択した理由とその結果 ~Reactを添えて~
AS/400のデータをクラウドで活用! 事例を交えながら『DBMoto』をご紹介。
[db tech showcase Tokyo 2014] D15:日立ストレージと国産DBMS HiRDBで実現する『ワンランク上』のディザスタリカバリ...
Introduction to JIT Compiler in JVM
スキーマレスカラムナフォーマット「Yosegi」で実現する スキーマの柔軟性と処理性能を両立したログ収集システム / Hadoop / Spark Con...
[Modern Cloud Day Tokyo 2019] 基調講演(Day1):次世代クラウドが変える日本のエンタープライズ・ビジネス
ソーシャルアプリを分析してみた
db tech showcase2019 オープニングセッション @ 石川 雅也
Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日
DLモデル開発中の雑務が嫌で支援プラットフォームを作った話
ヤフーにおけるHadoop Operations #tdtech
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Ad

More from Yahoo!デベロッパーネットワーク (20)

PDF
ゼロから始める転移学習
PDF
継続的なモデルモニタリングを実現するKubernetes Operator
PDF
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
PDF
オンプレML基盤on Kubernetes パネルディスカッション
PDF
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
PDF
Persistent-memory-native Database High-availability Feature
PDF
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
PDF
eコマースと実店舗の相互利益を目指したデザイン #yjtc
PDF
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
PDF
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
PDF
ビッグデータから人々のムードを捉える #yjtc
PDF
サイエンス領域におけるMLOpsの取り組み #yjtc
PDF
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
PDF
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
PDF
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
PDF
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PDF
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
PDF
「新しいおうち探し」のためのAIアシスト検索 #yjtc
PDF
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ゼロから始める転移学習
継続的なモデルモニタリングを実現するKubernetes Operator
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Persistent-memory-native Database High-availability Feature
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
eコマースと実店舗の相互利益を目指したデザイン #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
ビッグデータから人々のムードを捉える #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc

HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hcj2019

  • 2. 自己紹介 2 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  名前 – 浅沼 孝信  業務履歴 – 2012年度新卒入社 – HadoopやNiFiを用いた社内インフラの設計・開発 – Hadoopを中心としたOSS開発 – 2018年7月よりHadoopコミッター
  • 3. もくじ 3 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  HDFSの復習  Router-based Federation (RBF)  Observer NameNode  Erasure Coding
  • 4. もくじ 4 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  HDFSの復習  Router-based Federation (RBF)  Observer NameNode  Erasure Coding
  • 5. HDFS: アーキテクチャー 5 NameNode DataNode File metadata Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Client
  • 6. HDFS: アーキテクチャー 6 NameNode DataNode b1 b2 b3 128MB 128MB metadata Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Client
  • 7. HDFS: アーキテクチャー 7 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
  • 8. HDFS: アーキテクチャー 8 b1 b1 b1 NameNode DataNode b1 b2 b3 128MB 128MB metadata Block Report Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Client
  • 9. HDFS: アーキテクチャー 9 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
  • 10. HDFS: NameNodeのメタデータ 10 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
  • 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 EditLog Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 persist Client
  • 12. HDFSのすごいところ 12 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  強い一貫性 – 1台のマスターが全てのメタデータをメモリ上で管理しているので、 あるユーザーが行なったオペレーションが他のユーザーから見ても 瞬時に反映される  スケーラビリティ – 1000台ぐらい(数十PB)までならコモディティなサーバーを追加す るだけで線形にスケールする
  • 13. HDFSのスケーラビリティの限界 13 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  数千台の大規模なクラスタやワークロードの重いク ラスタではスケーラビリティの限界に達してさまざ まな問題が生じる!
  • 14. HDFSのスケーラビリティの限界 14 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 b1 b3 b2 b1 b1b2 b2 b3 b3 NameNode metadata NameSpace Block Map File -> BlockID BlockID -> DN b1 b2 b3 128MB 128MB Client DataNode
  • 15. HDFSのスケーラビリティの限界 15 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 b1 b3 b2 b1 b1b2 b2 b3 b3 NameNode metadata NameSpace Block Map File -> BlockID BlockID -> DN b1 b2 b3 128MB 128MB Client ①メタデータの肥大化 DataNode
  • 16. HDFSのスケーラビリティの限界 16 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 b1 b3 b2 b1 b1b2 b2 b3 b3 NameNode metadata NameSpace Block Map File -> BlockID BlockID -> DN b1 b2 b3 128MB 128MB Client ①メタデータの肥大化 ②リクエスト量の増大 DataNode
  • 17. HDFSのスケーラビリティの限界 17 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 b1 b3 b2 b1 b1b2 b2 b3 b3 NameNode metadata NameSpace Block Map File -> BlockID BlockID -> DN b1 b2 b3 128MB 128MB Client ①メタデータの肥大化 ②リクエスト量の増大 ③レプリケーションのストレージコストが高い DataNode
  • 18. 新機能でスケーラビリティ向上! 18 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 b1 b3 b2 b1 b1b2 b2 b3 b3 NameNode metadata NameSpace Block Map File -> BlockID BlockID -> DN b1 b2 b3 128MB 128MB Client ①メタデータの肥大化 → Router-based Federation ②リクエスト量の増大 → Observer NameNode ③レプリケーションのストレージコストが高い → Erasure Coding DataNode
  • 19. もくじ 19 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  HDFSの復習  Router-based Federation (RBF)  Observer NameNode  Erasure Coding
  • 20. 問題: メタデータの肥大化 20 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  数千台のクラスタではメタデータがNameNodeのメモリ サイズの限界に達する  それ以上のデータを保存する場合は別のNameNodeが必 要なので複数のクラスタができる  複数のクラスタはユーザーにとって扱いづらい ユーザーから見て1つの大きなクラスタとして扱えるよう にして欲しい
  • 21. Router-based Federation(RBF)とは 21 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Federation Layer Cluster A Router DNDN DN NN State Store Cluster B Router DNDN DN NN  クライアントのリクエストを ルーティングするフェデレー ション層を導入 – Router(プロキシサーバー) – StateStore(マウント情報管理)  クライアントからNameNode が隠蔽されて複数のクラスタを 1つの大きなクラスタのように 扱うことができる BA / /ad /log / /
  • 22. RBFの処理の流れ 22 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Federation Layer Cluster A Router DNDN DN NN State Store Cluster B Router DNDN DN NN (1) (2) (3) (5) hadoop fs -get /log/data/file . (1) クライアントはRouterにリクエストを 送信 (2) RouterはStateStoreに保存されている マウントテーブルを参照 (3) 適切なNameNodeにルーティングする (4) NameNodeはRouterを経由しながら クライアントにレスポンスを返信 (5) クライアントはレスポンスの情報を元 に目的のDataNodeにアクセス (4) BA / /ad /log / /
  • 23. RBFの開発状況 23 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  開発企業 – Microsoft, Uber, VipShop, Huawei, LinkedIn, Cloudera, Yahoo! JAPAN...  現在はセキュリティ機能を開発中(HDFS-13532) – UberやMicrosoftが中心 – ケルベロス認証のベースの実装が完了 – デリゲーショントークンに対応 – Hadoop-3.3.0に入りそう
  • 24. もくじ 24 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  HDFSの復習  Router-based Federation (RBF)  Observer NameNode – Consistent Reads from Standby Node  Erasure Coding
  • 25. NameNode HAのアーキテクチャ 25 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Active NN Standby NN Journal nodes ① Read/Write metadata metadata EditLog ② Write EditLog ③ Read EditLog
  • 26. metadatametadatametadata 複数NameNodeの機能(HDFS-6440) 26 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Active NN Standby NNs Journal nodes ① Read/Write metadata EditLog ② Write EditLog ③ Read EditLog
  • 27. metadatametadatametadata 問題: Active NameNodeの責任が重い 27 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Active NN Standby NNs Journal nodes ① Read/Write metadata EditLog ② Write EditLog ③ Read EditLog
  • 28. metadatametadatametadata Observer NameNodeの登場 28 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Active NN Standby Journal nodes ① Read/Write metadata EditLog ② Write EditLog ③ Read EditLog ObserverObserver Read Read処理はObserver NameNodeから可能!! Read
  • 29. READリクエストの分散 29 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  READリクエストの分散は効果的である – 一般的なユースケースではREAD/WRITEのリクエストのうち 約9割がREADリクエスト  ObserverからのREADを優先する機能 – Hadoopクライアントの機能(ObserverReadProxyProvider) – ObserverからREADできなかったらActiveからREADする
  • 30. Observer NameNodeの状態遷移 30 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Active Standby Observer Active-Observer間は直接遷移できない
  • 31. Stale Read 問題 31 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Journal nodes ① write x ② Write EditLog metadata metadata EditLog ③ read x -> doesn’t exist! stale! Active NN Observer NN
  • 32. Stale Read 問題の解決: state IDの導入 32 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Journal nodes metadata metadata EditLog Active NN Observer NN
  • 33. Stale Read 問題の解決: state IDの導入 33 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Journal nodes metadata metadata EditLog Active NN Observer NN
  • 34. Stale Read 問題の解決: state IDの導入 34 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Journal nodes metadata metadata EditLog Active NN Observer NN transaction ID ② Write EditLog
  • 35. Stale Read 問題の解決: state IDの導入 35 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Journal nodes metadata metadata EditLog Active NN Observer NN transaction ID ② Write EditLog
  • 36. Stale Read 問題の解決: state IDの導入 36 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Journal nodes metadata metadata EditLog Active NN Observer NN transaction ID ② Write EditLog state ID transaction ID ④transaction IDからstate IDを作成
  • 37. Stale Read 問題の解決: state IDの導入 37 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Journal nodes metadata metadata EditLog Active NN Observer NN transaction ID ② Write EditLog state ID transaction ID ④transaction IDからstate IDを作成
  • 38. Stale Read 問題の解決: state IDの導入 38 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Journal nodes metadata metadata EditLog Active NN Observer NN transaction ID ② Write EditLog state ID transaction ID ④transaction IDからstate IDを作成 ⑥state IDに含まれたtransaction IDの EditLogを読み込んでから処理を行う transaction ID
  • 39. Stale Read 問題の解決: state IDの導入 39 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 transaction ID Journal nodes metadata metadata EditLog Active NN Observer NN state ID transaction ID ⑥state IDに含まれたtransaction IDの EditLogを読み込んでから処理を行う ② Write EditLog transaction ID ④transaction IDからstate IDを作成 シングルクライアントに関しては Read-After-Write一貫性を保つ!
  • 40. 開発状況 40 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  開発企業: LinkedIn, Uber, PayPal, Cloudera...  マスターブランチにマージ完了!(2018/12/24) – Hadoop-3.3.0でリリースされる – Hadoop2系にもバックポートされそう(HDFS-14204)
  • 41. もくじ 41 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  HDFSの復習  Router-based Federation (RBF)  Observer NameNode  Erasure Coding
  • 42. 問題: ストレージコストが高い 42 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  通常の3レプリケーションでは冗長性を保つために 元データの3倍のストレージコストがかかる b1 b3 b2 b1 b1b2 b2 b3 b3 DataNode
  • 43.  6個のデータブロックから3個のパリティブロックを生成  9個のブロックうち任意の6個ブロックから元データを復元可能  レプリケーションの半分のストレージコストで同等の冗長性を実現! Erasure Coding(EC)とは 43 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 b1 b3 b4 b6 b7 b8b2 b5 b9 Replication Erasure Coding (6, 3) 損失の許容できるブロック数 2 3 元データに対するストレージコスト 3倍 1.5倍 encode
  • 44. データ量が多いほど顕著な差が出る 44 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 レプリケーション EC 元データ ストレージコスト データ量
  • 45. ECブロックの実装の詳細 45 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 1MB 1MB b1 b2 b3 b4 b5 b6 b7 b8 b9
  • 46. ECブロックの実装の詳細 46 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 b1 b2 b3 b4 b5 b6 b7 b8 b9
  • 47. 開発状況など 47 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  開発自体はだいぶ前に完了 – 新機能の開発はしばらく無し – 細かい改善・バグ修正が行われている  利用できるのはHadoop3系から – ユーザーが増えるのはこれから  解説記事(拙著) – HDFS Erasure Codingの紹介とYahoo! JAPANにおける運用事例 https://techblog.yahoo.co.jp/infrastructure/hdfs_erasure_coding
  • 48. 番外編: Ozone 48 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止  Hadoopのオブジェクトストア  HDFSのアーキテクチャを刷新  マスターのメタデータ肥大化問題を根本的に解決
  • 49. HDFSの新機能のリリースプラン 49 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Router-based Federation Erasure Coding RBF with Security Observer NameNode Ozone trunk ~ 3.2.0 (2019/01) 3.3.0