2016-03-22 12 views
0

実際にはBig Dataプロジェクトを最終的なプロジェクト割り当てとして使用していますが、完全分散型クラスタでHDFS連携を実行する手段を探していました。私クラスタのNamenodesは、HDFS連合の完全分散型hadoopクラスタですべてのデータノードを使用していません

仕様は以下のとおりです。

  • のHadoop 2.7.2
  • JDK 1.8.74
  • OSシステムは、CentOSの6.7
  • ある
  • 2 namenodes(Namenode1とNamenode2)
  • 2データノード(Datanode1およびDatanode2)
  • 1クライアント(ViewFSマウントテーブル用に設定)

1つのnamenodeを指定すると、クラスタ(1つのnamenode + 2 datanode)が正常に動作し、すべての設定が正しいように見えます。

Apache Hadoopの公式ドキュメントでさえもHDFS Federationを(すべてのデータノードを共有する2つのネームノードを実行するために)完全に設定する方法を説明する多くのチュートリアルは見つかりませんでした。 私が使用したもの効果的にHDFS連盟を実行するための私の試みは、DFSのデーモンが正常に起動した場合でも、失敗した以下のFully Distributed Hadoop Federation Cluster


で、datanodesは全てnamenodesで使用されていません。

実態:

私は(start-dfs.sh付き)DFSサービスを開始すると、Namednode1はすべてdatanodesを使用してNamenode2はnoneを使用します。 また、各ノードは一意のデータノードを1つしか使用しません(Namenode1はDatanode1を使用し、Namenode2はDatanode2を使用)。

datanodesの使用量は、ランダムなようだが、彼らは誰もが、いくつかのnamenodesでHDFS連盟を実行する方法を知っていれば、あなたが助けて歓迎している(私の目標)

同時に2つのnamenodesで使用されるすべてのことはありません= P ありがとうございます。

答えて

0

私はついにこの問題を発見し、修正しました。

これは、ネームノードのコンフィグレーションファイルhdfs-site.xmlにあります。私の場合、それは〜/ Hadoopの-2.7.2の/ etc/Hadoopの/また

標準構成に配置され、確認dfs.name.dirことを確認:あなたのHadoopのインストール・レパートリーの中でそれを見つけますプロパティは、各名前ノードのメタデータレパートリーの場所を参照します。私の場合は は、すべてのnamenodesのために私は

だからあなたはHDFSサイトに追加する必要があり、適切な所有権とその目的(特別のHadoopを使用するために作成したユーザー)のために/HDFS /名前レパートリーを作成しました。今、両方の私のクラスターのnamenodesはすべてdatanodesを使用

<property> 
<name>dfs.name.dir</name> 
<value>file:///hdfs/name,file:///hdfs/name</value> 
</property> 

:あなたのすべてのnamenodesのXMLは、他の構成の次の行のIL加算をクラスタ化します。 それが役立つことを願っています。 また、私は直面した問題を解決するために非常に便利なこの本を読むことをお勧めしますHadoop Operations - Eric Sammer (O'Reilly)

関連する問題