hab*_*ats 10 hadoop google-cloud-platform google-cloud-dataproc
我正在尝试在Dataproc集群上运行Spark作业,但由于Yarn配置错误,Spark无法启动.
从shell(本地主服务器)运行"spark-shell"时,以及通过Web-GUI和本地计算机上的gcloud命令行实用程序上载作业时,我收到以下错误:
15/11/08 21:27:16 ERROR org.apache.spark.SparkContext: Error initializing SparkContext.
java.lang.IllegalArgumentException: Required executor memory (38281+2679 MB) is above the max threshold (20480 MB) of this cluster! Please increase the value of 'yarn.s
cheduler.maximum-allocation-mb'.
Run Code Online (Sandbox Code Playgroud)
我尝试修改值,/etc/hadoop/conf/yarn-site.xml但它没有改变任何东西.我不认为它从该文件中提取配置.
我已尝试在多个站点(主要是欧洲)使用多个群集组合,而我只能使用低内存版本(4核,15 GB内存).
也就是说,这仅仅是配置为高于纱线默认允许的内存的节点上的问题.
对于您遇到的这些问题,我们深表歉意!看起来这是已知问题的一部分,其中某些内存设置最终根据主机的大小而不是工作机的大小计算,我们希望很快就能在即将发布的版本中解决这个问题.
目前有两种解决方法:
--conf如果从SSH连接运行,则使用该标志显式设置spark.executor.memory和spark.executor.cores,如:
spark-shell --conf spark.executor.memory=4g --conf spark.executor.cores=2
Run Code Online (Sandbox Code Playgroud)
或如果正在运行gcloud beta dataproc,请使用--properties:
gcloud beta dataproc jobs submit spark --properties spark.executor.memory=4g,spark.executor.cores=2
Run Code Online (Sandbox Code Playgroud)您可以根据需要调整每个执行程序的核心数/内存数; 尽管你可以通过将spark.executor.memory设置为每个YARN容器和spark.executor中可用的完整大小来节省一些执行程序开销,但是在较小的执行程序上犯错并让YARN将大量执行程序包装到每个工作程序上都是错误的. .cores到每个工作者的所有核心.
编辑:截至1月27日,现在将为主/工作机器类型的任意组合正确配置新的Dataproc集群,如发行说明中所述.
| 归档时间: |
|
| 查看次数: |
8678 次 |
| 最近记录: |