hdfs是一个文件系统
类unix、linux
有用户概念
hdfs没有相关命令和接口去创建用户
信任客户端 <- 默认情况使用的 操作系统提供的用户
有超级用户的概念
linux系统中超级用户:root
hdfs系统中超级用户: 是namenode进程的启动用户
有权限概念 hdfs的权限是自己控制的 来自于hdfs的超级用户
既:
- 权限和组要对应上才能上传文件
面向操作系统 root是管理员 其他用户都叫【普通用户】
面向操作系统的软件 谁启动,管理这个进程,那么这个用户叫做这个软件的管理员
切换root搭建的HDFS 用god这个用户来启动
node01~node04: *)stop-dfs.sh 1)添加用户:root useradd god passwd god 2)讲资源与用户绑定(a,安装部署程序;b,数据存放的目录) chown -R god src chown -R god /opt/bigdata/hadoop-2.6.5 chown -R god /var/bigdata/hadoop 3)切换到god 需要免密 4)hdfs-site.xml、分发给node02~04 <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/god/.ssh/id_dsa</value> </property> 5)god : start-dfs.sh
用户权限验证实操:
node01: su god hdfs dfs -mkdir /temp hdfs dfs -chown god:ooxx /temp hdfs dfs -chmod 770 /temp node04: root: useradd good groupadd ooxx usermod -a -G ooxx good id good su good hdfs dfs -mkdir /temp/abc <失败 hdfs groups good: <因为hdfs已经启动了,不知道你操作系统又偷偷摸摸创建了用户和组 *node01: root: useradd good groupadd ooxx usermod -a -G ooxx good su god hdfs dfsadmin -refreshUserToGroupsMappings node04: good: hdfs groups good : good ooxx
hdfs dfs -mkdir /temp/abc
hdfs dfs -put aa.txt /temp/abc结论:默认hdfs依赖操作系统上的用户和组
start-dfs.sh 启动日志(第一次需要手动启动,并格式化)
文件权限解析:
为什么上面需要 :hdfs dfs -chmod 770 /temp解析: