AWS RDP中HDFS本地可列文件但读取报错,求解决方案
解决方案:HDFS读取文件时报
JniBasedUnixGroupsMapping: Error getting groups错误 核心问题排查与修复步骤
修正
dfs.permissions.superusergroup配置错误
你提到将该参数设为false是错误的——这个参数需要指定一个Unix用户组名(如supergroup或hadoop),而非布尔值。正确配置示例:<property> <name>dfs.permissions.superusergroup</name> <value>supergroup</value> <!-- 替换为你的HDFS超级用户组名称 --> </property>修改后重启HDFS Namenode和Datanode服务。
解决本地客户端用户映射问题
本地访问HDFS时,客户端会尝试将当前本地用户映射到服务器端的用户组,若本地用户在AWS RDP服务器无对应组则触发错误:- 临时方案:执行HDFS命令时指定超级用户身份:
hdfs dfs -cat /target/file/path -D HADOOP_USER_NAME=hdfs - 永久方案:在本地客户端的
hadoop-env.sh中添加:
或在export HADOOP_USER_NAME=hdfscore-site.xml中配置用户映射规则:<property> <name>hadoop.security.auth_to_local</name> <value>DEFAULT</value> </property>
- 临时方案:执行HDFS命令时指定超级用户身份:
验证权限配置生效状态
确认dfs.permissions=false是否生效,执行命令:hdfs getconf -confKey dfs.permissions若输出不为
false,检查hdfs-site.xml配置是否正确,且HDFS服务已完成重启。同步AWS RDP服务器用户组
确保HDFS超级用户组(如supergroup)存在,且HDFS进程所属用户(如hdfs)属于该组:# 检查用户所属组 groups hdfs # 若不在目标组内,添加用户到组 usermod -aG supergroup hdfs
内容的提问来源于stack exchange,提问作者Rikita Chakraborty
相关产品推荐
相关产品推荐

