HDFSのスケーラビリティ

328 views
Skip to first unread message

Kazuki Ohta

unread,
May 11, 2010, 9:12:35 PM5/11/10
to hado...@googlegroups.com, kazuk...@gmail.com
皆さま

本日、Yahoo!からHDFSを大規模な環境(数千~数万ノード)でHDFSをdeploy
した際に、どのような問題があるかという情報が色々書かれた記事/blogがポ
ストされました。

- HDFS Scalability (PDF注意)
-- http://www.usenix.org/publications/login/2010-04/openpdfs/shvachko.pdf

- Scalability of the Hadoop Distributed File System
-- http://developer.yahoo.net/blogs/hadoop/2010/05/scalability_of_the_hadoop_dist.html

まだblogの方しか読めていないのですが、いくつか面白かった点を並べて
おきます。

- Block Sizeは128Mで運用
- 1ファイルは平均1.5ブロック(192MB)

- NameNodeでは、(1 file object + 2 block object)で1ファイル約600byteのメモリが必要
-- 1億ファイル時には60GBのメモリがNameNodeに必要

- 1ファイルのサイズ平均は減少する傾向にある
-- NameNodeのメモリ使用料が更に増加傾向

- BlockReportを10分おき、Heartbeatを3秒おきにDataNodeが送信するとする
- 10000 DataNodeの時、
-- NameNodeは秒間639,713のブロックを処理する必要が有る
-- NameNodeは秒間300,000のハートビートを処理する必要が有る
- これは、NameNodeのワークロードの約30%にあたる

こんなところです。1ファイルの平均サイズは減少傾向にあるらしいので、NameNode
の持つ情報量は増加する一方で、シングルマスターだと徐々に厳しくなっているそうで
す。

これから、本文も読んでみます:-)

--
--------------------------------------------------
Kazuki Ohta: http://kzk9.net/

S.YAMASHITA

unread,
May 24, 2010, 7:45:32 AM5/24/10
to Hadoopユーザー会
山下と申します。

1億のファイルと60PBの容量まで扱える、メモリ1GB=1PBの容量と言う考え方は、
今後Hadoop環境を構築するときに役立ちますね。

数千ノードの環境を構築するときにHDFS関係で注意することを考えてみました。
(1) ネットワーク構成
100台程度の環境作ったときはあまり意識しませんでしたが、数千台クラスになると
定期的なDataNodeからの通信だけで帯域を結構消費しそうです。
後は、レプリケーションのようなDataNode間の通信もポイントになりそうです。
ノード-スイッチ間よりもスイッチ-スイッチ間がボトルネックにならないよう
ネットワークを設計しなければなりません(拡張のしやすさを考慮して)。
(2) NameNodeのヒープメモリ
60GBのヒープメモリをNameNodeで割り当てる話であれば、普通のGCもそうですが
Full GCの発生を抑えることが必要です。
(3) NameNodeのログ
1億もファイルを扱えるとなればauditログは非常に膨大になります。
また、DataNode異常による切り離し時に発生するレプリケーションなどで出力される
ブロック情報に関するログも膨大です。
NameNodeのログ出力に関しても要素単位でログレベルを変えるなど工夫が必要です。
# 後は当然ですが、データセンタについてもラックの耐加重、電力、配線、熱といった
# 課題を解決しないとなりません。

後、複数のNameNodeと言う考え方はHDFS-1052などで議論されていますが、
方向性はまだまだ定まっていないようです。

以上です。


Shinichi YAMASHITA : shin1...@gmail.com

Shun0102

unread,
May 29, 2010, 2:13:43 PM5/29/10
to Hadoopユーザー会
山下さん、太田さん、みなさま

三上@筑波大です。
シングルネームサーバではメモリの限界がという話は前からありましたが、
この記事では定量的に分析されているという点で非常に面白いですね。

研究室のミーティングでこの内容を紹介した時のスライドを載せておきます。
内部向けに作ったので完成度が低いですが、、、
http://www.slideshare.net/shun0102/hdfs-4350883

>後、複数のNameNodeと言う考え方はHDFS-1052などで議論されていますが、
>方向性はまだまだ定まっていないようです。

とりあえずYahooとしては複数名前空間で進めているという意味では定まっているようですが。
もちろん将来的には単一名前空間が望ましく、そのアプローチはないのかという話はあり、
cephのダイナミックパーティショニングツリーやlusterのハッシュベースのパーティショニングなどを使った
分散ネームサーバのアプローチは取らないのかというコメントもHDFS-1052の中にありますね。

--------------------------
三上俊輔
http://shun0102.net
Reply all
Reply to author
Forward
0 new messages