15/12/02	
大規模HDFS  &  ErasureCoding
分散コンピューティング黒帯
鄭 輝
社外秘
P2自己紹介
•  2004年 来日
•  2008年 ヤフージャパンに入社
–  2013年 大規模Hadoopクラスタを構築、運用
–  2015年  OSS(Hadoopエコシステム)開発 (※今ここ)
•  2015年10月 分散コンピューティング黒帯
P3Agenda
•  ヤフージャンパンのHadoopが取り巻く環境
•  大規模HDFSクラスタで直面する課題
P4Agenda
•  ヤフージャンパンのHadoopが取り巻く環境
•  大規模HDFSクラスタで直面する課題
P5
Copyright  (C)  2015  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
y = 3.284 e 0.0021x
年年2.1倍
HDFS  使⽤用量量  →  年年2.1倍(予測)
データ使用量も「指数関数的」に増加
P6
Copyright  (C)  2015  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
CPU使用量「指数関数的」に増加
3.3倍
y = 19.859 e
CPU  使⽤用量量  →  年年3.3倍
0.0033x	
1年年
P7
Copyright  (C)  2015  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
⼤大規模なHadoop環境
〜~2010年年 2011年年〜~2012年年 2013年年 2014年年
6,000台	
最大のクラスタ 3,000台
P8Agenda
•  ヤフージャンパンのHadoopが取り巻く環境
•  大規模HDFSクラスタで直面する課題
P9普通のHDFS
NameNode
        ※active
fsimage
NameNode
        ※standby
fsimage
JournalNode
client
create,rm…
editlog
k
block
k
block
k
block
k
block
DataNode
k
block
k
block
BlockReport
client
ls,  create,  mv…
editlog
editlog
/
P10大規模のHDFS
NameNode
        ※active
fsimage
NameNode
        ※standby
fsimage
JournalNode
client
create,rm…
3000  connection
  BlockReport
BlockReport
3000  connection
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
DataNode
blockblock
client
client
client
client
ガベージコ
レクション 遅い
1.6億ブロック
遅い
遅い
※2015年11月ファイル数:1.3億 files	
  and	
  directories,	
  1.6億	
  blocks
3000台
/
有効データ:1/3
60PB->20PB
two
P11Agenda
•  ヤフージャンパンのHadoopが取り巻く環境
•  大規模HDFSクラスタで直面する課題
– BlockReportが遅い(解決済み)
– Storageコスト(開発中)
P12BlockReportの遅い影響
•  NameNodeの起動が遅い(数時間)
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
k
block
DataNode
blockblock
NameNode
fsimage
BlocksMap
blockId ,dn3,dn2dn1
blockと存在するdn
の情報を揃わないと
データをアクセスで
きない
… …
blockId ,dn6,dn5dn4
blockId ,dn9,dn8dn7
BlockReport
BlockReport
P13
軽い処理
重い処理
BlockReportなぜ遅いか
追加、削除、失効のdiffを取る
under/over  Replicationの処理
pendingReplicationsの処理
corruptReplicasの処理
更新/追加/削除/失効処理
blockと所在するDNの
情報を集めるのみ
firstBlockReport
BlockReport
HDFS-7980の影響
機能してない
P14firstBlockReport機能しない原因
NameNode DataNode
②full
①increment
•  BlockReport
–  fullBlockReport(1.6億)
•  頻度:24時間に1回
–  incrementBlockReport(差
分のみ)
•  頻度:数分間に1回
軽い処理
NameNode DataNode
①full
②increment軽い処理
再起動
再起動
稼働中
busy
P15BlockReportが遅い対策①
•  暫定対策
– 運用手順(incrementBlockReportをなくす)
•  全DataNode  stop
•  NameNode起動/再起動
•  全DataNode  start
– 10分内確実完了
P16BlockReportが遅い対策②
•  根本対策
– コンミュニティと連携(HDFS-7980)  
•  一つ目のfullBlockReportに軽い処理を適用する
•  Hadoop2.6.1から
NameNode DataNode
②full
①increment軽い処理
再起動
稼働中
busy
P17Agenda
•  ヤフージャンパンのHadoopが取り巻く環境
•  大規模HDFSクラスタで直面する課題
– BlockReportが遅い(解決済み)
– Storageコスト(開発中)
P18HDFSのOverhead-200%
Replication(3)
Block1
File
Block2
Block3
rep1 rep2 rep3
Block1
dn1 dn2 dn3
Durabality=2
Overhead=200%
Block1
P19ErasureCodingで改善 
ReedSolomon(6,3)
Block1
File
Block2
BlockN
stripe1
Block1
stripe2
StripeN
DataBlock ParityBlock
Durabality=3
Overhead=50%
s1
s7
dn1
s1 s2
s8
dn2
s2 s6
s12
dn6
s6 p1
p4
dn7
p1 p2
s5
dn8
p2 p3
s6
dn9
p3
HDFS-­‐7285
データ復元用
P20コミュニティーと一緒に開発
ヤフージャパンRESOLVED:
56
P21Replication  vs  ErasureCoding
Ac<on	
 Resource	
 Replica<on	
 ErasureCoding	
Read	
Network	
  Traffic	
 ◯	
 ✖	
CPU	
 ◯	
 ◯	
Disk	
 ー	
 ー	
	
Wr<e	
  
Network	
  Traffic	
 △※量3倍、locality	
   △※量1.5、localityなし	
CPU	
 ◯	
 ✖	
Disk	
 ー	
 ー	
	
Keep	
Network	
  Traffic	
 ー	
 ー	
CPU	
 ー	
 ー	
Disk	
 ✖	
 ◯	
Reconstruc<on	
Network	
  Traffic	
 ◯	
 ✖	
CPU	
 ◯	
 ✖	
Disk	
 ー	
 ー	
•  EC最大のメリット:Disk容量が少ない
•  ECのデメリット:network  traffic、CPU使用用が多く発生
P22パフォーマンステスト
•  HDFS-8425で報告
•  テストケース:TestDFSIO
•  クラスタ情報
DataNode数	
 20	
CPU	
 Xeon	
  E5-­‐2630L	
  2.00GHz/2CPU	
RAM	
 64G	
Disk	
 SATA	
  3TB	
  x4発	
Network	
 1G	
2015年10月バー
ジョン、まだ改善中
P23パフォーマンステスト-Readスループット
•  TestDFSIO  -nrFiles  (10,20,30,40,50,60,70,80,90,100)  -size  384MB
P24パフォーマンステスト-Writeスループット
•  TestDFSIO  -nrFiles  (10,20,30,40,50,60,70,80,90,100)  -size  384MB
ErasureCodingが勝つ
P25パフォーマンステスト-CPU使用率
•  110~200  filesをwriteする時のDataNode  CPU使用率
replicaPon ErasureCoding
平均値を計算す
ると5.5%上がる
P26ErasureCodingに関する結論
•  Network、CPUのデメリットが許容できる
•  Storageコストのメリット(半減)が大きい
•  クラスターのリソース状況にあわせて使う
P27今後の導入計画
•  HDFS-6584
–  Storage  Policyの概念が紹介された
Storage	
  Policy	
 Dataのアクセス頻度	
HOT	
 毎日、毎週	
  
WARM	
 毎月	
COLD	
 殆どアクセスしない	
対象とする:メリットを享受、デ
メリット回避
例えば:一年前のlogデータ
ご清聴ありがとうございました!

大規模HDFS & ErasureCoding#yjdsw3