Wat moet hadoop.tmp.dir zijn?

Hadoop heeft configuratieparameter hadoop.tmp.dirdie, volgens de documentatie, `“Een basis voor andere tijdelijke mappen.”Ik neem aan dat dit pad verwijst naar lokaal bestandssysteem.

Ik heb deze waarde ingesteld op /mnt/hadoop-tmp/hadoop-${user.name}. Na het formatteren van de namenode en het starten van alle services, zie ik precies hetzelfde pad gemaakt op HDFS.

Betekent dit dat hadoop.tmp.dirverwijst naar een tijdelijke locatie op HDFS?


Antwoord 1, autoriteit 100%

Het is verwarrend, maar hadoop.tmp.dirwordt lokaal gebruikt als basis voor tijdelijke mappen, en ook in HDFS. Het document is niet geweldig, maar mapred.system.diris standaard ingesteld op "${hadoop.tmp.dir}/mapred/system", en dit definieert het pad op de HDFSwaar het Map/Reduce-framework systeembestanden opslaat.

Als u wilt dat deze niet aan elkaar worden gekoppeld, kunt u uw mapred-site.xmlzodanig bewerken dat de definitie van mapred.system.dir iets is dat niet is gekoppeld aan ${hadoop.tmp.dir}


Antwoord 2, autoriteit 82%

Laat me iets meer toevoegen aan het antwoord van kkrugler:

Er zijn drie HDFS-eigenschappen die hadoop.tmp.dirin hun waarden bevatten

  1. dfs.name.dir: map waar namenode zijn metadata opslaat, met standaardwaarde ${hadoop.tmp.dir}/dfs/name.
  2. dfs.data.dir: map waar HDFS-gegevensblokken worden opgeslagen, met standaardwaarde ${hadoop.tmp.dir}/dfs/data.
  3. fs.checkpoint.dir: directory waar secundaire namenode zijn controlepunten opslaat, standaardwaarde is ${hadoop.tmp.dir}/dfs/namesecondary.

Daarom zag je de /mnt/hadoop-tmp/hadoop-${user.name}in je HDFS na het formatteren van namenode.


Antwoord 3, autoriteit 9%

Kijk eens rond voor informatie hierover. Het enige wat ik kon bedenken was dit bericht op de Amazon Elastic MapReduce-ontwikkelaarsgids:

In hadoop-site.xml zetten we
hadoop.tmp.dir naar
/mnt/var/lib/hadoop/tmp. / mnt is waar
we mounten de “extra” EC2-volumes,
die veel meer gegevens kan bevatten dan
het standaardvolume. (Het exacte bedrag)
hangt af van het type instantie.) Hadoop’s
RunJar.java (de module die uitpakt)
de invoer JAR’s) interpreteert
hadoop.tmp.dir als een Hadoop-bestandssysteem
pad in plaats van een lokaal pad, dus het
schrijft naar het pad in HDFS in plaats van
een lokaal pad. HDFS is gemonteerd onder
/ mnt (in het bijzonder
/mnt/var/lib/hadoop/dfs/. Dus je kunt
schrijf er veel gegevens naar.

Other episodes