HDFS概述
hdfs简介
- hdfs是类unix、linux的文件系统
- 有用户概念,但没有相关命令和接口去创建用户
- 信任客户端 ,默认使用操作系统提供的用户,谁启动的dfs,谁就是dfs的管理员
- 也可以扩展 kerberos、LDAP等,使用第三方用户认证系统
- 有超级用户的概念
#一般在企业中不会用root做什么事情
#超级用户
linux系统:root
hdfs系统: 是namenode进程的启动用户
- 有权限概念
hdfs的权限是自己控制的 来自于hdfs的超级用户
管理员
操作系统:root是【管理员】,其他用户都叫【普通用户】。
系统软件:谁启动这个进程,谁就是这个软件的管理员。
Linux用户命令
#创建god用户
useradd god
#进入god用户
su god
#设置god用户密码
passwd god
#创建ooxx组
groupadd ooxx
#good用户添加到ooxx组
usermod -a -G ooxx good
#查看good用户所在组信息
id good
#查看这端口服务详细信息
ps -fe | grep 端口号
HDFS分配权限
每台节点都要做
添加用户god
...
用户权限资源绑定
chown -R god src
#安装部署程序
chown -R god /opt/bigdata/hadoop-2.6.5
#数据存放的目录
chown -R god /var/bigdata/hadoop
给god做免密
要求:
每台节点都能访问自己
两台NN都能访问其他人
#拿到.ssh
ssh localhost
#小提示:公钥分发后,SSH访问需要读取公钥,但是god没有访问公钥的权限,所以还是不能免密。需要修改一下公密钥权限。
hdfs-site.xml配置免密
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/god/.ssh/id_rsa</value>
</property>
jps查看端口信息
...
试验
在HDFS中:
god可以向root写目录
root不能向god写目录
HDFS分配用户组
HDFS修改目录权限
#在NameNode所在节点配置!
#hdfs创建文件夹
hdfs dfs -mkdir /temp
#hdfs目录temp添加到ooxx组
#组不用事先创建,写个字符串就能用
hdfs dfs -chown god:ooxx /temp
#修改组770权限
hdfs dfs -chmod 770 /temp
操作系统添加用户与组
#tongyuzhe1中:
1.添加good用户
2.添加ooxx的组
3.good用户添加到ooxx组
4.进入god
5.让NN重新识别
hdfs dfsadmin -refreshUserToGroupsMappings
#tongyuzhe4中
1.添加good用户
2.添加ooxx的组
3.good用户添加到ooxx组
4.查看good用户所在组信息
5.查看当前hdfs用户,以及所在组
hdfs groups
#结论
hdfs没有权利创建用户以及组,只能使用系统创建出来的用户以及组
默认hdfs依赖操作系统上的用户和组
hdfs api 实操:
JDK要和集群版本一致
对于hdfs开发环境的client权限
#优先级2>1
1.参考系统登录用户名:不常用
2.参考环境变量:HADOOP_USER_NAME god
3.代码中给出。
maven(构建工具):
1.包含了依赖管理:pom
2.pom网站:
https://mvnrepository.com/
3.GAV定位
4.hdfs的pom组成(maven所需):
hadoop:(common、hdfs、yarn、mapreduce)