激发远程开发环境

时间:2017-08-28 03:52:47

标签: java apache-spark

我想远程激发开发环境。

机器是我的开发机器,java,eclipse,windows 10。

我还有另一台机器已经安装了cloduera(火花上的火花)。

我试过这个

    String appName = "test" + new Date(System.currentTimeMillis());
    String master = "spark://*:6066";
    String host = "*";
    String jar = "C:\\Users\\default.DESKTOP-0BP338U\\Desktop\\workspace\\workspace_study\\spark-start-on-yarn\\target\\spark-start-on-yarn-0.0.1-SNAPSHOT.jar";

    SparkConf conf = new SparkConf().setAppName(appName).setMaster(master)
            .set("spark.driver.host",  host)
            .setJars(new String[]{jar});
    JavaSparkContext sc = new JavaSparkContext(conf);

但连接被拒绝了。

如何在我的A机器上开发和测试火花程序?

我添加了环境变量

enter image description here

这是我的代码

    SparkConf conf = new SparkConf()
            .setAppName(new Date(System.currentTimeMillis()).toString())
            .setMaster("yarn");
    JavaSparkContext sc = new JavaSparkContext(conf);


    List<Integer> data = Arrays.asList(1,2,3,4,1,2,3,4,5,1,4,1,1,1,4,2,2,4,1,1,3,4,2,3);
    JavaRDD<Integer> distData = sc.parallelize(data);

    JavaPairRDD<Integer, Integer> pairs = distData.mapToPair(s -> new Tuple2<Integer, Integer>(s, 1));
    JavaPairRDD<Integer, Integer> counts = pairs.reduceByKey((a, b) -> a + b);

    System.out.println("================= " + counts);

    sc.close();
    sc.stop();

并且错误是“SparkException:Cloud不解析主URL:'yarn'”

我错过了什么?请帮帮我......

1 个答案:

答案 0 :(得分:1)

你需要

  1. 下载Hadoop集群的HADOOP_CONF_DIR配置文件。

  2. 您的计算机中设置HADOOP_CONF_DIR envrionment变量。或者,如果这不起作用,则可以将XML文件放在src/main/resources文件夹中,以将它们包含在类路径中。

  3. 使用setMaster("yarn-client")

  4.   

    确保HADOOP_CONF_DIRYARN_CONF_DIR指向包含Hadoop集群(客户端)配置文件的目录。这些配置用于写入HDFS并连接到YARN ResourceManager)

    Spark on YARN

    Running Spark from an outside machine

    1. 使用本地用户名制作HDFS /user文件夹。这是HDFS权限所必需的。

    2. 开发,最好使用Maven / Gradle来管理Java库。您还需要使用Cloudera Maven repository for you respective Hadoop versions

    3. 您也不需要setJars()。您的应用应该连接并自行运行。