一、用户要求
1. 具体要求
以下使用说明均基于普通用户,安全集群对用户有以下要求:
- 集群中的每个节点都需要创建该用户
- 该用户需要属于hadoop用户组
- 需要创建该用户对应的Kerberos主体
2.实操
此处以 fancy 用户为例,具体操作如下
创建用户 (存在可跳过),须在所有节点执行
[root@hadoop102 ~]# useradd fancy
[root@hadoop102 ~]# echo fancy | passwd --stdin fancy
[root@hadoop103 ~]# useradd fancy
[root@hadoop103 ~]# echo fancy | passwd --stdin fancy
[root@hadoop104 ~]# useradd fancy
[root@hadoop104 ~]# echo fancy | passwd --stdin fancy
加入 hadoop 组,须在所有节点执行
[root@hadoop102 ~]# usermod -a -G hadoop fancy
[root@hadoop103 ~]# usermod -a -G hadoop fancy
[root@hadoop104 ~]# usermod -a -G hadoop fancy
创建主体
[root@hadoop102 ~]# kadmin -p admin/admin -wadmin -q"addprinc -pw fancy fancy"
二、访问 HDFS 集群文件
1. Shell 命令
A、认证
[fancy@hadoop102 ~]$ kinit fancy
B、查看当前认证用户
[fancy@hadoop102 ~]$ kinit fancy
C、执行命令
[fancy@hadoop102 ~]$ hadoop fs -ls /
D、注销认证
[fancy@hadoop102 ~]$ kdestroy
E、再次执行查看命令
[fancy@hadoop102 ~]$ hadoop fs -ls /
2. web 页面
A、安装 Kerberos 客户端
下载地址:http://web.mit.edu/kerberos/dist/kfw/4.1/kfw-4.1-amd64.msi
下载之后按照提示安装
编辑 C:\ProgramData\MIT\Kerberos5\krb5.ini 文件,内容如下
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
forwardable = true
rdns = false
default_realm = EXAMPLE.COM
[realms]
EXAMPLE.COM = {
kdc = hadoop102
admin_server = hadoop102
}
[domain_realm]
B、配置火狐浏览器
打开浏览器,在地址栏输入 “about:config” ,点击回车
搜索 “network.negotiate-auth.trusted-uris” ,修改值为要访问的主机名(hadoop102)
搜索 “network.auth.use-sspi”,双击将值变为 false
C、认证
启动 Kerberos 客户端,点击 Get Ticket
输入主体名和密码,点击OK
认证成功
D、访问 HDFS
E、注销认证
F、重启浏览器,再次访问HDFS
三、提交 MapReduce 任务
A、认证
[fancy@hadoop102 ~]$ kinit fancy
B、提交任务
[fancy@hadoop102 ~]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 1 1