Как разрешить кластеру spark получать файлы jar с локального пути, а не с мастера? - PullRequest
0 голосов
/ 23 мая 2019

Я обнаружил, что каждый раз, когда я запускаю приложение в своем автономном кластере Spark с внешними пакетами, скажем, pyspark --master=spark://master:7077 --packages Azure:mmlspark:0.17, исполнители всегда пытаются извлечь файлы JAR из драйвера. Вот журнал:

2019-05-23 21:14:56 INFO  Executor:54 - Fetching spark://Master:2653/files/com.microsoft.cntk_cntk-2.4.jar with timestamp 1558616430055
2019-05-23 21:14:56 INFO  TransportClientFactory:267 - Successfully created connection to Master/192.168.100.2:2653 after 23 ms (0 ms spent in bootstraps)
2019-05-23 21:14:56 INFO  Utils:54 - Fetching spark://Master:2653/files/com.microsoft.cntk_cntk-2.4.jar to /tmp/spark-0a60d982-0082-4d37-aea1-e1c0b21ee2be/executor-c9632fd2-29fc-429c-bdfb-31d870ed19e8/spark-15805ad8-ab00-41b3-b466-b0e8e95a3f56/fetchFileTemp5196357990337888981.tmp

Нечто подобное повторяется в логах исполнителей. Размер упаковки довольно большой, поэтому процесс занимает много времени.

Я пытался использовать --jars аргумент pyspark для загрузки необходимых jar-файлов каждому исполнителю. Исполнители извлекли их из локального пути, но я не смог импортировать пакет в оболочку.

Так как решить проблему? Что я должен сделать, чтобы исполнители могли получить пакет с локального пути? А может из HDFS?

1 Ответ

0 голосов
/ 26 мая 2019

Мы можем скопировать банку на все узлы и добавить путь к банке в параметре spark.executor.extraClassPath config, чтобы банки были доступны в classpath исполнителя.

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