выполнять задания Spark с Livy, используя --master yarn-cluster, без внесения общесистемных изменений

Я хочу выполнить задание Spark через HTTP-вызов извне кластера с помощью Livy, где Spark jar уже существует в HDFS.

Я могу spark-submit выполнить задание из оболочки на узлах кластера, например:

spark-submit --class io.woolford.Main --master yarn-cluster hdfs://hadoop01:8020/path/to/spark-job.jar

Обратите внимание, что --master yarn-cluster необходим для доступа к HDFS, где находится jar.

Я также могу отправлять команды через Ливи, используя curl. Например, такой запрос:

curl -X POST --data '{"file": "/path/to/spark-job.jar", "className": "io.woolford.Main"}' -H "Content-Type: application/json" hadoop01:8998/batches

... выполняет следующую команду в кластере:

spark-submit --class io.woolford.Main hdfs://hadoop01:8020/path/to/spark-job.jar

Это та же команда, которая работает, за исключением --master yarn-cluster параметров. Это было подтверждено слежкой /var/log/livy/livy-livy-server.out.

Итак, мне просто нужно изменить команду curl, чтобы включить --master yarn-cluster, когда она выполняется Ливи. На первый взгляд кажется, что это можно сделать, добавив аргументы в словарь JSON. К сожалению, они не проходят.

Кто-нибудь знает, как передать --master yarn-cluster Livy, чтобы задания выполнялись в YARN без создания общесистемные изменения?


person Alex Woolford    schedule 30.11.2016    source источник


Ответы (2)


Я недавно пробовал что-то похожее на ваш вопрос. Мне нужно отправить HTTP-запрос в Livy API, в то время как Livy уже установлен в кластере (YARN), а затем я хочу, чтобы Livy запускала задание Spark.

Моя команда вызвать Ливи не включала --master yarn-cluster, но, похоже, это сработало для меня. Может быть, вы можете попробовать разместить свой JAR-файл локально, а не в кластере?

person john zhang    schedule 06.03.2017

spark.master = пряжа-кластер

установите его в Spark conf, для меня: /etc/spark2/conf/spark-defaults.conf

person zyfo2    schedule 08.06.2017