2014-11-22 9 views
5

Ich habe nach diesem Problem gesucht, und obwohl es eine Reihe ähnlicher Beispiele gibt, kann ich keine gemeinsame Lösung oder eine finden, die für mich funktioniert. Ich habe Hadoop installiert und im Pseudo-verteilten Modus ausgeführt. Es funktioniert gut, und ich kann es mehrmals starten und stoppen und es läuft gut. Wenn ich den Computer neu starte und Hadoop starte, startet der Namenknoten jedoch nicht. Ich muss es jedes Mal formatieren, was bedeutet, dass ich all die Arbeit, die ich getan habe, verliere und neu beginnen muss.Hadoop Namenode muss nach jedem Computerstart formatiert werden

Ich folge Hadoop: The Definitive Guide v3.

Mein Kern-site.xml sagt:

<configuration> 
    <property> 
     <name>fs.default.name</name> 
     <value>hdfs://localhost/</value> 
    </property> 
</configuration> 

Mein hdfs-site.xml sagt:

<configuration> 
    <property> 
     <name>dfs.replication</name> 
     <value>1</value> 
    </property> 
</configuration> 

Gibt es eine Möglichkeit Hadoop zu konfigurieren, so dass ich nicht brauchen, um wieder -Format den Namenode jedes Mal, wenn ich den Computer neu starte?

Danke.

Antwort

11

Sieht so aus, als würden Sie die hdfs-Konfigurationen dfs.name.dir, dfs.data.dir nicht überschreiben. Standardmäßig zeigt es auf das Verzeichnis/tmp, das beim Neustart des Rechners gelöscht wird. Sie müssen dies von/tmp an einen anderen Ort in Ihrem Home-Verzeichnis ändern, indem Sie diese Werte in Ihrer Datei hdfs-site.xml im HADOOP-Konfigurationsverzeichnis überschreiben.

Sie die folgenden Schritte

ein Verzeichnis in Ihrem Home-Verzeichnis erstellen NameNode Bild & DataNode Blöcke für die Aufbewahrung (Ersetzen mit Ihren Login-Namen)

mkdir /home/<USER>/pseudo/ 

Ändern Sie bitte Ihre hdfs-site.xml Datei in Ihrem HADOOP_CONF_DIR (hadoop Konfiguration direcotry) als

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
<property> 
    <name>dfs.name.dir</name> 
    <value>file:///home/<USER>/pseudo/dfs/name</value> 
</property> 
<property> 
    <name>dfs.data.dir</name> 
    <value>file:///home/<USER>/pseudo/dfs/data</value> 
</property> 
<property> 
    <name>dfs.replication</name> 
    <value>1</value> 
</property> 

</configuration> 

Format Ihre hdfs NameNode folgt & starten mit

+0

Fantastisch - das hat funktioniert. Danke vielmals. – Nick

+0

S/W, keine Notwendigkeit, das Verzeichnis zu erstellen. Das Verzeichnis wird automatisch erstellt während 'hdfs namennode -format' – Raj

+0

Cool. Ich erinnere mich, frühere Hadoop-Versionen 0,20 mussten wir manuell Verzeichnis erstellen. In der neuesten Version hat die hadoop community die automatische Verzeichniserstellung hinzugefügt. Danke für den Kommentar !! – sachin

Verwandte Themen