错误Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream排查思路

spark1(默认CDH自带版本)不存在这个问题,主要是升级了spark2(CDHparcel升级)版本安装后需要依赖到spark1的旧配置去读取hadoop集群的依赖包。

1./etc/spark2/conf目录需要指向/hadoop1/cloudera-manager/parcel-repo/SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904/etc/spark2/conf.dist

(命令ln -s /hadoop1/cloudera-manager/parcel-repo/SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904/etc/spark2/conf.dist /etc/spark2/conf)

2.指向的目录里的spark-env.sh里面必须有这两个配置其中一个,都是去引用了hadoop环境jar包

(export SPARK_DIST_CLASSPATH=$(paste -sd: "$SELF/classpath.txt")或export SPARK_DIST_CLASSPATH=$(hadoop classpath))

3.利用oozie管理启动spark应用需要关注这个配置参数:oozie.service.SparkConfigurationService.spark.configurations 值:*=/etc/spark2/conf,需要把这个参数同步到每一台机器。这个参数含义是oozie启动spark时候哪里找配置文件