【大数据集群运维】解决使用Cloudera Manager 启动HDFS时遇到的问题: /tmp/.cloudera_health_monitoring_canary_files 创建父目录

一 HDFS 金丝雀

Canary 测试无法为 /tmp/.cloudera_health_monitoring_canary_files 创建父目录。

在这里插入图片描述

1 检查hdfs是否处于safemode,正常是off

[root@shuang conf.cloudera.hdfs]# hdfs dfsadmin -safemode get
Safe mode is OFF

2 检查hdfs datanode是否健康,磁盘空间是否空闲,可自行上传文件测试

[root@shuang conf.cloudera.hdfs]# hdfs dfsadmin -report
Configured Capacity: 67606098740 (62.96 GB)
Present Capacity: 34380423168 (32.02 GB)
DFS Remaining: 34380398592 (32.02 GB)
DFS Used: 24576 (24 KB)
DFS Used%: 0.00%
Replicated Blocks:
        Under replicated blocks: 0
        Blocks with corrupt replicas: 0
        Missing blocks: 0
        Missing blocks (with replication factor 1): 0
        Low redundancy blocks with highest priority to recover: 0
        Pending deletion blocks: 0
Erasure Coded Block Groups: 
        Low redundancy block groups: 0
        Block groups with corrupt internal blocks: 0
        Missing block groups: 0
        Low redundancy blocks with highest priority to recover: 0
        Pending deletion blocks: 0

-------------------------------------------------
report: Access denied for user root. Superuser privilege is required

解决 report: Access denied for user root. Superuser privilege is required

解决办法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


sudo -u hdfs  + 具体命令
再运行就ok了

解决办法2


到服务器上修改hadoop的配置文件:
[root@shuang conf.cloudera.hdfs]# cd  /etc/hadoop/conf.cloudera.hdfs
[root@shuang conf.cloudera.hdfs]# ls
__cloudera_generation__  __cloudera_metadata__  core-site.xml  hadoop-env.sh  hdfs-site.xml  log4j.properties  ssl-client.xml  topology.map  topology.py

然后在hdfs-core.xml, 找到 dfs.permissions 的配置项 ,

 将value值改为 false
在conf/hdfs-site.xml中加入


在这里插入图片描述
解决办法3


clouder manager 在web上操作流程:
 1)增加角色:HDFS->配置->检查HDFS 权限dfs.permissions这项不要打勾->保存更改->重启hdfs  
之后就可以用root用户

解决办法4


如果是java接口操作hdfs
在代码中添加如下信息即可,其中“root”是有访问hadoop集群的权限用户名

System.setProperty("HADOOP_USER_NAME", "root");

4检查/tmp目录是否存在

如果不存在,创建TEMP

[root@shuang conf.cloudera.hdfs]# hdfs dfs -ls /tmp
ls: `/tmp': No such file or directory
[root@shuang conf.cloudera.hdfs]# hdfs dfs -mkdir /tmp
mkdir: Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x

如果存在,文件夹修改权限

hdfs dfs -chmod 777 /tmp/

5 hadoop 权限错误 Permission denied: user=root, access=WRITE, inode="/":hdfs:super

关于不能执行Hadoop命令 并报权限问题执行错误

Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
mkdir: Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
put: Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x

这些类似的权限问题都属于同类问题,他是我说我们的执行Hadoop命令的用户没有,执行权限。

刚开始我想解决问题的思路是,将当前用户授权。(这种想法是不正确的,不要为了简化输入命令,就试图修改这些东西)

现在的想法:用的他指定的用户去执行

[root@cdh1 data]#sudo -u hdfs  hadoop fs -mkdir /newFile

或者[root@cdh1 data]#sudo -u hdfs  dfhs dfs  -mkdir /newFile

使用上面执行相应的命令就ok

我顺便说一下,为什么会出现这样的问题Permission denied
如果你是用tar 包解压缩的方式,手动配置的,肯定不会出现这些问题。
我第一次是用,cloudera manager 安装,选择的是enterprise 60天的那个。安装完成也没有问题。
第二次是用现在这种方式安装的。选择的是第一个,免费版。
其实这个也不算是安装上的问题。因为你用yarn安装的时候,他默认会用这个用户安装,这个就相当于,Linux的超级用户,他是Hadoop的超级用户组的用户。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牵牛刘先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值