Hadoop heeft configuratieparameter hadoop.tmp.dir
die, 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.dir
verwijst naar een tijdelijke locatie op HDFS?
Antwoord 1, autoriteit 100%
Het is verwarrend, maar hadoop.tmp.dir
wordt lokaal gebruikt als basis voor tijdelijke mappen, en ook in HDFS. Het document is niet geweldig, maar mapred.system.dir
is 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.xml
zodanig 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.dir
in hun waarden bevatten
dfs.name.dir
: map waar namenode zijn metadata opslaat, met standaardwaarde${hadoop.tmp.dir}/dfs/name
.dfs.data.dir
: map waar HDFS-gegevensblokken worden opgeslagen, met standaardwaarde${hadoop.tmp.dir}/dfs/data
.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.