小编Jay*_*man的帖子

Spark num-executors

我在 AWS 上设置了一个 10 节点 HDP 平台。下面是我的配置 2 个服务器 - 名称节点和备用名称节点 7 个数据节点,每个节点有 40 个 vCPU 和 160 GB 内存。

我试图在提交 Spark 应用程序时计算执行程序的数量,在浏览了不同的博客后,我对这个参数的实际含义感到困惑。

查看下面的博客,似乎 num executors 是所有节点的执行程序总数 http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part -2/

但是查看下面的博客,似乎每个节点或服务器的 num executors https://blogs.aws.amazon.com/bigdata/post/Tx578UTQUV7LRP/Submitting-User-Applications-with-spark-submit

任何人都可以澄清并查看以下内容: -

  1. num-executors 值是每个节点还是所有数据节点的执行程序总数。

  2. 我正在使用下面的计算来计算每个执行程序的核心数、执行程序数和内存

    内核数 <= 5(假设为 5) 执行器数 = (40-1)/5 = 7 内存 = (160-1)/7 = 22 GB

通过上面的计算,这将是正确的方法

--master yarn-client --driver-memory 10G --executor-memory 22G --num-executors 7 --executor-cores 5 

OR

--master yarn-client --driver-memory 10G --executor-memory 22G --num-executors 49 --executor-cores 5 
Run Code Online (Sandbox Code Playgroud)

谢谢,贾亚德普

hadoop-yarn hortonworks-data-platform apache-spark

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

当指定存储级别时,在 pyspark2 中保留数据帧不起作用。我究竟做错了什么?

我试图在执行连接之前保留两个非常大的数据帧以解决“java.util.concurrent.TimeoutException:Futures timed out...”问题(参考:为什么连接因“java.util.concurrent.TimeoutException”而失败:期货在 [300 秒] 后超时”?)。

Persist() 单独可以工作,但是当我尝试指定存储级别时,我收到名称错误。

我尝试过以下方法:

df.persist(pyspark.StorageLevel.MEMORY_ONLY) 
NameError: name 'MEMORY_ONLY' is not defined

df.persist(StorageLevel.MEMORY_ONLY) 
NameError: name 'StorageLevel' is not defined

import org.apache.spark.storage.StorageLevel 
ImportError: No module named org.apache.spark.storage.StorageLevel
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

apache-spark apache-spark-sql pyspark

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