提交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