Spark Executors - 它们是java进程吗?

时间:2018-02-15 05:24:03

标签: apache-spark

我是新来的火花。当我尝试在3个执行程序的客户端模式下运行spark-submit时,我希望在执行ps -ef时显示3个java进程(因为有3个执行程序)

$SPARK_HOME/bin/spark-submit --num-executors 3 --class AverageCalculation --master local[1] /home/customer/SimpleETL/target/SimpleETL-0.1.jar hdfs://node1:9000/home/customer/SimpleETL/standard_input.csv

但是,我没有看到3个java进程。我不明白的是每个执行程序进程都是一个java进程。请指教。感谢。

4 个答案:

答案 0 :(得分:3)

因为您使用local模式(--master local[1]),执行程序设置不适用。在这种情况下,spark只启动一个JVM来模拟所有组件,并将local definition(1)中指定的线程数分配为执行程序线程。

在其他模式中,exectuors是单独的JVM实例。

答案 1 :(得分:0)

在Spark中,有主节点和工作节点。执行程序在自己的java进程中的工作节点上运行。

--deploy-mode cluster中,您可以添加{{1}},并查看执行程序是否在自己的JVM实例中的工作节点上运行。

您可以查看this answer以获取Apache Spark的详细工作流程。

答案 2 :(得分:0)

/home/spark/spark-2.2.1-bin-hadoop2.7/bin/spark-submit --class org.apache.spark.examples.SparkPi \
    --num-executors 1000 \
    --master yarn --deploy-mode cluster --driver-memory 4g --executor-memory 2g --executor-cores 1 \
    --queue default /home/spark/spark-2.2.1-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.2.1.jar

〜 我执行了上面的命令。并检查了ps -ef | grep java。但我没有看到很多java进程。有没有简单的方法来识别执行者?

答案 3 :(得分:0)

每个执行程序都是一个java进程。每个执行者都包含一个jvm。

call(["vim", "-o"] + files)

java进程数与执行程序数相同。如果执行程序分布在工作节点上。需要检查相应工作节点的进程。我们可以从spark历史服务器Web UI获取有关执行程序及其启动位置的信息。