
状況: 古い Hadoop クラスターから新しい Hadoop クラスターに約 100 TB を転送する必要があります。2 つのクラスターには、各クラスターのネームノードからの直接 1GbE 接続があります。データノードは接続されていません。
私が試したこと:
- Distcp: 古いデータノードと新しいデータノードが接続されていないため、これは機能しません。各 MapReduce ジョブで接続がタイムアウトしたと報告されます。
- hdfs dfs -cp: これまでのところ、これはかなりうまく機能していますが、速度が低下し、数時間後には転送が停止する傾向があります。また、圧縮や再起動性もサポートされていません。
私が興味を持っていること:
- クラスター 1 とクラスター 2 間の接続がボトルネックになっているため、クラスター 1 のデータを圧縮してオーバーヘッドをほとんどかけずにネットワーク経由で送信し (netcat など)、クラスター 2 で解凍できるツールを探しています。Rsync が最適だと思いますが、2 つの Hadoop クラスター間でそれをどのように使用すればよいかわかりません。
- 私がよく知らないその他の推奨事項。
私の質問:
- 記載されている制限を考慮すると、クラスター 1 とクラスター 2 間でデータを効率的に転送するには、どのようなツールまたはスクリプトを使用できますか?