在使用 cloudera manager 安裝 hdfs 的過程中,報錯 using /usr/java/jdk1.7.0_67/ as JAVA_HOME using 5 as CDH_VERSION using /opt/cm-5.7.0/run/cloudera-scm-agent/process/25-hdfs-NAMENODE-createtmp as CONF_DIR using as SECURE_USER using as SECURE_GROUP unlimited Directory /tmp does not currently exist. Unable to create directory /tmp; see stderr log.
查看agent日誌發現 Access denied for user root. Superuser privilege is required
此時你需要離開hdfs的安全模式
解決辦法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用戶