詳細なデータブロックHadoopのブロック

ブロック
ディスクブロックの整数倍数は、典型的には、ディスクは、一般的なデフォルトのサイズは512バイトで、ディスク上に構築されたファイルシステムのデータブロックです。

HDFSシステムでは、バックアップファイル、ブロック(ブロック)の概念の導入を促進し、管理するためです。ここで、ブロックは、HDFSのストレージシステムのうちの最小単位であり、既定のサイズのHDFSブロックの定義が64メガバイトです。ファイルがHDFSにアップロードされたときにファイルサイズがブロックサイズよりも大きい場合、ファイルは複数のメモリブロックにスライスされ、複数のブロックが異なるDataNodesに格納することができ、全体のプロセスは、HDFSを確保しますブロックは、データノードに格納されています。しかし、それはファイルサイズが64メガバイトに達しない場合、ファイルはブロック全体のスペースを占有していないことは注目に値します。

HDFS名前ノードは、ファイル内のブロックの文書に記録されるデータノード、情報は一般にメタ情報(メタ情報)と呼ばされた各ブロックに記憶されます。メタ情報dfs.name.dirによって指定された記憶場所。

フラグメンテーション
実行時のジョブは、データ伝送の過程において、コアは、MapReduceのステップであり、Hadoopのに提出された等しい長さの小さなデータブロックにHadoopのMapReduceの入力データが入力された点と呼ばれ、多くてもよいですシートまたはスライス。各スライスのマップタスクを構築するHadoopの、スライスは、デフォルトの実装クラスgetSplits InputSplitFormat()メソッドで指定されます。

 

Hadoopの計算断片サイズは劣らmapred.min.split.size未満のblockSize以下ではない、と。デフォルトでは、HDFSのブロックサイズに

(HDFSブロック管理が採用されている、しかし、デフォルトのサイズはHadoop1.x 64M、128MのHadoop2.xのデフォルトのサイズが比較的大きい場合)

断片、すなわち、フラグメントサイズがブロックサイズに等しいです。ブロックは等しい時間スライスに分割されている場合、最後のフラグメントの定義されたサイズのフラグメントサイズ、別のスライスに断片未満が存在するであろう。

保護された静的長いcomputeSplitSize(長いgoalSize、長いに、minSize、
                                長尺のblockSize)は{
    Math.max(に、minSize、Math.min(goalSize、ブロックサイズを))を返します。
}

出典:

パブリック静的長いMAX(長い、長いB){
    リターン(> = B)?:B;
}

前記goalSize値:(入力ファイルのサイズ)/(mapred.map.tasksのプロファイルに定義された値)

MinSizeプロパティ値:値プロファイルmapred.min.split.size

ブロックサイズ値:128(デフォルト)

次のように変数のいくつかを説明します:

・BlockSizeは:ベースユニットに記憶されたHDFS、デフォルトは64メガバイト又は128メガバイトです。

・MinSizeのユーザによって設定された最小のパーシャルカットサイズは、設定項目がmapred.min.split.sizeに、

・GoalSize:式は、「ジョブファイルサイズ/ユーザ定義の総数の地図」、すなわちユーザーの間接希望のサイズです。

上記の計算を学習することができることにより、フラグメントサイズは劣らmapred.min.split.size未満計算のHadoopのblockSize以下ではない、と。デフォルトでは、HDFS(デフォルト128M)のブロックのサイズは、フラグメント、即ち、フラグメントサイズがブロックサイズに等しいです。ブロックは等しい時間スライスに分割されている場合、最後のフラグメントの定義されたサイズのフラグメントサイズ、別のスライスに断片未満が存在するであろう。

Hadoop1.xのデフォルトのサイズで、128Mのサイズはデフォルトでそれの後、HDFSはあまりそれをブロックする理由を、なぜHadoop2.x大きなデータブロック64M、Hadoop2.xのですか?

Definitive Guideのは、ファイル転送時間を作るために、あること、順番にオーバーヘッドのアドレッシングを最小限に抑えるためにと言った時のアドレス指定可能なブロックよりも有意に大きいこの情報は名前ノード内のデータノードに格納されているため、負担の名前ノードは、そこにあります。効率が大幅に削減されるように、ブロックが大きい場合にはブロックに処理する一般的なMapReducer地図データに、タスクの数は非常に(クラスタ内のノードの数より少ない)制限されますので、しかし、それは、あまりにも大きなことはできません。

どのようなブロックを使用することの利点は
誰ディスクは保存することはできません、非常に大きなファイルをアップロードする場合は、そのブロックの概念は、ファイルは、クラスタを使用できるようにすることを、多くの作品に提出する場合は、これは、ファイルをアップロードすることはできません任意のストレージノード。ブロック単位で、考慮すべきデータストレージ災害復旧があれば、このブロックが壊れているか、またはこのノードが直接バックアップブロック上の別のノードを見つけることができるように、バックアップ、HDFSのデフォルトのバックアップブロックの各3部のために非常に助長しています。時にはそれは、複数のノードに目的のデータを探すことができますので、読み取りを減らすために、負荷がクラスタを読み取るために分散させることができるように、単一のノードをバックアップの数を増やす必要があります。

