пряжа hadoop: как передать опции -D с переменной окружения - PullRequest
0 голосов
/ 23 октября 2019

Я смотрю в руководстве о том, как передавать команды optoinsto hadoop или yarn через переменную окружения, и там говорится:

(https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/UnixShellGuide.html)

Important End-User Environment Variables

Apache Hadoop has many environment variables that control various aspects of the software. (See hadoop-env.sh and related files.) Some of these environment variables are dedicated to helping end users manage their runtime.

HADOOP_CLIENT_OPTS

This environment variable is used for all end-user, non-daemon operations. It can be used to set any Java options as well as any Apache Hadoop options via a system property definition. For example:

HADOOP_CLIENT_OPTS="-Xmx1g -Dhadoop.socks.server=localhost:4000" hadoop fs -ls /tmp

will increase the memory and send this command via a SOCKS proxy server.

NOTE: If ‘YARN_CLIENT_OPTS’ is defined, it will replace ‘HADOOP_CLIENT_OPTS’ when commands are run with ‘yarn’.

Итак, я пытаюсьпередать имя задания, как это, и это не удается:

$ YARN_CLIENT_OPTS="-D mapred.job.name=test1" yarn jar ~/hadoop-streaming.jar -input /datasets/hotels.csv -output t0 -mapper cat -reducer wc
Error: Could not find or load main class mapred.job.name=test1

То же самое с HADOOP_CLIENT_OPTS.

Если я удаляю пробел после -D: YARN_CLIENT_OPTS = "- Dmapred.job.name =test1 "он запускается, но опция не вступила в силу.

, и простое добавление опции к команде, конечно, работает, как и ожидалось, то есть установка имени задания:

$ yarn jar ~/hadoop-streaming.jar -D mapred.job.name=test1 -input /datase/hotels.csv -output t0 -mapper cat -reducer wc

Какдействительно ли YARN_CLIENT_OPTS работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...