我正在遵循python指南beam spark runner,并且beam_pipeline可以将作业提交到由./gradlew :runners:spark:job-server:runShadow
启动并带有本地火花的本地作业服务器,以及将参数-PsparkMasterUrl=spark://localhost:7077
添加到预先部署的火花中。
但是我在纱线上有火花簇,我将启动命令设置为./gradlew :runners:spark:job-server:runShadow -PsparkMasterUrl=yarn(also tried yarn-client)
,但只获得了org.apache.spark.SparkException: Could not parse Master URL: 'yarn'
以及火花跟踪器的源代码(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.')
它没有提到'yarn',并且Spark便携式流道不支持Provided SparkContext和StreamingListeners。那么,是否意味着python的apache_beam sparkRunner无法在远程spark集群(主要是纱线)上实现,并且只能在本地进行测试?或者,我可以将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
这也意味着不能在远程spark集群上实现python的apache_beam spark赛跑者(主要是学习纱线)
我们最近添加了portable Spark jars,可以通过spark-submit
提交。但是,直到2.19.0之前,Beam版本尚未计划包含此功能。
我创建了一个JIRA ticket来跟踪YARN支持的状态,以防需要解决其他相关问题。
并且每个./gradlew命令被阻止在98%上
这是预期的行为。作业服务器将一直运行,直到被取消。