NFSを使用して同じマシン上の5台のマシンにhadoopクラスタをセットアップしようとしています。私が直面している問題は、あるマシンのhadoopのコピーがすべてのマシンに複製されているため、各スレーブに対して排他的なプロパティを提供できないということです。このため、私は "ロックを作成できません"という種類のエラーが発生します。 FAQは、NFSを使用すべきではないことを示唆していますが、私は他の選択肢はありません。 私はlocation1からconfファイルを選ぶべきですか?slave1はlocation2からconfファイルを選ぶべきですか?.....NFS上のHadoopクラスタ
答えて
ちょうど明白なことに、ノードとHDFSストレージ。あなたの問題は設定用のストレージのように見えます。これはローカルで行うこともできるし、少なくともローカルで特定された設定(例えばMach01 - >/etc/config/mach01、...)に基づいてシンボリックリンクに各マシンをマッピングさせることができます。
(改訂1)シンボリックリンクについての以下のコメント/質問について:まず、私はすぐに解決できるものではないことを認めます。
- マシン上でスクリプト(例えば、起動時やHadoopの開始のためのラッパーとしての)ホスト名を決定している(例えば
hostname -a') which then identifies a local symlink (e.g.
は/ usr/local/hadoopConfig ')上の正しいディレクトリへ:私が見る2つのアプローチがあります。 NFSディレクトリ構造。 - ローカルマシンのホスト名に基づいて環境変数la
HADOOP_HOME
を設定し、これを使用してさまざまなスクリプトを実行します。
#1が動作するはずですが、それは私にリレー方式ではなく、私は設定1である、と私はホスト名が間違って設定された場合にはシンボリックリンクについて少し心配になるだろう(これが発生する可能性があります) 。方法2は、より強固に見えるものである。
あなたはシンボリックリンクのことを少し詳しく説明できますか?それは、私は別のマシン上で、同じ場所を持つことができるという意味ですか、他の場所へのシンボリックリンクですか?例えばマシン1にシンボリックリンク/ home/tempがあり、/ home/temp1と/ home/temp2をそれぞれ指している2がありますか?これは私の問題を解決します! –
コメントよりも解答が容易になるので、解答を修正します。 – Iterator
#2を使用する方が気になります –
Hadoopは、ローカルに接続された独自のディスクを持つ各ノードを実行するように設計されています。共有NFSシステムを使用する大規模なMap/Reduceジョブは、パフォーマンスが低下する可能性があります。 8つのローカルドライブを持つ私たちのクラスタでさえ、私たちはIO待機を得ることができます(今のところ12スピンドルノードはうまくいっています)。 – cftarnas
私の会社の製品のいくつかの機能をテストするために必要です。私はマップ/リバースのもののためにこの設定を使用するつもりはない、これはテスト目的のためだけです。 –