(自用小结)错误描述:Permission denied: user=dr.who, access=WRITE, inode=“/“:hadoop:supergroup:drwxr-xr-x

博客讲述了作者在使用Hadoop3.2.1时遇到的访问/tmp目录权限问题及解决过程。首先尝试通过修改/tmp目录权限解决,但未生效。接着尝试修改core-site.xml配置,将web用户设置为当前用户,重启集群后发现无法关闭节点。原因是Linux系统清理tmp目录导致PID文件丢失。解决方法是通过kill-9关闭进程,并在hadoop-env.sh中设置HADOOP_PID_DIR避免被清理。此外,还提到了不推荐的HDFS检查条件修改方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一开始四处搜索原因跟解决办法,大多数都是下面提到的两种办法,但是也碰到了一个大坑,属于是新手连环套了。。
翻阅了多个解决办法之后定位到是web用户默认使用的dr.who登录导致,一直纠结这个dr.who的设置,结果在hadoop3.2.1中一直没找到core-default.xml的配置,找了其他xml也没发现网上所谓的hadoop.http.staticuser.user=dr.who配置,最后只能先尝试使用了搜到的两种办法

一是直接修改/tmp目录的权限设置,操作如下,
[hadoop@server master]$ hdfs dfs -chmod -R 755 /
然后就可以正常访问/tmp目录下的文件了, 结果这法子使用了之后没生效。

二是我们可以通过修改core-site.xml,配置为当前用户,文件在hadoop根目录etc/hadoop下。

在configuration内添加即可
添加了之后,需要重启集群。重点来了。。。。
因为当时集群架设了很久一直没管,所以这次进行重启的时候完全没发现压根关不上节点。。
关闭集群的时候,一定要用jps检查,一定要用jps检查,一定要用jps检查。

查阅之后发现原因是因为机器的关闭机制是参阅的root指定的pid,是一个文件,默认保存在tmp下,而linux每30天会去清理这个tmp下的文件,导致文件删除也就没了pid也就关闭不了了。。

解决这个问题的办法是直接用kill -9 关闭进程,然后在根目录etc/hadoop下的 hadoop-env.sh中找到HADOOP_PID_DIR 设置相应路径后就不会再被清理了!hadoop-env.sh中进行设置

第三个解决方案是修改HDFS的检查条件,但是不推荐。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值