kiy271の日記

インフラエンジニアの備忘録

HadoopのHDD構成について

HadoopHDFS)では通常、サーバHDD構成で一般的なRAID構成が使われることなく、JBOD構成が用いられる。これはそもそもHDFSはデフォルトで3つの複製を持ち、ハードウェアレベルでの冗長性が必要とされる理由が少ないということと、パフォーマンスの観点でのデメリットが大きい。

ただ、一般的にはサーバディスクにRAID構成を用いることで、サーバ単体としてのDISK IOパフォーマンスが向上するので、Hadoop HDFSにも同様にこれを適用することで、数十台、数百台などのHadoopクラスタ全体の性能を大きく上げられるのではないかということである。

この点については、象本にも記載があったと思うが、その元となっているのが、Yahoo!クラスタで実施されたベンチマークテスト結果だったと思う。 ここではRAID0にするよるとJBODよりも性能が劣るため、一般論としてHadoopRAID不要ということになっている。

また、IOパフォーマンスという点で、Hadoop複数のサーバノードでひとつのコンピュータなのだから、その内部バスである、ネットワーク接続を高速化することの方が、大きなメリットがあると感じている。HDFSでは通常デフォルト3つの複製をもつが、あるノードに1ブロックの書き込みがある場合、2ブロック目が同一ラックの別ノード、3ブロック目が別ラックのノードというように、圧倒的にネットワーク転送がボトルネックになる気がしている。

ネットワーク分野も最近は10GbpsNIC、スイッチ接続、Uplinkで40Gbpsインターフェースなども一般化してきているので、ファブリックネットワークのさらなる進化と、ネットワークコモディティ化の進行により、高性能化に期待できるのではとも思う。

参考

Hadoopオペレーション ―システム運用管理ガイド

Hadoopオペレーション ―システム運用管理ガイド