Java 纱线模式下带火花的Springboot

Java 纱线模式下带火花的Springboot,java,spring-boot,apache-spark,yarn,Java,Spring Boot,Apache Spark,Yarn,我正在尝试使用SpringBoot运行LivingSpark会话。我的目标是用springboot以纱线模式运行spark 我只希望有一个jar文件作为工件,不希望分离spark依赖项 除了下面的代码,我还需要添加任何配置吗?当我尝试时,总是尝试连接到本地主机而不是实际主机。 (RMProxy:在/0.0.0.0:8032处连接到ResourceManager 20/01/23 20:14:14信息客户端:正在重试连接到服务器:0.0.0.0/0.0.0:8032) 是否需要任何单独的配置来记录

我正在尝试使用SpringBoot运行LivingSpark会话。我的目标是用springboot以纱线模式运行spark

  • 我只希望有一个jar文件作为工件,不希望分离spark依赖项
  • 除了下面的代码,我还需要添加任何配置吗?当我尝试时,总是尝试连接到本地主机而不是实际主机。 (RMProxy:在/0.0.0.0:8032处连接到ResourceManager 20/01/23 20:14:14信息客户端:正在重试连接到服务器:0.0.0.0/0.0.0:8032)
  • 是否需要任何单独的配置来记录工作日志和驱动程序日志
  • SparkConf conf=new SparkConf()。
    设置(“spark.driver.extraJavaOptions”、“Dlog4j.configuration”=file://src/main/resources/log4j.properties").
    设置(“spark.executor.extraJavaOptions”、“Dlog4j.configuration”=file://src/main/resources/log4j.properties").
    设置(“纱线.资源管理器.地址”http://my-yarn-host").
    set(“spark.warn.jars”,“BOOT-INF/lib/spark-*.jar”)。
    setAppName(“NG工作台”).setMaster(“纱线”);
    JavaSparkContext sc=新的JavaSparkContext(conf);
    List word=new ArrayList();
    添加(“Sidd”);
    javarddwords=sc.parallelize(Arrays.asList(“Michel”、“Steve”));
    Map wordCounts=words.countByValue();
    forEach((k,v)->System.out.println(k+“”+v));
    sc.close();
    

    我建议您向您的工件添加一些配置文件:

    • web-site.xml
    • core-site.xml
    • hdfs-site.xml
    • mapred-site.xml
    否则,您可以在spark配置中添加以下两个属性:

    • spark.hadoop.Thread.resourcemanager.address:“XXXX:8050”
    • spark.hadoop.Thread.resourcemanager.hostname:“XXXX”

    您的问题解决了吗?
    SparkConf conf = new SparkConf().
     set("spark.driver.extraJavaOptions", "Dlog4j.configuration=file://src/main/resources/log4j.properties").
     set("spark.executor.extraJavaOptions","Dlog4j.configuration=file://src/main/resources/log4j.properties").
     set("yarn.resoursemanager.address","http://my-yarn-host").
     set("spark.yarn.jars","BOOT-INF/lib/spark-*.jar").
     setAppName("NG-Workbench").setMaster("yarn");
    
    JavaSparkContext sc = new JavaSparkContext(conf);
    List<String> word = new ArrayList<>();
    word.add("Sidd");
    JavaRDD<String> words = sc.parallelize(Arrays.asList("Michel", "Steve"));
    Map<String, Long> wordCounts = words.countByValue();
    wordCounts.forEach((k, v) -> System.out.println(k + " " + v));
    sc.close();