【异常】Caused by: java.lang.ClassNotFoundException: org.influxdb.InfluxDBFactory
提交Spark代码,去指定的application下查看logs下的stderr文件,提示:
Caused by: java.lang.ClassNotFoundException: org.influxdb.InfluxDBFactory,这个类是java的类。
那么就是spark的包中没有这个InfluxDBFactory类的jar包,所以应该把import org.influxdb.{InfluxDB, InfluxDBFactory}相关的jar包放到集群上去,提交spark程序的时候带上这些jar包。所所以去maven仓库中拿到InfluxDB相关的jar包:influxdb-java-2.5.jar上传到Linux,修改提交Spark程序的命令:
spark-submit \
--name OnLineLogAnalysisTest1 \
--class com.importpack.OnLineLogAnalysis \
--master yarn \
--deploy-mode cluster \
--driver-memory 1G \
--executor-memory 1G \
--executor-cores 1 \
--num-executors 3 \
--jars /home/hadoop/lib/influxdb-java-2.5.jar \--------->添加jar包
/home/hadoop/lib/ruozetest-1.0.jar