我阅读了Cluster Mode Overview,但仍然无法理解Spark Standalone集群中的不同进程和并行性.
工作者是否是JVM进程?我跑了bin\start-slave.sh,发现它产生了工人,实际上是一个JVM.
根据上面的链接,执行程序是为运行任务的工作节点上的应用程序启动的进程.Executor也是一个JVM.
这些是我的问题:
执行者是每个应用程序.那么工人的角色是什么?它是否与执行人协调并将结果传达给司机?或者司机是否与执行人直接对话?如果是这样,那么工人的目的是什么呢?
如何控制应用程序的执行程序数量?3.可以在执行程序内并行执行任务吗?如果是这样,如何配置执行程序的线程数?
工作者,执行者和执行者核心(--total-executor-cores)之间的关系是什么?
每个节点拥有更多工人意味着什么?
更新
让我们举个例子来更好地理解.
示例1: 具有5个工作节点的独立群集(每个节点具有8个核心)当我使用默认设置启动应用程序时.
示例2 与示例1相同的集群配置,但我运行具有以下设置的应用程序--executor-cores 10 --total-executor-cores 10.
示例3 与示例1相同的集群配置,但我运行具有以下设置的应用程序--executor-cores 10 --total-executor-cores 50.
示例4 与示例1相同的集群配置,但我运行具有以下设置的应用程序--executor-cores 50 --total-executor-cores 50.
示例5 与示例1相同的集群配置,但我运行具有以下设置的应用程序--executor-cores 50 --total-executor-cores 10.
在每个例子中,有多少执行者?每个执行程序有多少个线程?多少个核心?如何根据申请决定执行人数.它总是与工人数量相同吗?
我试图了解如何在YARN群集/客户端上运行spark.我脑子里有以下问题.
是否有必要在纱线群中的所有节点上安装火花?我认为它应该是因为集群中的工作节点执行任务并且应该能够解码驱动程序发送到集群的spark应用程序中的代码(spark API)?
它在文档中说"确保HADOOP_CONF_DIR或YARN_CONF_DIR指向包含Hadoop集群的(客户端)配置文件的目录".为什么客户端节点在将作业发送到集群时必须安装Hadoop?
我在一个包含36个内核和58GB内存的5个工作节点的集群中使用Spark 1.3.0.我想配置Spark的Standalone集群,每个worker有很多执行程序.
我已经看到合并的SPARK-1706,但是如何实际配置多个执行器并不是很明确.
以下是群集的最新配置:
spark.executor.cores = "15"
spark.executor.instances = "10"
spark.executor.memory = "10g"
Run Code Online (Sandbox Code Playgroud)
这些设置是SparkContext在将Spark应用程序提交到群集时设置的.
apache spark独立设置中的所有工作人员都显示以下消息.工人:执行人app-20150902151146-0001/6以州KILLED exitStatus 1结束
得到这条消息的原因是什么?
到目前为止,我只在YARN作为资源管理器的Hadoop集群上使用了Spark。在这种类型的集群中,我确切地知道要运行多少个执行程序以及资源管理的工作方式。但是,知道我正在尝试使用独立Spark集群,我有些困惑。纠正我在哪里我错了。
在本文中,默认情况下,辅助节点使用该节点的所有内存减去1 GB。但我知道通过使用SPARK_WORKER_MEMORY,我们可以使用更少的内存。例如,如果节点的总内存为32 GB,但我指定了16 GB,那么Spark worker是否在该节点上使用的内存不会超过16 GB?
但是执行者呢?让我们说如果我要在每个节点上运行2个执行程序,是否可以通过将期间的执行程序内存指定spark-submit为的一半来执行此操作SPARK_WORKER_MEMORY,是否要在每个节点上运行4个执行程序,通过将执行程序内存指定为四分之一的值来执行此操作SPARK_WORKER_MEMORY?
如果是这样的话,我认为,除了执行程序内存外,我还必须正确指定执行程序核心。例如,如果我要在一个工人上运行4个执行程序,则必须将执行程序核心指定为SPARK_WORKER_CORES?的四分之一。如果我指定一个更大的数字会怎样?我的意思是,如果我将执行程序的内存指定为内存的四分之一SPARK_WORKER_MEMORY,但是执行程序的核心仅是内存的一半SPARK_WORKER_CORES?在这种情况下,我将让2或4个执行程序在该节点上运行吗?
hadoop scala cluster-computing apache-spark apache-spark-standalone