【发布时间】:2016-11-14 20:24:28
【问题描述】:
我是 YARN 上的 Spark 新手,不了解 YARN Containers 和 Spark Executors 之间的关系。我根据yarn-utils.py 脚本的结果尝试了以下配置,可用于找到最佳集群配置。
我正在开发的 Hadoop 集群 (HDP 2.4):
- 1 个主节点:
- CPU:2 个 CPU,每个 CPU 有 6 个内核 = 12 个内核
- 内存:64 GB
- SSD:2 个 512 GB
- 5 个从节点:
- CPU:2 个 CPU,每个 CPU 有 6 个内核 = 12 个内核
- 内存:64 GB
- 硬盘:4 x 3 TB = 12 TB
- HBase 已安装(这是下面脚本的参数之一)
于是我跑了python yarn-utils.py -c 12 -m 64 -d 4 -k True (c=cores, m=memory, d=hdds, k=hbase-installed) 得到了以下结果:
Using cores=12 memory=64GB disks=4 hbase=True
Profile: cores=12 memory=49152MB reserved=16GB usableMem=48GB disks=4
Num Container=8
Container Ram=6144MB
Used Ram=48GB
Unused Ram=16GB
yarn.scheduler.minimum-allocation-mb=6144
yarn.scheduler.maximum-allocation-mb=49152
yarn.nodemanager.resource.memory-mb=49152
mapreduce.map.memory.mb=6144
mapreduce.map.java.opts=-Xmx4915m
mapreduce.reduce.memory.mb=6144
mapreduce.reduce.java.opts=-Xmx4915m
yarn.app.mapreduce.am.resource.mb=6144
yarn.app.mapreduce.am.command-opts=-Xmx4915m
mapreduce.task.io.sort.mb=2457
我通过 Ambari 界面进行的这些设置并重新启动了集群。这些值也与我之前手动计算的大致相符。
我现在有问题
- 为我的
spark-submit脚本找到最佳设置- 参数
--num-executors、--executor-cores和--executor-memory。
- 参数
- 获取 YARN 容器和 Spark 执行器之间的关系
- 了解我的 Spark 历史 UI 中的硬件信息(我设置的内存较少(当通过乘以工作节点数量计算到总内存时))
- 要理解 YARN 中
vcores的概念,我在这里找不到任何有用的示例
但是,我找到了这篇帖子 What is a container in YARN? ,但这并没有真正帮助,因为它没有描述与执行者的关系。
有人可以帮助解决一个或多个问题吗?
【问题讨论】:
标签: apache-spark containers hadoop-yarn hortonworks-data-platform executor