默认用户root
在 hadoop-env.sh 最下面配置的用户就是 root,如下:
export HDFS_DATANODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
为什么要创建用户
root用户权限过大,企业开发中是新创建用户,并为该用户设置权限
创建用户
必须在 hdfs服务器(即:hadoop1)上 创建 spark 用户,并指定 supergroup 用户组,还要刷新 hdfs 用户、用户组映射
useradd spark
设置密码:
passwd spark
创建 supergroup 组(因为 HDFS 默认用户组就是supergroup):
groupadd supergroup
将 spark 用户追加到 supergroup 组
usermod -a -G supergroup spark
刷新 hdfs 用户、用户组映射
hdfs dfsadmin -refreshUserToGroupsMappings
执行结果:
Refresh user to groups mapping successful
在 hdfs服务器(hadoop1) 测试
切换 spark 用户:
su spark
执行命令:
hadoop fs -mkdir /spark_test
创建文件夹成功
在 非hdfs服务器(hadoop1) 测试
所在机器必须有 spark 用户,不需要有 supergroup 组
执行下面命令创建用户:
useradd spark
切换 spark 用户:
su spark
执行命令:
hadoop fs -mkdir /spark_test2
创建文件夹成功