1.找不到class或者class的某个方法。
解决方法:spark-submit时配置--conf spark.yarn.archive="hdfs://ip:port/xxx/sparkJars.zip"
把你需要的版本的jar放到上述的sparkJars.zip,此地址最好时集群都可以访问的地址,以防止上传文件而影响程序运行速度。
2.springboot运行时报找不到XXX文件
解决办法:这是由于依赖版本问题导致的,需要检查springboot工程中用到的jar和spark用到的jar,例如常见的netty-all,slf4j-log4j12等,用一下标签去掉对应依赖。
需要替换的依赖:
<exclusion> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> </exclusion>
<exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion>
<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.17.Final</version> </dependency>
3.一般springboot的日志会和spark的冲突,如果不能完全排除依赖的话,可以在spark-submit命令中配置 --driver-java-options "-Dorg.springframework.boot.logging.LoggingSystem=none"。
4.常用的springboot打包方式是不可以运行在spark上的,需要用shard方式打包。