【发布时间】:2019-11-28 13:54:35
【问题描述】:
我正在遵循 python 指南beam spark runner,beam_pipeline 可以将作业提交到由./gradlew :runners:spark:job-server:runShadow 使用本地火花启动的本地作业服务器,
并将参数-PsparkMasterUrl=spark://localhost:7077 添加到预部署的火花。
但我在 yarn 上有一个 spark 集群,我将启动命令设置为 ./gradlew :runners:spark:job-server:runShadow -PsparkMasterUrl=yarn(also tried yarn-client),但只能得到 org.apache.spark.SparkException: Could not parse Master URL: 'yarn'
spark runner(beam\sdks\python\apache_beam\runners\portability\spark_runnner.py)的源代码显示:
parser.add_argument('--spark_master_url',
default='local[4]',
help='Spark master URL (spark://HOST:PORT). '
'Use "local" (single-threaded) or "local[*]" '
'(multi-threaded) to start a local cluster for '
'the execution.')
它没有提到“纱线”,并且 Spark 便携式运行器不支持提供的 SparkContext 和 StreamingListener。那么这是否意味着带有python的apache_beam spark runner不能在远程spark集群(主要是yarn)上实现并且只能在本地测试?或者我可以将 job_endpoint 设置为我的 spark 集群的远程作业服务器 url。
每个./gradlew 命令在 98% 时被阻止,但 jab 服务器以这样的信息启动:
19/11/28 13:47:48 INFO org.apache.beam.runners.fnexecution.jobsubmission.JobServerDriver: JobService started on localhost:8099
<============-> 98% EXECUTING [16s]
> IDLE
> :runners:spark:job-server:runShadow
> IDLE
【问题讨论】: