Je reçois cette erreur lorsque j'essaie de démarrer un DataNode. D'après ce que j'ai lu, les paramètres RPC ne sont utilisés que pour une configuration haute disponibilité que je ne configure pas (je pense).
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)
Mes fichiers ressemblent à:
[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>
J'utilise la dernière distribution 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
Un conseil utile sur la façon de surmonter cela?
EDIT: Il suffit d'utiliser le gestionnaire Cloudera.
Moi aussi, je faisais face au même problème et j'ai finalement trouvé qu'il y avait un espace dans la valeur fs.default.name le fait de tronquer l'espace a résolu le problème. Le fichier core-site.xml ci-dessus ne semble pas avoir d'espace, donc le problème peut être différent de ce que j'avais. mes 2 cents
Ces étapes ont résolu le problème pour moi:
export HADOOP_CONF_DIR = $HADOOP_HOME/etc/hadoop
echo $HADOOP_CONF_DIR
hdfs namenode -format
hdfs getconf -namenodes
./start-dfs.sh
vérifiez le fichier core-site.xml sous le répertoire $ HADOOP_INSTALL/etc/hadoop. Vérifiez que la propriété fs.default.name est correctement configurée
J'ai eu exactement le même problème. J'ai trouvé une résolution en vérifiant l'environnement sur le nœud de données:
$ 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
Assurez-vous que les alternatives sont définies correctement sur les nœuds de données.
Évidemment, votre core-site.xml a une erreur de configuration.
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:8020</value>
</property>
Votre paramètre <name>fs.defaultFS</name>
est défini sur <value>hdfs://namenode:8020</value>
, mais votre machine nomhôte est datanode1
.Veuillez donc modifier namenode
en datanode1
sera OK.
Je faisais face au même problème, le formatage HDFS a résolu mon problème. Ne formatez pas HDFS si vous avez des métadonnées importantes.
Commande de formatage HDFS: hdfs namenode -format
Ce type de problème survient principalement s’il existe un espace dans la valeur ou le nom de la propriété dans l’un des fichiers suivants: site.xml
assurez-vous simplement que vous n'avez pas placé d'espaces ou (modifié la ligne) entre les balises d'ouverture et de fermeture du nom et de la valeur.
Code:
<property>
<name>dfs.name.dir</name> <value>file:///home/hadoop/hadoop_tmp/hdfs/namenode</value>
<final>true</final>
</property>
la création des répertoires dfs.name.dir et dfs.data.dir et la configuration du nom d'hôte complet dans core-site.xml, masters & slaves est résolu
dans mon cas, j'ai mal paramétré HADOOP_CONF_DIR sur une autre installation Hadoop.
Ajouter à hadoop-env.sh:
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop/
Dans ma situation, j'ai corrigé par modification/etc/hosts config en minuscule.
Vérifier votre '/ etc/hosts' fichier:
Il doit y avoir une ligne comme ci-dessous: (si non, alors ajoutez ça)
namenode 127.0.0.1
Remplacez 127.0.01 par votre namenode IP.
La configuration du nom d'hôte complet dans core-site.xml, maîtres et esclaves a résolu le problème pour moi.
Ancien: noeud1 (échec)
Nouveau: node1.krish.com (Réussir)