【发布时间】:2017-12-20 16:22:14
【问题描述】:
我已安装 Apache Spark 1.5.2(适用于 Hadoop 2.6+)。我的集群包含以下硬件:
- 主控:12 个 CPU 内核和 128 GB RAM
- Slave1:12 个 CPU 内核和 64 GB RAM
- Slave2:6 个 CPU 内核和 64 GB RAM
其实我的 slaves 文件有两个条目:
slave1_ip
slave2_ip
因为我的主线程也有一个非常“强大”的硬件,它不会只被主线程使用。所以我想问一下是否有可能将一些 CPU 内核和来自 master 机器的 RAM 提供给第三个 worker 实例......?谢谢!
第一次尝试解决问题
在 Jacek Laskowski 的回答之后,我设置了以下设置:
spark-defaults.conf (only on Master machine):
spark.driver.cores=2
spark.driver.memory=4g
spark-env.sh (on Master):
SPARK_WORKER_CORES=10
SPARK_WORKER_MEMORY=120g
spark-env.sh (on Slave1):
SPARK_WORKER_CORES=12
SPARK_WORKER_MEMORY=60g
spark-env.sh (on Slave2):
SPARK_WORKER_CORES=6
SPARK_WORKER_MEMORY=60g
我还将master的ip地址添加到slaves文件中。
集群现在包含 3 个工作节点(从属节点 + 主节点),非常完美。
但是:Web UI 显示每个节点只有 1024m 的 RAM,请参见屏幕截图:
有人可以说如何解决这个问题吗?设置 spark.executor.memory 将为每台机器设置相同数量的 RAM,这不是使用尽可能多的 RAM 的最佳选择......!我究竟做错了什么?谢谢!
【问题讨论】:
标签: apache-spark