Я обнаружил, что каждый раз, когда я запускаю приложение в своем автономном кластере 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?