我在CDH界面上部署spark2的时候一直都很顺利直到在部署客户端的时候,出现了标题中的错误,之前部署从来没有遇见过好慌呀~
然后就去找日志
/opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-agent/process/ccdeploy_spark2-conf_etcspark2conf.cloudera.spark2_on_yarn_1768873247522152195/logs
这真的是各种找啊~~~~最后发现JAVA_HOME它没有去读取我配置的家目录而是有自己默认的家目录/usr/java/default
找到这个思路以后我总不能重新部署java吧那前边部署的那些服务万一出问题岂不得不偿失然后我最终想到了软连接
就是给原来的java的家目录做一个简单的软连接到下图中默认的java的家目录,
解决方式
ln -s $JAVA_HOME(原来的) /usr/java/default
因为还有一种是之前的大佬教的要把java部署成下面的样子,要不然有些软件会出问题,所以我顺便做了一个这样的软连接,这样以防在以后的部署中再出现这种奇怪的问题。
[root@hadoop001 ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_45
软连接完成以后再在页面上重新部署客户端成功啦
运行spark案例
spark部署完成以后,要运行一个简单的小案例来确保部署是没有问题的
我们运行一个 π(派)的class
[root@test-hadoop01 examples]# pwd
/opt/cloudera/parcels/SPARK2/lib/spark2/examples/src/main/scala/org/apache/spark/examples
[root@test-hadoop01 examples]# ll
-rw-r--r-- 1 root root 1541 2018-08-30 06:49:37 SparkPi.scala
[root@test-hadoop01 examples]#
spark2-submit --master yarn --num-executors 1 --executor-memory 1G --executor-cores 1 --class org.apache.spark.examples.Spa rkPi /opt/cloudera/parcels/SPARK2/lib/spark2/examples/jars/spark-examples_2.11-2.2.0.cloudera3.jar
第一次运行这个命令的时候出现一个小报错
19/10/27 16:25:14 ERROR spark.SparkContext: Error initializing SparkContext.
org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
当时的截图没有留下,只留下了以上的报错内容
原因:root用户无法操作hdfs
有2种解决:
1.修改hdfs参数 dfs.permissions=false
如下图所示,不要勾选这个参数