DataNodeを起動しようとすると、このエラーが発生します。私が読んだことから、RPCパラメーターは、私がセットアップしていない(私は思う)HA構成にのみ使用されます。
2014-05-18 18:05:00,589 INFO [main] impl.MetricsSystemImpl (MetricsSystemImpl.Java:shutdown(572)) - DataNode metrics system shutdown complete.
2014-05-18 18:05:00,589 INFO [main] datanode.DataNode (DataNode.Java:shutdown(1313)) - Shutdown complete.
2014-05-18 18:05:00,614 FATAL [main] datanode.DataNode (DataNode.Java:secureMain(1989)) - Exception in secureMain
Java.io.IOException: Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured.
at org.Apache.hadoop.hdfs.DFSUtil.getNNServiceRpcAddresses(DFSUtil.Java:840)
at org.Apache.hadoop.hdfs.server.datanode.BlockPoolManager.refreshNamenodes(BlockPoolManager.Java:151)
at org.Apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.Java:745)
at org.Apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.Java:278)
私のファイルは次のようになります:
[root @ datanode1 conf.cluster]#cat core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:8020</value>
</property>
</configuration>
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>/hdfs/data</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>hadoop</value>
</property>
</configuration>
最新のCDH5ディストリビューションを使用しています。
Installed Packages
Name : hadoop-hdfs-datanode
Arch : x86_64
Version : 2.3.0+cdh5.0.1+567
Release : 1.cdh5.0.1.p0.46.el6
これを乗り越える方法について役立つアドバイスはありますか?
編集:Clouderaマネージャーを使用するだけです。
私も同じ問題に直面していて、ようやくfs.default.name値にスペースがあることがわかりました。スペースを切り詰めることで問題が解決しました。上記のcore-site.xmlにはスペースがないようで、問題は私が持っていたものとは異なる場合があります。私の2セント
これらのステップは私のために問題を解決しました:
export HADOOP_CONF_DIR = $HADOOP_HOME/etc/hadoop
echo $HADOOP_CONF_DIR
hdfs namenode -format
hdfs getconf -namenodes
./start-dfs.sh
明らかに、core-site.xmlに構成エラーがあります。
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:8020</value>
</property>
<name>fs.defaultFS</name>
の設定は<value>hdfs://namenode:8020</value>
ですが、マシンhostnameはdatanode1
です。したがって、namenode
をdatanode1
に変更するだけで大丈夫。
$ HADOOP_INSTALL/etc/hadoop dirの下のcore-site.xmlを確認してください。プロパティfs.default.nameが正しく構成されていることを確認します
私はまったく同じ問題を抱えていました。データノードの環境をチェックして解決策を見つけました:
$ Sudo update-alternatives --install /etc/hadoop/conf hadoop-conf /etc/hadoop/conf.my_cluster 50
$ Sudo update-alternatives --set hadoop-conf /etc/hadoop/conf.my_cluster
データノードで代替が正しく設定されていることを確認してください。
同じ問題に直面していましたが、HDFSをフォーマットすると問題が解決しました。 重要なメタデータがある場合は、HDFSをフォーマットしないでください。
HDFSをフォーマットするためのコマンド:hdfs namenode -format
このタイプの問題は主に、次のファイルのいずれかのプロパティの値または名前にスペースがある場合に発生します-core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
名前と値の開始タグと終了タグの間にスペースや(行を変更した)スペースを入れていないことを確認してください。
コード:
<property>
<name>dfs.name.dir</name> <value>file:///home/hadoop/hadoop_tmp/hdfs/namenode</value>
<final>true</final>
</property>
dfs.name.dirおよびdfs.data.dirディレクトリを作成し、core-site.xml、マスターおよびスレーブに完全なホスト名を構成すると、問題が解決します
私の場合、HADOOP_CONF_DIRを他のHadoopインストールに誤って設定しました。
Hadoop-env.shに追加:
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop/
私の状況では、/ etc/hosts構成を小文字に変更することで修正しました。
あなたのチェック/ etc/hosts'ファイル:
以下のような行があるはずです:(ない場合は追加してください)namenode 127.0.0.1
127.0.01を ネームノード IP。
Core-site.xmlで完全なホスト名を構成すると、マスターとスレーブが問題を解決しました。
古い:node1(失敗)
新規:node1.krish.com(成功)