0 问题概述
在CDH中离线部署完spark2之后,执行spark2-submit命令测试部署的spark2是否可用,结果立即提示请安装spark gateway角色。说明我的spark2并未成功部署,或者它依赖的环境没有满足
1 问题详情
1.1 问题出现
如图,在spark2集群页面,选择【部署客户端配置操作】
一段时间后,部署崩溃!
1.2 查看日志
查看崩溃的日志,spark2部署的每个客户端有2份日志,1份stout,1份sterr
stout日志
sterr日志
扫描二维码关注公众号,回复:
11500965 查看本文章
初步判断,应该是找不到java环境,cat /etc/profile
.....
export JAVA_HOME=/usr/jdk8/java/jdk1.8.0_211
.....
java环境是有的呀,并且执行java -version都能显示出版本,咋找不到呢?
1.3 求助解决
实在理解不了这个问题,就求助了一位资深大佬,看了各种cloudera server日志,然后又重演了一通和我一样的过程操作后,看到了我上面看到的日志,检查了我的jdk环境。得出结论是——我的jdk环境配置不规范,于是将 jdk1.8.0_211 目录包拷到/usr/java/目录下,然后将我的java环境改为:
.....
export JAVA_HOME=/usr/java/jdk1.8.0_211
.....
再次部署spark2客户端,显示Successfully!
1.4 验证有效性
为了验证spark2是否真正部署成功,执行提交任务测试,测试示例代码中的 Pi 计算
spark2-submit --class org.apache.spark.examples.SparkPi /opt/cloudera/parcels/SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012/lib/spark2/examples/jars/spark-examples_2.11-2.4.0.cloudera2.jar
发现还是报错
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
这是root用户,写hdfs 用户目录,权限不够!
su - hdfs 切换hdfs用户,再次提交,一段时间后,控制台出现了结果数据
Pi is roughly 3.1404557022785116
再查看yarn
完美!
2 感悟
配置一些系统环境时,不可随意任性,有规范的时候,一定要遵循规范,否则很有可能踩坑!