- 第一个问题:再安装完spark后,需要重新部署客户端配置时,执行到最后一个步骤:报错
仅完成 0/4 个步骤。首个失败:主机 staging-master (id=1) 上的客户端配置 (id=34) 已使用 1 退出,而预期值为 0。
原因:因为cm安装spark不会去环境变量去找java,而是去/usr/java/default查找
这个在机器上:
mkdir /usr/java
ln -s /opt/module/jdk1.8.0_144/ /usr/java/default
但是却还没有解决,然后找到了一个正解:
我看到了通过将/ usr / java / default链接到$ {JAVA_HOME}来解决问题的其他技巧。
实际上它可以解决问题,但这不是根本的解决方案
在$ {CM_PATH} /lib64/cmf/service/client/deploy-cc.sh和$ {CM_PATH} / lib64 / cmf / service / common / cloudera-中使用/ usr / java / default到$ {JAVA_HOME}的链接config.sh,请参阅此处
代码显示了您可以将其他var链接到$ {JAVA_HOME},而不仅是 / usr / java / default
所以我不认为主机上的链接JAVA_HOME很方便
您可以在主机页面的cdh管理器中设置JAVA_HOME,在cdh管理器中设置主机环境以解决此问题,
这是步骤:CDH管理器->所有主机-> $ {error_host}->配置-> JAVA HOEM目录
设置完后,重新部署配置文件OK.集群由于改动这个配置需要重新启动。
- 第二个问题:spark2-shell 启动 报错
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream
at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefaultSparkProperties$1.apply(SparkSubmitArguments.scala:123)
at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefaultSparkProperties$1.apply(SparkSubmitArguments.scala:123)
at scala.Option.getOrElse(Option.scala:120)
at org.apache.spark.deploy.SparkSubmitArguments.mergeDefaultSparkProperties(SparkSubmitArguments.scala:123)
at org.apache.spark.deploy.SparkSubmitArguments.<init>(SparkSubmitArguments.scala:109)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:114)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
spark 安装时没安装完整:
1./opt/cloudera/parcels/SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354/etc/spark2/conf.dist/ 配置文件夹为空
解决:cp /opt/cloudera/parcels/CDH-5.12.2-1.cdh5.12.2.p0.4/etc/spark/conf.dist/* /opt/cloudera/parcels/SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354/etc/spark2/conf.dist/
2.在cdh上添加hadoop classpath
export SPARK_DIST_CLASSPATH=$(/opt/cloudera/parcels/CDH-5.12.2-1.cdh5.12.2.p0.4/bin/hadoop classpath)
重启动spark2。再次执行 spark2-shell