HDFS概述

hdfs简介
  1. hdfs是类unix、linux的文件系统
  2. 有用户概念,但没有相关命令和接口去创建用户
  3. 信任客户端 ,默认使用操作系统提供的用户,谁启动的dfs,谁就是dfs的管理员
  4. 也可以扩展 kerberos、LDAP等,使用第三方用户认证系统
  5. 有超级用户的概念
#一般在企业中不会用root做什么事情

#超级用户
linux系统:root
hdfs系统: 是namenode进程的启动用户
  1. 有权限概念
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)