内部HDFS、ブロックサイズが64MB以上128メガバイトデータノードのデフォルトまたは256MBの理由からである
内部HDFS、ブロックサイズは64MBで、または128メガバイトデータノードのデフォルトは最適な選択か、256メガバイトです

なぜ64MB以上128メガバイトまたは256メガバイトは最良の選択でしょうか?

64MB以上128メガバイトまたは256メガバイトよりもはるかに小さいのはなぜできないのですか?
原因:(通常のファイルシステムのブロックサイズは通常4キロバイトである)は、ハードディスクを(ディスクのシーク時間)を削減することを求めます

HDFS操作の設計データは、一般的に読み取りおよび書き込み操作であっても、大容量のデータストリーミングをサポートし、関連するデータの量が比較的大きいことを条件とします。

データブロックが低すぎる設定されている場合、データ・ブロックが続きを読むべき、

ハード非連続的に保存されたデータブロック以来、

通常のハードディスクのでとても遅いランダムにアドレス指定可能なヘッドを移動する必要があるの、ディスク上の複数のデータブロックを読み、全体的なシーク時間が増加。場合は、ハードディスク、ハードディスクはシーク時間、長いIO長い時間よりもシーク時間は、システムのボトルネックとなっています。好適なブロックサイズは、システムのスループットを向上させる、シーク時間、ハードディスクを減らすのに役立ちます。

名前ノードのメモリ消費量を減らします。

HDFSのために、彼は彼の記憶データノードに関して、一つだけ名前ノードのノードを持っていた、非常に限られています。

しかし、データ・ブロック・サイズが小さすぎる場合は名前ノードの必要性は、中にデータノードでのメモリFSImageファイルデータブロック情報に記録され、データブロックは、あまりにも多くの情報になります維持するために、そのメモリは、名前ノードは怪我を買う余裕はないかもしれませんA。

64MB以上128メガバイトまたは256メガバイトよりもはるかに大きいのはなぜできないのですか?
ここでは、主のMapReduceフレームワークの上から議論します

クラッシュの地図:

再起動するには、システムの必要性が、起動プロセスがデータを再ロードするために必要な、データ・ブロックが大きいほど、データのロード時間が長く、長く、システムリカバリプロセスです。

時間の規制問題:

マスターノード規制状況、他のノードは、各ノードは、定期的に状態とバックで行われる作業のレポートを更新します。もし

ノードは、マスターノードが死んだとしてノードを記録し、予め設定された時間間隔より長く沈黙し、このノードに割り当てられたデータ

別のノードに送信されます。点近似推定からのデータブロックであり、この「所定時間」のために。それは、データ・ブロックの64メガバイトのためであるならば、私は10以上、それを解決することができ、いずれの場合で10分以内にあなたを取ることができます

議事録は、それが死んで、応答しませんでした。640メガバイトまたは1Gのために利用可能

上記のデータは、私は時間の長い期間内に推定すべきですか?推定時間は短く、それは死を誤解し、毎分

さらに悪いことには、すべてのノードが死刑を宣告されるということです。

待ち時間が長すぎることを、長い時間を推定しました。

だから、データの大きなブロック、「予め設定された時間間隔」悪い推定のために。問題への問題:

サイズは、複雑さの問題を解決するために、データの量が直線的な関係です。同じアルゴリズムは、処理されたデータの量が大きいほどその時間複雑。

制約地図出力:

地図では、フレームワークを削減し、地図を削減した後にのみデータが並べ替え操作を実行することです。考えが小さなファイル、小さなファイルのソートアルゴリズムの種類をマージしてから、あなたはこの点を理解し、思考の大きなファイルにマージだと思います

なぜHDFSデータブロック(ブロック)は、同じサイズの断片サイズのニーズ
入力データが入力されたスライスまたはスライスと呼ばれる同じ長さの小さなデータブロックに分割され、HadoopのMapReduceは、各スライスのHadoopは、マップタスクを構築します。

店舗でのHadoopのマップは、ノードの入力データ(HDFS内のデータ)のタスクを実行して、あなたは、これはデータのローカリゼーションと呼ばれ、高いパフォーマンスを得ることができます。ブロックサイズとしてしたがって、断片の最適なサイズがなければならないHDFS、断片スパン2つのデータブロックと、任意HDFSノードの(実質的に同時に2つのデータブロックを格納拒否した)ので、さらにフラグメンテーションマップタスクへのネットワークノードを介してデータを転送する必要は、ローカルデータマップタスクが実行されていると比較して、効率が低くなっています!
----------------
免責事項:この記事はCSDNブロガー元の記事「新人クラスのITの道」であり、BY-SAの著作権契約CC 4.0に従って、再現し、オリジナルを添付してくださいソースリンクと、この文。
オリジナルリンクします。https://blog.csdn.net/WYpersist/article/details/80044792

おすすめ

転載: www.cnblogs.com/zkteam/p/12038907.html