HDFSは、主に分散ファイルに保存するために使用され
HDFSの目標:
- 安価なハードウェアデバイスとの互換性
- ストリームデータが読み実装し、書き込み
- 大規模なデータセットのサポート
- これは、単純なドキュメントモデルをサポートしています
- 強力なクロスプラットフォームの互換性
HDFS独自の制限:
- 低遅延のデータアクセスには適していません、リアルタイム性能は高くありません
- ない効率的に小さなファイルを大量に保管し、索引構造が非常に大きいです
- これは、マルチユーザの書き込みや修正ファイルをサポートしていません。
関連概念:
- ブロック - >デフォルトの64メガバイトのコアコンセプトの中で全体のHDFSも大きいが大きくない、より良いを設計することができます
- 、大規模なファイルストレージをサポートして別の断片に切断
- メタデータの管理を容易にするための簡素化システムの設計、
メタデータ:ファイルは何であり、ファイルはブロックの数に分割された各ブロックとどのファイルがマッピングされ、各ブロックは、上記のサーバに格納されています。
データのバックアップのために、冗長メモリブロックは、別のデバイスまでです
HDFS 2つの主要コンポーネント:
1、名前ノード - > HDFSクラスタ家政婦を通じて、同等のデータディレクトリ
名前ノードのコア構造:
FsImage、ファイルシステムツリーを保存
- メンテナンス:ファイルレベルのコピー
- ブロックファイルのブロック・サイズと組成
- 変更とアクセス時間
- アクセス
EditLog:など、作成、削除、または名前の変更などの記録データ
すべてのシェルコマンドはFsImageとEditLogは、メタデータを合併し、起動して、新しいFsImageを形成した後、あなたがに対処するためのセカンダリ名前ノードを必要とし、この時間を増加していきます、業務の増加とEditLogが、EditLogを空にします。
セカンダリ名前ノードは、問題を解決します:
- コールドバックアップを行うには名前ノード
- 処理EditLog
ノードの名前は、新しいEdit.new再読み込みや書き込みを生成した後、定期的にノード名、EditLogファイルを使用して停止するノードの名前、自分にドラッグし、それを、と通信します。そして、FsImageとEditLog SecondaryNameNodeがローカルにコピーし、新しいFsImageにマージ
両方がコールドバックアップを実現するように、後にそのノードの名前に送られた、だけでなく、成長している問題を解決Editlog。
図2に示すように、データノード - >実際のデータは、ローカルストレージファイルシステムのLinuxに、ディスクに保存し、保存されています
HDFSの名前空間:
ディレクトリ/ファイル/ブロック
HDFSの制限:
- オブジェクトの収容空間のサイズの数は限られているので、名前空間の制限は、ノード名は、メモリに格納されます。
- パフォーマンスのボトルネック:分散ファイル全体のスループット、単一ノード名のスループットによって制限
- 問題を分離:そこに、一つだけの名前空間のみ1つのクラスタノードの名前であるため、異なるアプリケーションのために分離することができないので
- クラスタの可用性:ユニークな名前のノードに障害が発生したら、それはクラスタ全体が使用不能に原因となります。
第二は、障害が発生した後のホットバックアップが呼び出され、コールドバックアップノード名ではなく、ホットバックアップであり、第二のすぐトップに行く直接使用することができますが、最初の寒さのバックアップ後に欠陥があり、ゆっくりと、一定期間停止する必要があります外部サービスの提供後の回復、。
HDFS1.0バージョン障害問題の一つのポイントは、ホットバックアップを提供しますHDFS2.0に、そこでは、2つの名前のノードを設定します。
HDFSストレージ原則 {冗長データの問題の保存、データ保持ポリシーの問題、データ復旧の問題}
- 冗長データストレージの問題:失敗し続ける基礎となるため、冗長データ記憶されたデフォルト率は3、デフォルトのデータ・ストレージ・ブロック3重量部である、パーソナライズすることができます。(より速いデータ転送速度は、データの信頼性を確保するため、データのエラーをチェックすることは容易です)
- データ保持ポリシーの質問:クラスタ内で開始された場合、データへの最初のノードが始まりました。それはクラスタ上でなかった場合は、ディスクがいっぱいでない、CPUあまり忙しくないノードを選択します。フレームの異なるノードに第二のコピー、他のと同じラック内に第3のノード。
- データ読み込み:呼び出しラックIDのAPI計算は、最新の選択、所属します。私たちは、データを読み取るために選択された無作為のコピーを見つけることができませんでした。
- データ復旧の問題:、障害が発生したノードの名前(第2ノード名のバックアップとリカバリ)、ノードデータエラー(利用できない場合、データノードに応じては、ハートビート情報を送信し、フラグがダウンし、その後、他のマシンにコピー)エラーデータ自体(コピーのコード再度冗長コピーをチェックすることにより、問題のうちのデータかどうかを確認します)。
- HDFS一般的に使用されるコマンド: