このHadoopチュートリアルでは、 Hadoopのデータローカリティの概念について説明します。
まず、HadoopでのMapReduceデータローカリティの概要を説明し、次にMapReduceのデータローカリティ、データローカリティ最適化のカテゴリでHadoopデータローカリティの必要性について説明します。
最後に、このMapReduceチュートリアルでHadoopデータの局所性の原則の利点を確認します。
Hadoop MapReduceのデータローカリティとは何ですか?
Hadoopのデータローカリティは、ビッグデータを計算に移動するのではなく、実際のデータが存在する場所の近くに計算を移動するプロセスです。これにより、ネットワーク全体の輻輳が最小限に抑えられます。これにより、システムの全体的なスループットも向上します。
主なHadoopの欠点 膨大な量のデータが原因で、クロススイッチネットワークトラフィックでした。この欠点を克服するために、データローカリティが誕生しました。
Hadoopでは、 HDFS データセットを保存します。フレームワークはデータセットをブロックに分割し、データノード全体に保存します。クライアントがMapReduceジョブを実行すると、NameNodeはMapReduceコードをMapReduceジョブに従ってデータが利用可能なデータノードに送信しました。
Hadoopデータローカリティの要件
Hadoopアーキテクチャは、データローカリティのすべての利点を活用するために、以下の条件を満たす必要があります。
- まず、Hadoopクラスターに適切なトポロジが必要です。 Hadoopコードには、データの局所性を読み取る機能が必要です。
- 次に、Apache Hadoopは、タスクが実行されるノードのトポロジーを認識している必要があります。また、Hadoopはデータがどこにあるかを知っている必要があります。
Hadoopのデータローカリティのカテゴリ
Hadoopデータローカリティのさまざまなカテゴリは次のとおりです。
1。 Hadoopのデータローカルデータローカリティ
この場合、データはマッパーと同じノードにあります データに取り組んでいます。この場合、データの近接性は計算に非常に近いです。データローカルデータローカリティが最も好ましいシナリオです。
2。 Hadoopのラック内データのローカリティ
リソースの制約により、同じデータノードでマッパーを実行できるとは限らないことがわかっています。この場合、マッパーは別のノードで同じラックで実行することをお勧めします。
3。 Hadoopのラック間データのローカリティ
同じラック内の別のノードでマッパーを実行できない場合もあります。このような状況では、異なるラックのノードでマッパーを実行します。ラック間データの局所性は、最も好ましくないシナリオです。
Hadoopデータの局所性の最適化
データのローカリティがHadoopの主な利点であるため MapReduce。ただし、これは、異種クラスター、投機的実行、データの分散と配置、データレイアウトなどのさまざまな理由により、実際には必ずしも有益ではありません。
大規模なクラスターでは、課題がより一般的になります。大規模なクラスターの場合と同様に、データノードとデータの数が多いほど、局所性は少なくなります。
大規模なクラスターでは、一部のノードが他のノードよりも新しく高速であるため、比率を計算するためのデータが不均衡になります。したがって、大きなクラスターは完全に均質ではない傾向があります。
Hadoopの投機的実行では、データがローカルではない可能性があるためですが、計算能力を使用します。主な原因は、データのレイアウト/配置にもあります。また、非ローカルデータ処理はネットワークに負担をかけ、スケーラビリティに問題を引き起こします。したがって、ネットワークがボトルネックになります。
また、時間の経過とともに劣化したジョブやデータの局所性の問題を最初に検出することで、データの局所性を向上させることもできます。問題解決はより複雑で、別のスケジューラを使用してデータ配置とデータレイアウトを変更する必要があります。
その後、同じワークロードを新たに実行した方がデータの局所性の比率が高いかどうかを確認する必要があります。
Hadoopのデータローカリティの利点
- 高スループット– Hadoopのデータローカリティにより、システムの全体的なスループットが向上します。
- 実行の高速化– データローカリティでは、フレームワークは、大きなデータをノードに移動するのではなく、データが存在するノードにコードを移動します。したがって、これによりHadoopが高速になります。プログラムのサイズは常にデータのサイズよりも小さいため、データの移動はネットワーク転送のボトルネックになります。
結論
結論として、Hadoopのデータローカリティは、システムの全体的な実行を改善し、Hadoopを高速化します。したがって、ネットワークの輻輳が軽減されます。
このブログが役に立った、または質問がある場合は、下のコメントセクションにコメントを残してください。喜んで解決させていただきます。