小编ret*_*nuH的帖子

为什么EMR上的Yarn不会将所有节点都分配给运行Spark作业?

我在Amazon Elastic Map Reduce(EMR)上运行Apache Spark上的工作.目前我正在运行emr-4.1.0,其中包括Amazon Hadoop 2.6.0和Spark 1.5.0.

当我开始工作时,YARN正确地将所有工作节点分配给spark作业(当然,一个用于驱动程序).

我将魔术"maximizeResourceAllocation"属性设置为"true",并将spark属性"spark.dynamicAllocation.enabled"也设置为"true".

但是,如果通过将节点添加到工作计算机的CORE池来调整emr集群的大小,则YARN仅会将一些新节点添加到spark作业.

例如,今天早上我有一个使用26个节点的工作(m3.2xlarge,如果这很重要) - 1个用于驱动程序,25个执行程序.我想加快工作,所以我尝试添加8个节点.YARN已经获取了所有新节点,但只将其中一个分配给了Spark作业.Spark成功地接收了新节点,并将其用作执行器,但我的问题是为什么YARN让其他7个节点闲置?

由于显而易见的原因,这很烦人 - 即使它们没有被使用,我也必须为资源付费,而我的工作根本没有加速!

有人知道YARN如何决定何时添加节点来运行火花作业?什么变量发挥作用?记忆?V-核心?什么?

提前致谢!

amazon-emr elastic-map-reduce emr hadoop-yarn apache-spark

16
推荐指数
1
解决办法
6652
查看次数

使用亚马逊的"maximizeResourceAllocation"设置的Spark + EMR不使用所有核心/ vcores

我正在使用亚马逊的具体星火的EMR集群(版本EMR-4.2.0)maximizeResourceAllocation标志作为记录在这里.根据这些文档,"此选项计算核心节点组中节点上执行程序可用的最大计算和内存资源,并使用此信息设置相应的spark-defaults设置".

我正在使用m3.2xlarge实例为工作节点运行集群.我正在为YARN master使用一个m3.xlarge - 我可以运行它的最小m3实例,因为它没有做太多.

情况是这样的:当我运行Spark作业时,每个执行程序所请求的核心数是8.(我在配置之后才得到这个,"yarn.scheduler.capacity.resource-calculator": "org.apache.hadoop.yarn.util.resource.DominantResourceCalculator"这实际上不在文档中,但我离题了).这似乎是有道理的,因为根据这些文档,m3.2xlarge有8个"vCPU".但是,在实际实例本身中/etc/hadoop/conf/yarn-site.xml,每个节点都配置为yarn.nodemanager.resource.cpu-vcores设置为16.我(猜测)认为这必定是因为超线程或者其他一些硬件的原因.

所以问题在于:当我使用时maximizeResourceAllocation,我获得了亚马逊实例类型具有的"vCPU"数量,这似乎只是YARN在节点上运行的已配置"VCores"数量的一半; 因此,执行程序仅使用实例上实际计算资源的一半.

这是Amazon EMR中的错误吗?其他人是否遇到同样的问题?是否还有其他一些我缺少的魔法无证配置?

amazon-emr elastic-map-reduce emr hadoop-yarn apache-spark

16
推荐指数
2
解决办法
1万
查看次数

有人在PyCharm中为以下库提供了"文档URL":

我是PyCharm和其他Jetbrains IDE的"快速文档"功能的粉丝,但它需要知道每个库的特定"文档URL",它们在设置下Preferences > Tools > Python External Documentation设置.

我想知道是否有人为以下任何库工作:

  • Tensorflow
  • PyTorch
  • Matplotlib
  • Seaborn
  • 熊猫

python ide code-documentation pycharm

7
推荐指数
1
解决办法
969
查看次数