安装CDH,初始化HDFS的过程中报错
Cannot create directory /tmp. Name node is in safe mode
hdfs在启动开始时会进入安全模式,这时文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。
解决办法:
- 可以等待其自动退出安全模式(自己电脑虚拟机搭建的话就别等了,别问为啥,问就是配置低,等一年)
- 使用手动命令来离开安全模式
hadoop dfsadmin -safemode leave
注意这里不能使用root用户或其他,必须用 hdfs 用户,不然会报这个:
Access denied for user root. Superuser privilege is required
ps -ef
看下 hdfs 的用户是谁
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
不出意外默认就是 hdfs
接下来切换到hdfs:su hdfs
,之后再执行 hadoop dfsadmin -safemode leave
就退出安全模式了。
但是注意还可能会报这个错:This account is currently not available
这个也很好办,看这个https://blog.csdn.net/weixin_44285445/article/details/117569560就可以了
代码语言:javascript复制# 还有两种解决办法,不过要是生产环境的话,在用之前要评估一下是否可以使这样搞
# 方法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用户