在 Linux 上配置 HDFS 用户(通常是指用于运行 Hadoop HDFS 服务的系统用户,以及普通用户如何访问 HDFS),一般包含以下几个方面。下面按 常见场景 说明。
Hadoop 官方推荐 不要使用 root 运行 HDFS,而是创建专用系统用户。
useradd -m hdfs
passwd hdfs
通常还会创建:
useradd -m yarn
useradd -m mapred
Hadoop 安装目录及数据目录归属:
chown -R hdfs:hdfs /opt/hadoop
chown -R hdfs:hdfs /data/hadoop
/data/hadoop 一般包括:
dfs.namenode.name.dirdfs.datanode.data.dirsu - hdfs
start-dfs.sh
HDFS 的 超级用户 ≠ Linux root,而是:
hdfs)也就是说:
su - hdfs
hdfs dfs -mkdir /test
此时 hdfs 是 HDFS 超级用户。
普通用户需要:
HADOOP_HOMEcore-site.xmlexport HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
HDFS 用户名 = Linux 用户名
whoami
# 假设是 user1
hdfs dfs -mkdir /user/user1
hdfs dfs -put file.txt /user/user1/
若目录不存在会报错:
Permission denied
hdfs dfs -mkdir /user/username
hdfs dfs -chown username:username /user/username
hdfs dfs -chmod 755 /user/username
groupadd hdfsgroup
usermod -aG hdfsgroup username
HDFS 中:
hdfs dfs -chgrp hdfsgroup /data
如果使用 Kerberos:
kadmin.local
addprinc username@REALM
kinit username
hdfs dfs -ls /
/user/用户名❌ 不推荐,可能直接导致权限混乱
# 创建用户
useradd -m hdfs
# 授权目录
chown -R hdfs:hdfs /opt/hadoop /data/hadoop
# 启动
su - hdfs
start-dfs.sh
# 普通用户
hdfs dfs -mkdir /user/test
hdfs dfs -chown test:test /user/test
如果你是指:
可以告诉我具体场景,我可以给你更针对性的配置方案。