HDFSデータの一貫性を維持する方法

データの整合性とは、通常、関連するデータ間の論理関係が正しく完全であるかどうか、およびHDFSがデータの整合性を保証する方法を指します。

 hdfsは、namenodeにメタデータをバックアップし、datanodeにデータを保存しますデフォルトでは、3つのコピーがバックアップされます。では、hdfsはどのようにしてデータの一貫性を確保するのでしょうか

1. hdfsのネームノードメカニズム

hdfsには名前ノードが1つしかありません。名前ノードに問題が発生すると、データブロック情報が見つかりません。namenodeのメタデータ情報は、動作しているときにメタデータ情報をメモリにキャッシュします。Namenodeは、メモリ内のデータをディスク上のfsimageにバックアップします。保存するデータがある場合は常に、メタデータ情報がeditLogファイルに追加されます。メモリは、実際にはこれら2つの部分のコレクションです。では、編集ログをfsimageとマージするのはいつですか?HDFSは、secondnamenodeノードを導入します。このノードの主な機能は、editlogが特定の数に達するまで(hdfs_site.xmlで設定可能)定期的にまたは待機することで、namenode内のeditlogファイルとfsimageファイルをsecondnamenodeにコピーし、secondenamenodeマージ後にnamenodeを更新しますfsimageファイル。namenodeのデータが失われた場合、secondnamenodeのデータがバックアップとして使用され、メタデータ情報が失われないようにします。

2.ハートビートメカニズム

namenodeとdatanodeは、ハートビート(構成ファイルで3秒ごとに設定可能)情報を介して、データノードのメタデータ情報を確認および更新します。データノードに障害が発生した場合、ネームノードはデータノードの信頼をキャンセルし(データノードでの読み取りまたは書き込みは行われません)、ネームノードはノード上のデータをバックアップします。namenodeのバックアップノードの選択は、主にトポロジー距離と特定のノード負荷に基づいています。

3.セーフモード

HDFSは初期化中にセーフモードに入り、namenodeはセーフモードでの動作が許可されません。namenodeは、接続されたデータノードでセキュリティチェックを実行します。安全なデータブロックの比率が設定されたしきい値に達した場合にのみ、セーフモードを終了します。

4.ロールバックメカニズム

hdfsをアップグレードしたり、データを書き込んだりすると、関連するデータが保持されてバックアップされます。成功した場合は、バックアップが更新されます。失敗した場合は、バックアップ情報が使用されます。

5.セキュリティチェック

ネットワーク伝送によるデータエラーを回避するために、HDFSはチェックサムメカニズムを使用します。各ノード間のデータのバックアップとデータの読み取り、検証によるデータのバックアップの成功、それ以外の場合のバックアップの失敗、およびバックアップの再開

6.ごみ箱

hdfsからデータファイルを削除しても、ファイルは消えませんが、/ trashディレクトリに転送されます。誤って削除してしまった場合は、このディレクトリ内のファイルを取得でき、fs.trash.intervalでファイルの保存時間を設定できます。この後、namenodeはファイルのメタデータを削除し、datanode上のファイルは削除されます。

 

42件の元の記事を公開 賞賛4 10,000以上のビュー

おすすめ

転載: blog.csdn.net/wangyhwyh753/article/details/105563348