【问题标题】:why some nodes were not assigned to allocate data on spark?为什么没有分配一些节点来分配火花上的数据?
【发布时间】:2017-02-02 16:15:32
【问题描述】:

我是 Spark 的初学者。我编写了代码并在多节点上运行它们。

我有一个主节点和四个工作节点。我多次运行我的代码,令我惊讶的是,有时其中一些不起作用,有时所有工作节点都工作,因为它们被分配了 master 指定的数据。

我没有设置任何详细的配置,所以我觉得这种行为很奇怪。 我想让我的所有工作节点同时处理以获得更好更快的结果。如何达到我的要求?

我附上了我的代码和命令。这很简单,所以我跳过了详细的解释。谢谢。

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.FlatMapFunction;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

/**
 * Created by dst on 2/1/17.
 */

public class Test {
    public static void main(String[] args) throws Exception {
        String inputFile = args[0];
        String outputFile = args[1];
        SparkConf conf = new SparkConf().setAppName("Data Transformation")
                .set("spark.serializer","org.apache.spark.serializer.KryoSerializer");


        JavaSparkContext sc = new JavaSparkContext(conf);


        JavaRDD<String> lines = sc.textFile(inputFile);


        JavaRDD<String> newLine = lines.flatMap(new FlatMapFunction<String, String>() {
            public Iterator<String> call(String s) throws Exception {
                List<String> ret = new ArrayList<String>();
                List<String> ls = Arrays.asList(s.split("\t"));

                String values = ls.get(ls.size()-1);
                List<String> value = Arrays.asList(values.split("\\|"));

                for(int i=0;i<value.size();++i){
                    String ns = ls.get(0)+"\t"+ls.get(1)+"\t"+ls.get(2)+"\t"+ls.get(3)+"\t"+ls.get(4)+"\t"+ls.get(5);
                    ns = ns + "\t" + value.get(i);
                    ret.add(ns);
                }
                return ret.iterator();
            }
        });


        newLine.saveAsTextFile(outputFile);
    }
}

火花提交。

spark-submit \
        --class Test \
        --master spark://spark.dso.xxxx \
        --executor-memory 10G \
        /home/jumbo/user/sclee/dt/jars/dt_01_notcache-1.0-SNAPSHOT.jar \
        /user/sclee/data/ /user/sclee/output

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    参考documentation尝试设置spark.deploy.spreadOut = false,设置后行为将保持不变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 2017-06-28
      • 2012-02-18
      相关资源
      最近更新 更多