2010-03-01 11 views
24

Hadoop ha il parametro di configurazione hadoop.tmp.dir che, come da documentazione, è `" Una base per altre directory temporanee. " Presumo, questo percorso si riferisce al file system locale.Cosa dovrebbe essere hadoop.tmp.dir?

Impostare questo valore su /mnt/hadoop-tmp/hadoop-${user.name}. Dopo aver formattato il namenode e avviato tutti i servizi, vedo esattamente lo stesso percorso creato su HDFS.

Questo significa che hadoop.tmp.dir si riferisce alla posizione temporanea su HDFS?

+0

È sicuramente per specificare un percorso del filesystem locale, non è sicuro del motivo per cui non funziona. – skaffman

risposta

31

E 'confuso, ma hadoop.tmp.dir viene utilizzato come base per le directory temporanee a livello locale, ed anche in HDFS. il documento non è grande, ma mapred.system.dir è impostato di default per "${hadoop.tmp.dir}/mapred/system", e questo definisce il percorso sul HDFS dove dove il Map/Reduce negozi quadro file di sistema.

Se vuoi che questi non siano legati insieme , È possibile modificare il mapred-site.xml in modo tale che la definizione di mapred.system.dir è qualcosa che non è legato a ${hadoop.tmp.dir}

+2

qual è il percorso predefinito per ** hadoop.tmp.dir **, come per Hadoop 1.2.1? – chenzhongpu

+0

@ChenZhongPu è menzionato in core-site.xml – user1207289

3

Abbiamo dato un'occhiata per informazioni su questo. L'unica cosa che ho potuto venire con era questo post sul Amazon Elastic MapReduce Dev Guide:

In Hadoop-site.xml, abbiamo impostato hadoop.tmp.dir a /mnt/var/lib/Hadoop/tmp./mnt è dove montiamo i volumi EC2 "extra", che possono contenere molti più dati di il volume predefinito. (La quantità esatta dipende dal tipo di istanza.) Di Hadoop RunJar.java (il modulo che decomprime JAR ingresso) interpreta hadoop.tmp.dir come file system Hadoop percorso piuttosto che un percorso locale, quindi scrive al percorso in HDFS invece di un percorso locale. HDFS è montato sotto /mnt (specificamente /mnt/var/lib/Hadoop/dfs /. Quindi, è possibile scrivere un sacco di dati su di esso.

25

Permettetemi di aggiungere un po 'di più per la risposta di kkrugler:

Ci sono tre proprietà HDFS che contengono hadoop.tmp.dir nei loro valori

  1. dfs.name.dir: directory in cui NameNode memorizza i metadati, con valore di default ${hadoop.tmp.dir}/dfs/name.
  2. dfs.data.dir: directory in cui sono memorizzati i blocchi di dati HDFS, con valore predefinito ${hadoop.tmp.dir}/dfs/data.
  3. fs.checkpoint.dir: directory in cui il nome secondario secondario memorizza i punti di controllo, il valore predefinito è ${hadoop.tmp.dir}/dfs/namesecondary.

Ecco perché hai visto lo /mnt/hadoop-tmp/hadoop-${user.name} nel tuo HDFS dopo aver formattato il namenode.