0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HDFS のデータはなぜアンバランスになるのか

Posted at

この記事について

以下のドキュメントの翻訳。
https://docs.cloudera.com/runtime/7.3.1/scaling-namespaces/topics/hdfs-why-hdfs-data-becomes-unbalanced.html

日本語の親記事はこちら

この書式や・・・

この書式で書かれた文言は訳者個人のつぶやきであり、所属する組織とは関係ありません。

翻訳

DataNode の追加や HDFSにおけるブロックの配置、クライアントアプリケーションの挙動などにより、HDFSのクラスタに保存されたデータがアンバランスになる場合があります。

DataNode の追加

新しい DataNode がクラスタに追加されると、新たに作成されたブロックはこれらの DataNode に時々書き込まれます。
既存のブロックは、HDFS の Balancer を使わない限りはこれらのノードに移動することはありません。

クライアントアプリケーションの挙動

クライアントアプリケーションが DataNode となっているサーバーに均一にデータを書き込まない場合もあります。クライアントアプリケーションが書き込むデータが歪んでいたり、特定のマシンにばかり書き込んで他に書き込まないといったこともあります。HBase はそうしたクライアントアプリケーションの例です。それ以外の場合、たとえば MapReduce や YARN のジョブの場合では、クライアントアプリケーションが歪んでいることは仕様上ありません。

なぜ HBase だとデータが歪むのかは要調査。

HDFS上のブロックの配置

HDFSは制約的充足アルゴリズム(constraint satisfaction algorithm)を使ってファイルのブロックを配置します。制約が満たされた場合、HDFSはブロックを候補となるストレージデバイスの中から均一な確率でランダムに選んで配置します。

大規模なクラスタの場合、クライアントアプリケーションがHDFSの DataNode にわたって均一にデータを書き込んでいる限り、ブロックは本質的に均一な確率分布でランダムに配置されます。

ランダム性によって、均一な確率分布による配置は、均一なデータの配置になるとは限りません。

均一な確率分布で配置すれば均一なデータの配置になるのがランダム性じゃないのか、と一瞬思う

この点は、クラスタに十分なスペースがあれば一般的には問題になりません。

クラスタの容量がいっぱいに近づいてくると、この点が問題になってきます。

天井が近くなると、ランダム性によるちょっとした違いで天井にヒットしてしまうノードが出てくるみたいなことだと理解

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?