工人为什么要杀死执行人?

时间:2016-03-24 02:32:52

标签: eclipse scala apache-spark

我在spark独立群集中编写spark应用程序。当我运行以下代码时,我得到了ClassNotFoundException(参考截图)。所以,我跟着工人(192.168.111.202)登录。

List<Integer> list = Arrays.asList(1,2,3,4);
list.stream()
    .boxed() // Converts Intstream to Stream<Integer>
    .sorted(Collections.reverseOrder()) // Method on Stream<Integer>
    .forEach(System.out::println);

enter image description here

以下日志是工作人员的日志。这些日志表示worker kill executor,并且发生错误。工人为什么要杀死执行人?你能给出任何线索吗?

package main

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext

object mavenTest {
    def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("stream test").setMaster("spark://192.168.111.201:7077")
    val sc = new SparkContext(conf)
    val input = sc.textFile("file:///root/test")

    val words = input.flatMap { line => line.split(" ") }


    val counts = words.map(word => (word, 1)).reduceByKey { case (x, y) => x + y }

    counts.saveAsTextFile("file:///root/mapreduce")
  }
}

2 个答案:

答案 0 :(得分:1)

我发现这是关于记忆的问题,但我不清楚为什么会出现这个问题。只需在yarn-site.xml文件中添加以下属性即可。 Apache hadoop说这个configure决定是否对容器实施虚拟内存限制。

<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

答案 1 :(得分:0)

你的火花版是什么?这是一个火花已知的错误,并在1.6版本中修复。 更多细节你可以看到[SPARK-9844]