【发布时间】:2019-02-12 07:55:38
【问题描述】:
-
总结:我正在使用
spark-submit将我的应用程序提交到我的 Spark 集群,但分配给我的应用程序的资源与我指定的参数不一致。 -
详情:我总是得到 4 个容器、16 个内核和 74752MB RAM(大约 73G)。当我将
client模式更改为cluster时,我得到的只是更少,例如9 个容器 9 个内核和 45056MB RAM(大约 44GB)。我在显示应用程序信息的cluster:8088页面上找到了这些信息。我还交叉引用了spark:4044的 executors 选项卡,其中显示了 spark 应用程序的 executors 信息。 - 下面是我使用的代码 sn-p:
spark-submit --master yarn --deploy-mode client --class "$1" target/scala-2.10/recommend-assembly-0.1.jar --executor-cores 8 --num-executor 15 --driver-memory 19g - 环境信息:Spark1.6 on yarn,Hadoop2.6。一个由 4 个节点组成的集群(1 个是主节点),每个节点都有 16 核 CPU 和 64GB RAM(尽管我的节点不知何故只能访问 40GB RAM)。
- 我尝试了什么:
- 我尝试修改上述参数(例如 num-executor),我仍然获得相同数量的资源。但是当我把
client改成cluster时,分配的资源就更少了。 - 我怀疑某些纱线设置会导致此问题。我找到了Apache Hadoop Yarn - Underutilization of cores,但是,在我更改
capacity-scheduler.xml中的设置后它并没有帮助。
- 我尝试修改上述参数(例如 num-executor),我仍然获得相同数量的资源。但是当我把
【问题讨论】: