Hive hdfs Exception:Name node is in safe mode.及Access denied for user root. Superuser privile问题解决方法

问题起因:定时执行azkaban任务时报错:WARN security.UserGroupInformation: PriviledgedActionException as:hadoop (auth:SIMPLE) cause:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot delete /user/hadoop/.staging/job_1519809873961_6227. Name node is in safe mode.

然后xshell连接服务器切hive查看原因,发现hive无法进入Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /tmp/hive/hadoop/2f76618a-3efd-4dad-abe3-290b2d40a523. Name node is in safe mode.

发现是Namenode处于安全模式

使用hadoop dfsadmin -safemode leave命令关闭安全模式无效

权限不足,sudo su 切root账户执行依然权限不够。

最终解决

方案1

ps -ef

看一下运行hdfs的用户是谁,再切到该用户下

root 11980 11954 0 14:27 ? 00:00:23 python2.6 /opt/cm-5.7.0/lib64/cmf/agent/build/env/bin/flood

postfix 12065 1078 0 14:29 ? 00:00:00 pickup -l -t fifo -u

root 14740 1 0 14:55 ? 00:00:00 sshd: root@pts/0

root 14765 14740 0 14:55 pts/0 00:00:00 -bash

root 15158 1 0 14:58 ? 00:00:00 /usr/sbin/sshd

hdfs 16493 11954 2 15:19 ? 00:00:29 /usr/java/jdk1.7.0_67//bin/java -Dproc_namenode -Xmx1000m -Dhdfs.audit.logg

hdfs 16523 11954 1 15:19 ? 00:00:14 /usr/java/jdk1.7.0_67//bin/java -Dproc_secondarynamenode -Xmx1000m -Dhdfs.a

root 19304 8259 1 15:43 pts/1 00:00:00 ps -ef

su - hdfs

再运行就ok了

hdfs dfsadmin -safemode leave

解决办法2

到服务器上修改hadoop的配置文件:conf/hdfs-core.xml, 找到 dfs.permissions 的配置项 , 将value值改为 false

在conf/hdfs-site.xml中加入

dfs.permissions

false

解决办法3

clouder manager 在web上操作流程:

1)增加角色:HDFS->配置->检查HDFS 权限dfs.permissions这项不要打勾->保存更改->重启hdfs

之后就可以用root用户

猜你喜欢

转载自blog.csdn.net/CaptainJava/article/details/82253557