hail.utils.java.FatalError: IllegalStateException: данные непрочитанного блока

Я пытаюсь запустить базовый скрипт на искровом кластере, который принимает файл, преобразует его и выводит в другом формате. В настоящий момент искровой кластер состоит из 1 ведущего и 1 ведомого, работающих на одном узле. Полная команда:

nohup spark-submit --master spark://tr-nodedev1:7077 --verbose --conf spark.driver.port=40065 --driver-memory 4g --conf spark.driver.extraClassPath=/opt/seqr/.conda/envs/py37/lib/python3.7/site-packages/hail/hail-all-spark.jar
--conf spark.executor.extraClassPath=./hail-all-spark.jar ./hail_scripts/v02/convert_vcf_to_hail.py /clinvar_37.vcf -ht
--genome-version 37 --output /seqr-reference-hail2/clinvar_37.ht &

И выдает ошибку:

hail.utils.java.FatalError: IllegalStateException: данные непрочитанного блока

Более подробную трассировку стека можно найти на другом форуме, где я задавал тот же вопрос:

https://discuss.hail.is/t/unread-block-data-error-spark-master-slave-issue/1182

Такая команда отлично работает:

nohup spark-submit --conf spark.driver.extraClassPath=/opt/seqr/.conda/envs/py37/lib/python3.7/site-packages/hail/hail-all-spark.jar 
--conf spark.executor.extraClassPath=./hail-all-spark.jar ./hail_scripts/v02/convert_vcf_to_hail.py /hgmd_pro_2019.3_hg19_noDB.vcf -ht 
--genome-version 37 --output /seqr-reference-hail2/hgmd_2019.3_hg19_noDB.ht &

Итак, в локальном режиме он работает нормально, а в автономном - нет. Итак, я предполагаю, что это проблема разных настроек master-slave, возможноJAVA. Однако, установив их вspark-env.sh как это:

экспорт JAVA_HOME=/usr/lib/jvm/java

экспорт SPARK_JAVA_OPTS+=" -Djava.library.path= $SPARK_LIBRARY_PATH: $JAVA_HOME "

Не устраняет проблему. Для запуска master + slave я просто используюstart-all.shсценарий. Любые предложения будут ценны.

1 ответ

Решение

Хорошо, мы исправили это и решили добавить в нашу команду, запускающую скрипт, следующий параметр:

–jars /opt/seqr/.conda/envs/py37/lib/python3.7/site-packages/hail/hail-all-spark.jar

Итак, рабочая команда следующая:

spark-submit --master spark://ai-grisnodedev1:7077 --verbose --conf spark.driver.port=40065 --driver-memory 4g --conf spark.driver.extraClassPath=/opt/seqr/.conda/envs/py37/lib/python3.7/site-packages/hail/hail-all-spark.jar --conf spark.executor.extraClassPath=./hail-all-spark.jar --jars /opt/seqr/.conda/envs/py37/lib/python3.7/site-packages/hail/hail-all-spark.jar test_hail.py

В будущем пользователям Hail 0.2 может быть важно знать, что этот параметр --jars требуется указывать, и что он должен указывать на hail-all-spark.jar.

Другие вопросы по тегам