2012-12-06 12 views
6

Ho cercato di installare un'installazione CDH4 di hadoop. Ho 12 macchine, etichettate hadoop01 - hadoop12, e il namenode, il job tracker e tutti i nodi dati sono iniziati bene. Sono in grado di visualizzare dfshealth.jsp e vedere che ha trovato tutti i nodi dati.Impossibile avviare il nodo del nome secondario CDH4: URI non valido per l'indirizzo NameNode

Tuttavia, ogni volta che provo ad avviare il nodo del nome secondario dà un'eccezione:

Starting Hadoop secondarynamenode:       [ OK ] 
starting secondarynamenode, logging to /var/log/hadoop-hdfs/hadoop-hdfs-secondarynamenode-hadoop02.dev.terapeak.com.out 
Exception in thread "main" java.lang.IllegalArgumentException: Invalid URI for NameNode address (check fs.defaultFS): file:/// has no authority. 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:324) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:312) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.getServiceAddress(NameNode.java:305) 
     at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.initialize(SecondaryNameNode.java:222) 
     at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.<init>(SecondaryNameNode.java:186) 
     at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.main(SecondaryNameNode.java:578) 

Questo è il mio file HDFS-site.xml sul nodo nome secondario:

<configuration> 
    <property> 
    <name>dfs.name.dir</name> 
    <value>/data/1/dfs/nn</value> 
    </property> 
    <property> 
    <name>dfs.namenode.http-address</name> 
    <value>10.100.20.168:50070</value> 
    <description> 
     The address and the base port on which the dfs NameNode Web UI will listen. 
     If the port is 0, the server will start on a free port. 
    </description> 
    </property> 
    <property> 
    <name>dfs.namenode.checkpoint.check.period</name> 
    <value>3600</value> 
    </property> 
    <property> 
    <name>dfs.namenode.checkpoint.txns</name> 
    <value>40000</value> 
    </property> 
    <property> 
    <name>dfs.namenode.checkpoint.dir</name> 
    <value>/var/lib/hadoop-hdfs/cache</value> 
    </property> 
    <property> 
    <name>dfs.namenode.checkpoint.edits.dir</name> 
    <value>/var/lib/hadoop-hdfs/cache</value> 
</property> 
<property> 
    <name>dfs.namenode.num.checkpoints.retained</name> 
    <value>1</value> 
    </property> 
<property> 
    <name>mapreduce.jobtracker.restart.recover</name> 
    <value>true</value> 
    </property> 

</configuration> 

E ' sembrerebbe che qualcosa non funzioni con il valore dato a dfs.namenode.http-address, ma non sono sicuro di cosa. Dovrebbe iniziare con http: // o hdfs: //? Ho provato a chiamare 10.100.20.168:50070 in lynx e ha visualizzato una pagina. Qualche idea?

risposta

7

Sembra che mi mancasse la configurazione core-site.xml sul nodo del nome secondario. Aggiunto questo e il processo è iniziato correttamente.

core-site.xml:

<configuration> 
<property> 
    <name>fs.defaultFS</name> 
    <value>hdfs://10.100.20.168/</value> 
</property> 
</configuration> 
+5

Cosa succede se ricevo lo stesso errore in modalità standalone (l'intera cosa sta finendo il mio portatile? Il mio core-site.xml ha questa voce: ' fs.default.name HDFS: // localhost: 8020 ' –

+0

Nel mio caso ha funzionato quando ho rimosso la porta. Così, per un'installazione autonoma mio core-site.xml appare come segue: fs.defaultFS HDFS: // localhost/

Problemi correlati