Apache Spark java.lang.ClassNotFoundException

 Struggle大飞哥 发布于 2023-01-18 09:05

Spark独立集群看起来正在运行而没有问题:

http://i.stack.imgur.com/gF1fN.png 火花网ui

我按照本教程.

我已经构建了一个胖jar来在集群上运行这个JavaApp.在maven包之前:

find .

./pom.xml
./src
./src/main
./src/main/java
./src/main/java/SimpleApp.java

SimpleApp.java的内容是:

 import org.apache.spark.api.java.*;
 import org.apache.spark.api.java.function.Function;
 import org.apache.spark.SparkConf;
 import org.apache.spark.SparkContext;


 public class SimpleApp {
 public static void main(String[] args) {

 SparkConf conf =  new SparkConf()
                   .setMaster("spark://10.35.23.13:7077")
                   .setAppName("My app")
                   .set("spark.executor.memory", "1g");

 JavaSparkContext   sc = new JavaSparkContext (conf);
 String logFile = "/home/ubuntu/spark-0.9.1/test_data";
 JavaRDD logData = sc.textFile(logFile).cache();

 long numAs = logData.filter(new Function() {
  public Boolean call(String s) { return s.contains("a"); }
 }).count();

 System.out.println("Lines with a: " + numAs); 
 }
 }

此程序仅在master设置为setMaster("local")时有效.否则我得到这个错误

$ java -cp path_to_file/simple-project-1.0-allinone.jar SimpleApp

http://i.stack.imgur.com/doRSn.png 错误截图

1 个回答
  • 在SimpleApp.java文件中有匿名类(扩展Function).此类编译为SimpleApp $ 1,应该向Spark集群中的每个worker广播.

    最简单的方法是将jar显式添加到Spark上下文中.sparkContext.addJar("path_to_file/simple-project-1.0-allinone.jar")JavaSparkContext创建和重建jar文件之后添加类似的内容.然后主Spark程序(称为驱动程序)将自动将您的应用程序代码传递给集群.

    2023-01-18 09:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有