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?

クラスタのバランシングのアルゴリズム

Posted at

この記事について

以下のドキュメントの翻訳。
https://docs.cloudera.com/runtime/7.3.1/scaling-namespaces/topics/hdfs-cluster-balancing-algorithm.html

日本語の親記事はこちら

翻訳

クラスタのバランシングのアルゴリズム

HDFS Balancer は繰り返し実行されます。それぞれの繰り返し(イテレーション)は、以下の4つのステップから成ります。

  1. ストレージのグループを分類する
  2. ストレージのグループをペアリングする
  3. ブロック移動をスケジュールする
  4. ブロック移動を実行する

1. ストレージのグループを分類する

HDFS Balancer は最初に getLiveDatanodeStorageReport のRPCを NameNode に送り、すべての DataNode のすべてのストレージのレポートを取得します。ストレージのレポートには、各DataNode のストレージの使用状況、たとえばキャパシティ、dfsの使用済み容量、空き容量などが含まれます。

2. ストレージのグループをペアリングする

HDFS Balancer は、使いすぎ、あるいは平均よりも使用量の大きいストレージをソースストレージとし、使われなさすぎ、あるいは平均よりも使用量の小さいストレージをターゲットストレージとします。そして、ソースストレージのグループをターゲットストレージのグループとペアリングします(ソース→ターゲット)。ペアリングの優先順位は、ソースおよびターゲットのストレージが同じラックにあるかどうかによって決まります。

3. ブロック移動をスケジューリングする

それぞれのソース・ターゲットのペアについて、HDFS Balancer がソースストレージからブロックのレプリカを選び、ブロックの移動をスケジューリングします。

4. ブロックの移動を実行する

HDFS Balancer はターゲットの DataNode で DataTransferProtocol.replaceBlock(..) メソッドを起動することにより、スケジュールされたブロックの移動を実行します。

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?