为隔离Hadoop进程权限,避免使用root用户操作,需创建专用用户和组。
# 创建hadoop用户组
sudo groupadd hadoop
# 创建hadoop用户并加入hadoop组(-r表示系统用户,-g指定主组)
sudo useradd -r -g hadoop hadoop
# 设置hadoop用户密码(可选)
sudo passwd hadoop
说明:后续Hadoop相关操作均建议使用hadoop用户执行,提升安全性。
Hadoop安装目录(如/opt/hadoop)需归属hadoop用户及组,确保进程有权访问。
# 创建安装目录(若路径不同,替换为实际路径)
sudo mkdir -p /opt/hadoop
# 设置目录所有者及权限(755:所有者可读写执行,组和其他用户可读执行)
sudo chown -R hadoop:hadoop /opt/hadoop
sudo chmod -R 755 /opt/hadoop
说明:-R参数表示递归修改目录及其子文件/目录的权限。
为hadoop用户设置环境变量,确保能正确调用Hadoop命令。
# 编辑hadoop用户的.bashrc文件(需切换至hadoop用户)
su - hadoop
vim ~/.bashrc
在文件末尾添加以下内容(根据实际路径调整):
export JAVA_HOME=/usr/java/default # Java安装路径
export HADOOP_HOME=/opt/hadoop # Hadoop安装路径
export PATH=$PATH:$HADOOP_HOME/bin # 将Hadoop命令加入PATH
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop # 配置文件路径
保存后执行source ~/.bashrc使配置生效。
HDFS权限管理类似Linux文件系统,可通过hdfs dfs命令操作:
hdfs dfs -ls / # 查看HDFS根目录权限
hdfs dfs -chmod 755 /path/to/file_or_dir # 设置权限(755:所有者rwx,组和其他用户rx)
hdfs dfs -chown hadoop:hadoop /path/to/file_or_dir # 将所有者设为hadoop用户,组设为hadoop组
hdfs dfs -chmod -R 755 /user/hadoop # 递归修改/user/hadoop目录及其子项权限
说明:HDFS默认开启权限检查(dfs.permissions.enabled=true),需确保用户对目标路径有访问权限。
Hadoop集群节点间需通过SSH无密码登录,避免手动输入密码。
# 生成SSH密钥对(若已存在,跳过此步)
ssh-keygen -t rsa -P '' # 按回车键使用默认路径和空密码
# 将公钥复制到authorized_keys文件(实现本机免密登录)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 设置authorized_keys权限(防止未授权修改)
chmod 600 ~/.ssh/authorized_keys
说明:若为集群环境,需将hadoop用户的公钥分发到所有节点的authorized_keys中。
hdfs dfs -setfacl -m user:username:rwx /path/to/file # 给username用户添加rwx权限
core-site.xml和hdfs-site.xml,启用Kerberos认证并配置keytab文件。hadoop用户;core-site.xml、hdfs-site.xml)的权限是否正确(建议644);hadoop组(通过groups hadoop命令验证)。setenforce 0)或配置SELinux策略允许Hadoop访问。通过以上步骤,可完成Hadoop在Linux系统中的权限设置,确保集群运行安全稳定。