web-dev-qa-db-ja.com

Hadoop HDFSバックアップおよびDR戦略

最初のHadoopクラスターを実装する準備をしています。そのため、4ノードのセットアップで小規模から始めています。 (1つのマスターノードと3つのワーカーノード)各ノードには6TBのストレージがあります。 (6 x 1TBディスク)4つのノードすべてが1つの4Uボックスを共有するように、SuperMicro 4ノードシャーシを採用しました。

現在、災害復旧のためにこのソリューションをバックアップする方法を検討しています。 (ドライブの損失ではなく、ラックまたはサイトの損失を考えてください)最良の解決策は、クラスター間のコピーのようです。データをコピーする人についても読みましたが、NASまたはSMB shareです。また、従来のバックアップ手段を介してマスターノードをバックアップします。 。私はHDFSデータのみに関心があります。ここに私の質問があります。

1)クラスター間のコピーの場合、オフサイトレプリカとして機能する大容量のストレージを備えた単一ノードクラスターをセットアップできますか?パフォーマンスは気にしません。データセット全体を保持する存在と能力だけです。 (このクラスターはミッションクリティカルではないため、復元時間は問題ではありません)1日に1回だけ実行されるようにコピーをスケジュールできますか?

2) SMBまたはNASオプションの場合、どのように機能しますか?ターゲットディスクはHDFSでフォーマットする必要がありますか? 3つのワーカーノードそれぞれを完全にバックアップする必要がありますか?それとも、パリティなしでデータセットをバックアップできるインテリジェントスクリプトがありますか?このソリューションについてはあまり詳しくないので、オンラインで参照しただけです。リソースや情報を見つけるのにあまり運がありませんでした。

また、Hadoop HDFSの他のDRオプションにも対応しています。私たちの目標は、HDFSデータセットの完全なコピーを取得し、それを使用してラックまたはサイトの損失から回復できるようにすることです。

ありがとう!

7
Matt Keller

Hdfsは設計上、通常は3つのノードに複製されるため、3つのノードがある場合、データはすでに3つすべてに複製されています。

もちろん、これらのノードは異なる物理サーバー上にある必要があります。その後、失敗する可能性は低く、3つすべてが同時に失敗するはずです。

現在のhdfsを複製するには、他のサーバーのhdfsサービスにノードを追加するだけで、データが複製されます。データが3つの元のノードよりも多く複製されるようにするには、フォールトトレランスの設定を4つ以上のノードに増やします。 Thrn単一ユニット上の他のノードをシャットダウンすると、データはアクティブのままになっているすべてのノードにあります。

1
MrE

オプション1の場合、 distcp を使用して、あるクラスターから別のクラスターにコピーできます。バックアップクラスターは、namenodeとdatanodeが実行されている限り、単一ノードサーバーであることは確かです。基本的に、あなたは 疑似分散モード での実行を見ています。 distcpを定期的に実行するには、

これを定期的に行うには、次のようなシェルスクリプトを作成します。

  1. ロックファイルを確認する
  2. ロックファイルが存在する場合は、救済します(ロックファイルが長すぎる場合はオプションでアラートを送信します-これは、以前のdistcpが正しく終了せず、ロックが解除されなかったか、以前のdistcpが予想よりも長くかかっていることを示します)。
  3. 存在しない場合は、ロックファイルをタップします。
  4. distcpを実行します。
  5. distcpジョブのステータスをチェックして、正しく完了したことを確認します。
  6. ロックを解除します。

この特定のセットアップで複数のdistcpを実行したくないので、ロックファイルの使用をお勧めします。擬似分散クラスターを圧倒することになります。また、疑似分散クラスター構成でデフォルトの複製係数を1に設定します。必要がない場合は、ブロックを2倍にする必要はありません(ただし、疑似クラスターがデフォルトでこれを行うかどうかは覚えていません。YMMV)。

distcpは、単純なrsyncのように機能させることができ、変更されたものだけをコピーします。

オプション2の場合、hadoop fs -copyToLocalを使用できます。これの欠点は、毎回完全にコピーされるため、/をコピーすると、実行するたびにすべてがコピーされることです。

Hadoopメタデータの場合、fsimageおよびeditsファイルをコピーする必要があります。 このブログ は、何をすべきかについてかなり合理的な概要を持っています。 Clouderaを使用するように調整されていますが、基本的にはどのHadoop 1.0または2.0クラスターでも同じです。

1
Travis Campbell