请先用以下条款验证我:
执行器:它的容器或JVM进程
将运行在工作节点或数据节点
上。每个节点可以有多个执行器。
核心:它是容器或JVM进程
内的一个线程,运行在工作节点或数据节点
上。每个执行器可以有多个内核或线程。
>
应用程序或作业
并执行它?它是正确的理解…?在spark集群中用于提交作业的命令中,有一个设置执行者数量的选项。
spark-submit--class
那么这些执行器+核的数量将会是每个节点设置的吗?如果没有,那么我们如何设置每个节点的具体核数呢?
你所有的假设都是正确的。关于集群体系结构的详细说明,请通过此链接。你会得到一个清晰的画面。关于您的第二个问题,num-of-executors是针对整个集群的。其计算方法如下:
num-cores-per-node * total-nodes-in-cluster
例如,假设您有一个带有4核机器的20节点集群,并且您提交了一个带有-executor-memory 1G和--total-executor-cores 8的应用程序。然后Spark会在不同的机器上启动8个执行器,每个执行器有1 GB的RAM。Spark在默认情况下这样做是为了让应用程序有机会为运行在相同机器(例如HDF)上的分布式文件系统实现数据局部性,因为这些系统通常将数据分散在所有节点上。
希望有帮助!
我的集群配置如下:-7个节点,每个节点有32个核心和252 GB内存。 纱线配置如下:- map reduce配置如下:- null 在这种情况下,对于纱线调度程序,执行器内存+384最大不能超过10GB。在本例中,9856M+384 MB=10GB,因此它工作正常。现在,一旦spark shell启动,执行程序的总数是124个,而不是请求的175个。每个执行器的spark shell启动日志或s
我正在对YARN上的Spark作业进行一些内存调优,我注意到不同的设置会给出不同的结果,并影响Spark作业运行的结果。但是,我很困惑,不明白为什么会这样,如果有人能给我一些指导和解释,我会很感激。 我将提供一些背景资料和张贴我的问题和描述案例,我已经经历了他们在下面。 我的环境设置如下: 存储器20G,每个节点20个vCore(共3个节点) Hadoop 2.6.0 火花1.4.0 我的代码对R
我是Spark的初学者,我正在运行我的应用程序,从文本文件中读取14KB的数据,执行一些转换和操作(收集、收集AsMap),并将数据保存到数据库 我在我的macbook上本地运行它,内存为16G,有8个逻辑核。 Java最大堆设置为12G。 这是我用来运行应用程序的命令。 bin/spark-submit-class com . myapp . application-master local[*
null null 为了进行简单的开发,我使用在独立集群模式下(8个工作者、20个内核、45.3G内存)执行了我的Python代码。现在我想为性能调优设置执行器内存或驱动程序内存。 在Spark文档中,执行器内存的定义是 每个执行程序进程使用的内存量,格式与JVM内存字符串相同(例如512M、2G)。
问题内容: 我有一个MyThread对象,当通过服务器加载我的应用程序时会实例化该对象,将其标记为Daemon线程,然后对其进行调用。只要应用程序处于活动状态,该线程就可以坐下来等待队列中的信息。我的问题/问题是:当前MyThread正在扩展Thread,因为我将其标记为Daemon,并且阅读了有关如何更好地实现Runnable和使用Executors的信息。因此,我想问的是MyThread是否将
问题内容: 我应该如何从我的程序中运行另一个程序?我需要能够将数据写入启动的程序中(并可能从中读取) 我不确定这是否是标准的C函数。我需要应该在Linux下工作的解决方案。 问题答案: 您要使用。它为您提供了一个单向管道,您可以使用该管道访问程序的stdin和stdout。 popen是现代unix和类似unix的操作系统的标准配置,其中Linux是其中之一:-) 类型 在终端上阅读有关它的更多信