为什么 Spark 运行 不止一个进程?
Why Spark is running more than one process?
最近我遇到了 Spark 的问题。我在小型集群(4 个节点)上工作,我看到 spark 是 运行(经过一些更复杂的计算)第二个进程,它在这个节点上引起了一些奇怪的问题,例如:
5/04/22 08:54:37 WARN TaskSetManager: Lost task 2.1 in stage 10.0 (TID 52, hadoop1.itx.pl): java.lang.NoSuchMethodError: clojure.lang.Reflector.invokeNoArgInstanceMember(Ljava/lang/Object;Ljava/lang/String;Z)Ljava/lang/Object;
我不知道问题的原因是什么,但是当我杀死 spark worker 进程并再次启动它们时(只有一个进程)它工作正常直到下一个 "cloning".
我有默认的 spark-env 设置,所以 SPARK_WORKERS 应该是 1。
您看到的第二个进程是生成的执行程序来处理您的任务。 worker 本身仅执行协调职责,其中一项是确保执行程序已启动并在驱动程序请求时 运行。这就是为什么您看到的进程正在重新生成。
有关架构的详细概述,请参阅 this Spark doc。
您看到的异常很可能是由类路径问题引起的(缺少库、驱动程序和工作程序之间的版本不匹配)。具体来说,您的类路径中可能有两个版本的 Clojure,类似于 this issue。缺少的方法是在 Clojure 1.6 中引入的 - 查看您是否使用旧版本。
最近我遇到了 Spark 的问题。我在小型集群(4 个节点)上工作,我看到 spark 是 运行(经过一些更复杂的计算)第二个进程,它在这个节点上引起了一些奇怪的问题,例如:
5/04/22 08:54:37 WARN TaskSetManager: Lost task 2.1 in stage 10.0 (TID 52, hadoop1.itx.pl): java.lang.NoSuchMethodError: clojure.lang.Reflector.invokeNoArgInstanceMember(Ljava/lang/Object;Ljava/lang/String;Z)Ljava/lang/Object;
我不知道问题的原因是什么,但是当我杀死 spark worker 进程并再次启动它们时(只有一个进程)它工作正常直到下一个 "cloning".
我有默认的 spark-env 设置,所以 SPARK_WORKERS 应该是 1。
您看到的第二个进程是生成的执行程序来处理您的任务。 worker 本身仅执行协调职责,其中一项是确保执行程序已启动并在驱动程序请求时 运行。这就是为什么您看到的进程正在重新生成。
有关架构的详细概述,请参阅 this Spark doc。
您看到的异常很可能是由类路径问题引起的(缺少库、驱动程序和工作程序之间的版本不匹配)。具体来说,您的类路径中可能有两个版本的 Clojure,类似于 this issue。缺少的方法是在 Clojure 1.6 中引入的 - 查看您是否使用旧版本。