在 CentOS 上配置 HDFS 用户,通常是指:
1️⃣ 创建用于运行 HDFS 的系统用户
2️⃣ 配置该用户的权限、目录、免密等
3️⃣ 让 Hadoop 以该用户启动 HDFS
下面按 生产环境常用做法 一步步说明(以 hdfs 用户 为例)。
sudo useradd -m hdfs
sudo passwd hdfs
建议:
- 不要使用 root 启动 HDFS
- 所有 Hadoop 进程统一使用一个用户(如
hdfs或hadoop)
示例目录:
/opt/hadoop
修改目录属主:
sudo chown -R hdfs:hdfs /opt/hadoop
sudo mkdir -p /data/hdfs/namenode
sudo mkdir -p /data/hdfs/datanode
sudo chown -R hdfs:hdfs /data/hdfs
sudo chmod 700 /data/hdfs
hadoop-env.shexport HADOOP_USER_NAME=hdfs
或(推荐):
export HADOOP_HOME=/opt/hadoop
export JAVA_HOME=/usr/java/default
core-site.xml<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hdfs/datanode</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
</configuration>
HDFS 启动依赖 SSH。
su - hdfs
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
测试:
ssh localhost
su - hdfs
hdfs namenode -format
start-dfs.sh
检查进程:
jps
应看到:
hdfs dfs -ls /
创建目录测试:
hdfs dfs -mkdir /test
hdfs dfs -chown hdfs:hdfs /test
Permission denied
✅ 解决:
sudo chown -R hdfs:hdfs /data/hdfs
检查:
/data/hdfs/datanode
是否被其他用户占用或权限不对。
netstat -ntlp | grep 9870
✅ 建议规范
hdfs/opt/hadoop/data/hdfs如果你告诉我:
我可以给你 完全贴合你环境的配置示例。