Я пытаюсь запустить простую работу через отправку искры. Я делаю это следующим образом:
spark-submit --class com.my.namespace.MyJobClass --master local --deploy-mode client --conf spark.driver.extraClassPath=$(echo ./lib/*.jar | tr ' ' ':') --verbose hdfs://tmp/jars/mySparkJob.jar args
(Обратите внимание, что я переименовал все имена классов и т. д. в стиль «MyJob», чтобы упростить задачу). Задание отправляется нормально, основной класс разрешается нормально, и я разрешаю все свои зависимости без проблем.
Однако при первом запуске я обнаружил ошибку в MyJobClass
. Итак, я исправил это, переупаковал MySparkJob.jar
, поместил обратно в HDFS и повторно запустил задание. Однако ошибка остается. Что бы я ни делал, похоже, что SPARK повторно использует мою исходную версию MySparkJob.jar
, поэтому я не могу запустить обновленную версию этого jar-файла.
Я использую искру 2.1.0
(версия карты: Running Spark version 2.1.0-mapr-1801
)
Я пытался:
- работает от локальных и кластерных режимов искры
- декомпиляция jar, чтобы убедиться, что изменение кода существует
- переименовав банку и запустив ее - по необъяснимым причинам она все еще использует старый код!
- Используйте как локальную версию, так и версию фиксированной банки на основе hdfs.
- перезапуск диспетчера ресурсов
- удаление spark.yarn.archive -> maprfs:///apps/spark/spark-jars.zip
Я чувствую, что должен делать что-то глупое (такое случается!). Мой вопрос (ы):
- Нужно ли очищать что-либо от искры между заданиями? Если да, то что мне нужно очистить и где это находится?
- Эффективно ли spark заархивирует мои зависимости и поместит их куда-нибудь? Если да то где?
- Любые другие наблюдения, которые могут помочь?
.py
, отправленным с локального диска (не hdfs). - person scubbo   schedule 10.05.2019