我正在试图运行一个基本脚本在星火集群上,它接收一个文件,转换它并以不同的格式输出。火花集群目前由一个主程序和一个从节点组成,它们都运行在同一个节点上。完整的命令是:
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 &因此,在本地模式下,它运行得很好,但在独立模式下却不是。所以,我想这是主从不同设置的问题,可能是JAVA。但是,在spark-env.sh中这样设置它们:
导出JAVA_HOME=/usr/lib/jvm/java
出口SPARK_JAVA_OPTS+=“-Djava.library.path= $SPARK_LIBRARY_PATH:$JAVA_HOME”
解决不了这个问题。要启动主+从,我只需使用start-all.sh脚本。如有任何建议,将不胜感激。
发布于 2019-11-21 18:01:13
好的,我们修复了它,解决方案是在运行脚本的命令中添加以下设置:
–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对于未来的Hail0.2用户来说,重要的是要知道这个--jars参数是必需指定的,并且它应该指向HALL-AllSplk.jar。
https://stackoverflow.com/questions/58964568
复制相似问题