Как установить hadoop.tmp.dir
в командной строке? Я попытался добавить его, добавив его в командную строку - и когда это не сработало также через HADOOP_OPTS
:
export HADOOP_OPTS = "- Dhadoop.tmp.dir = / tmp / tmp
Этот каталог был создан специально для всемирной записи:
$ls -lrta /tmp/tmp
total 0
drwxrwxrwx 2 myuser wheel 64 Apr 27 01:23 .
drwxrwxrwt 45 root wheel 1440 Apr 27 01:23 ..
Но hadoop
продолжает использовать значение по умолчанию tmpdir
:
$hadoop jar target/mp5-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.giraph.GiraphRunner -Dmapreduce.child.java.opts="-Dhadoop.tmpdir=/tmp/tmp -Djava.io.tmpdir=/tp/tmp" ConnectedComponentsComputation -vif org.apache.giraph.io.formats.IntIntNullTextInputFormat -vip dataset/graph.data -vof org.apache.giraph.io.formats.IdWithValueTextOutputFormat -op file://$(pwd)/output/part-a -w 1 -ca giraph.SplitMasterWorker=false
Но всегда мы заканчиваем ошибками разрешения;
Exception in thread "main" java.io.IOException:
Mkdirs failed to create /var/folders/3t/4d3czfm17fb2v9z_m8rvflyrg8jmdl/T/hadoop-unjar2119053878070751096/META-INF/license
at org.apache.hadoop.util.RunJar.ensureDirectory(RunJar.java:140)
at org.apache.hadoop.util.RunJar.unJar(RunJar.java:109)
at org.apache.hadoop.util.RunJar.unJar(RunJar.java:85)
at org.apache.hadoop.util.RunJar.run(RunJar.java:222)
at org.apache.hadoop.util.RunJar.main(RunJar.java:148)
Так как настроить hadoop в командной строке или хотя бы через env vars (не изменяя сами файлы конфигурации hadoop
)?
(кстати, я также установите это в $HADOOP_CONF_DIR/core-site.xml
.. все еще без кубиков)
$grep -C 2 hadoop.tmp.dir $HADOOP_CONF_DIR/core-site.xml
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/tmp</value>
</property>