配置 HDFS-创建 Kerberos 对应的账户设置 Keytab 文件|学习笔记

简介: 快速学习配置 HDFS-创建 Kerberos 对应的账户设置 Keytab 文件

开发者学堂课程【快速掌握 Hadoop 集成 Kerberos 安全技术配置 HDFS-创建 Kerberos 对应的账户设置 Keytab 文件】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/708/detail/12561


配置 HDFS-创建 Kerberos 对应的账户设置 Keytab 文件


内容介绍:

一、添加用户

二、配置 HDFS 相关的 Kerberos 账户

三、创建数据目录


一、添加用户

Groupadd hadoop;useradd hdfs-g hadoop-p hdfs;useradd hive-

-g hadoop-p hive;useradd yarn-g hadoop-yarn;useradd mapred -g hadoop -p mapred

语句已经执行,跑一遍确保没问题,执行,提示创建好。

[root@cdh0~]#groupadd hadoop;useradd hdfs-g hadoo p- phdfs

useradd hive-g hadoop-p hive;useradd yarn-g hadoop-p yarn;us

eradd mapred-g hadoop-p mapred groupadd: group 'hadoop’al

ready exists

useradd: user 'hdfs’ already exists

useradd: user 'hive' already exists

useradd: user 'yarn’ already exists

useradd: user 'mapred’already exists

[root@cdh0 ~]#

ch0 cdh1 cdh2 均执行


二、配置 HDFS 相关的 Kerberos 账户

namenode 指定 nn/cdh0.itcast.cn@ITCAST.CN 账户,如果想要启动namenode 就必须拿到账户对应的车票。

1.在每个节点执行 mkdir /etc/security/keytabs

每个节点创建 mkdir /etc/security/keytabs 文件夹,进行 e

tc/security/keytabs,为空。keytabs 表示免密登录的文件,拿到 keytabs 文件相当于通行证。

[root@cdh0~]#mkdir/etc/security/keytabs

[root@cdh0 ~]#cd /etc/secur

securetty security/

[root@cdh0~]#cd/etc/security/keytabs/

[root@cdh0 keytabs]#11

total 0

执行 kinit 想拿到 test/admin@ITCAST.CN 账户车票,回车需要输入密码才能拿到账户车票。有 keytabs 文件后输入 kinit-kt xxx.keytabs 加账户名,不需要输入密码,keytabs 文件将密码输入。

[root@cdh0 keytabs]#kinit test/admin@ITCAST.CN

Password for test/admin@ITCAST.CN:

[root@cdh0 keytabs]#kinit-kt xxx.keytab test/admin@ITCAST.CN

kinit:Keytable file'xxx.keytab’not found while getting initial credentials

启用 namenode 需要使用 nn/cdh0.it.cast.cn@ITCAST.CN

如果过期需要重新拿车票,没有给免密码的 keytable 文件,需要人工输入密码,人不在电脑前不能输入密码,无法工作。所以需要自动完成工作,设置 keytable 文件,不需要输入密码就能认证账户,此文件至关重要,不能轻易传给他人。

2.配置 cdh0上面运行的服务对应的 Kerberos 账户

进入 admin 管理界面,当前认证 test/admin 账户属于 admin 账户,使用 test/admin@ITCAST.CN 可进入admin 后台。Kadmin 回车,输入密码,进入 Kerberos 的 admin后台。

Default principal:test/admin@ITCAST.CN

Valid starting Expires Service principal

09/27/19 17:43:4609/28/19 17:43:46 krbtgt/ITCAST.CN@ITCAST.C

N

renew until 09/27/19 17:43:46

[root@cdh0 keytabs]# kadmin

Authenticating as principal test/admin@ITCASTCN with password

Password for test/admin@ITCAST.CN:

cdh0 运行 namenode、secondarynamenode、https 相关服务,比如 namenode 浏览器页面需要 https 托管,需要创建三个账户。

创建 namenode 的账户,randkey 不指定密码,系统随机创建密码,输入addprinc -randkey nn/cdh0itcast.cn@ITCAS,回车。

提示账户创建成功

kadmin: addprics -randkeynn/cdh0.itcast.cn@ITCAST.CN

kadmin:Unknown request"addprics".Type "?" for a request list.

kadmin: addprinc -randkeynn/cdh0.itcast.cn@ITCAST.CN

WARNING:no policy specified for nn/cdh0.itcast.cn@ITCAST.CN; de

faulting to no policy

Principal “nn/cdh0.itcast.cn@ITCAST.CN"created.

kadmin: addprinc -randkeynn/cdh0.itcast.cn@ITCAST.CN

创建 secondarynamenode 的账户

输入 addprinc -randkey rm/cdh0.itcast.cn@ITCAST.CN 回车。

kadmin: addprics -randkeyrm/cdh0.itcast.cn@ITCAST.CN

kadmin:Unknown request"addprics".Type "?" for a request list.

kadmin: addprinc -randkeyrm/cdh0.itcast.cn@ITCAST.CN

WARNING:no policy specified for rm/cdh0.itcast.cn@ITCAST.CN; de

faulting to no policy

Principal “rm/cdh0.itcast.cn@ITCAST.CN"created.

kadmin: addprinc -randkeyrm/cdh0.itcast.cn@ITCAST.CN

创建用于 https 服务的相关账户

addprinc -randkey HTTP/cdh0.itcastcnITCAST.CN

kadmin:addprinc-randkeyHTTP/cdh0.itcast.cn@ITCAST.CN

WARNING:nopolicy specified for HTTP/cdh0.itcast.cn@ITC

AST.CN;defaulting to no policy

Principal “HTTP/cdh0.itcast.cn@ITCAST.CN"created.

# 防止启动或者操作的过程中需要输入密码,创建免密登录的 kevtab 文件

# 创建 nn 账户的 keytab

使用 ktadd 命令,指定参数-k,输入 etc/security/keytabs/nn.servic

e.keytab, keytab 对应 nn/cdh0.itcast.cn@ITCAST

.CN 账户,给此账户创建 keytab 文件。回车,没有报错创建成功。

ktadd-k/etc/security/keytabs/nn.service.keytabnn/cdh0.itcast.cn

@ITCAST.CN

# 创建 rm 账户的keytab

ktadd-k/etc/security/keytabs/sn.service keytab rm/cdh0.itcast.cn

@ITCAST.CN

#创建 HTTP 账户的 keytab

创建文件名回车

ktadd-k/etc/security/keytabs/spnego.service keytab HTTP

/cdh0.itcast.cn@ITCAST.CN

退出 admin,在 /etc/security/keytabs 目录下

三个 keytab 创建成功最终得到:

-r--------1root root 406 Sep 27 17:48 nn.service.keytab

-r--------1 root root 406 Sep 27 17:48 rm.service.keytab

-r--------1root root 418 Sep 27 17:48 spnego.service.keytab

设置对应权限,namenode 需要使用 nn,hdfs 账户,为了别的账户可以读取设置权限 chmod 400,400权限是只允许本账户读取,其它用户没有任何权限。

[root@cdh0 keytabs]#chmod 400*

[root@cdh0 keytabs]#11

total 12

-r--------1root root 406 Sep 27 17:48 nn.service.keytab

-r--------1 root root 406 Sep 27 17:48 rm.service.keytab

-r--------1root root 418 Sep 27 17:48 spnego.service.keytab

修改权限后修改所属,nn 属于 hdfs、rm 属于 yarn、spnego 属于 hdfs。

[root@cdh0 keytabs]#chown hdfs:hadoop nn.service.keytab

[root@cdh0 keytabs]#chown yarn:hadoop rm.service.keytab

[root@cdh0 keytabs]#chown hdfs:hadoop spnego.service.keytab

[root@cdh0 keytabs]#11

total 12

r--------1hdfs hadoop 406 Sep 2717:48 nn.service.keytab

r--------1yarn hadoop 406 Sep 27 17:48 rm.service.keytab

r--------1hdfs hadoop 418 Sep 2717:48 spnego.service.keytab

spnego.service.keytab 400有问题,除了 namenode、data

node 使用 http 服务,resourcemanager 也需要读取文件。400权限说明只有 hdfs 账户才能访问文件,yarm、hdfs 都属于 hadoop 组,给组权限。

[root@cdh0 keytabs]#chmod 440 spnego.service keytab

[root@cdh0 keytabs]#11

total 12

r--------1hdfs hadoop 406 Sep 2717:48 nn.service.keytab

r--------1yarn hadoop 406 Sep 27 17:48 rm.service.keytab

r--r------1hdfs hadoop 418 Sep 2717:48 spnego.service.keytab

cdh0 配置完毕,cdh0运行 namenode、resourcemanager、http 三个服务。

3.配置 cdh1和 cdh2

cdh1和 cdh2 作为 hadoop 集群的节点,运行 datanode、nodemanager 服务,http ,datanode、nodemanager 有自己的管理界面,需要三个文件三个账户,执行。

klist 已经注册 test/admin@ITCAST.CN,直接执行 kadmin,输入 admin 密码进入后台。添加账户 addprinc-randkey,指定账户名 dn,randkey 表示随机密码。回车,账户创建完成。

[root@cdh1~]#datanode nodemanager http^c

[root@cdh1 ~]#[root@cdh1 ~]#

[root@cdh1 ~]# klist

Ticket cache: FILE:/tmp/krb5cc_0

Default principal:test/admin@ITCAST.CN

Valid starting Expires Service principal

09/27/19 17:33:52 09/28/1917:33:52 krbtgt/ITCAST.CN@ITCAST.C

N

renew until 09/27/19 17:33:52

[root@cdh1 ~]# kadminAuthenticating as principal test/admin@ITCAST.CN with password.

Password for test/admin@ITCAST.CN:

kadmin: addprinc -randkey dn/WARNING:no policy specified for dn/@ITCAST.CN; defaulting to nopolicy

Principal"dn/@ITCAST.CN"created.

kadmin: addprinc -randkey dn/cdh1.itcast.cn@ITCAST.CNWARNING:no policy specified for dn/cdh1.itcast.cn@ITCAST.CN; defaulting to no policy

Principal"dn/cdh1.itcast.cn@ITCAST.CN"created.nm 回车,http 账户,回车。

kadmin: addprinc -randkeynm/cdh1.itcast.cn@ITCAST.CNWARNING:no policy specified for nm/cdh1.itcast.cn@ITCAST.CN; defaulting to no policy

Principal "nm/cdh1.itcast.cn@ITCAST.CN"created.

kadmin:addprinc-randkeyHTTP/cdh1.itcast.cn@ITCAST.CNWARNING:no policy specified for HTTP/cdh1.itcast.cn@ITCAST.CN:defaulting to no policy

Principal“HTTP/cdh1.itcast.cn@ITCAST.CN"created.

指定 ktadd -k 参数,etc/security/keytabs/dn.service.keyta

bdn/cdh1.itcast.cn@ITCAST.CN 回车

kadmin:ktadd-k/etc/security/keytabs/dn.service.keytabdn/cdh1.i

tcast.cn@ITCAST.CN

nm 对应 keytab 文件

kadmin:ktadd-k/etc/security/keytabs/nm.service.keytabnm/cdh1

.itcast.cn@ITCAST.CN

HTTP 对应文件名

kadmin:ktadd-k/etc/security/keytabs/spnego.service.keytab HTT

P/cdh1.itcast.cn@ITCAST.CN

退出查看 /etc/security/keytabs/

-rw--------1root root 406 Sep 27 17:53 dn.service.keytab

-rw--------1 root root 406 Sep 27 17:53nm.service.keytab

-rw--------1root root 418 Sep 27 17:53 spnego.service.keytab

修改权限400,datanode 改为 hdfs 账户,resourcemanager 改为 yarn 账户,HTTP 改为 hdfs 账户。

[root@cdh1 keytabs]# chmod 400 *

[root@cdh1 keytabs]#11 total 12

-r--------1root root 406 Sep 27 17:53 dn.service.keytab

-r--------1 root root 406 Sep 27 17:53nm.service.keytab

-r--------1root root 418 Sep 27 17:53 spnego.service.keytab

[root@cdh1 keytabs]# chown hdfs:hadoop dn.service.keytab

[root@cdh1 keytabs]# chown yarn:hadoop nm.service.key tab

[root@cdh1 keytabs]# chown hdfs:hadoop spnego.service.key tab

[root@cdh1 keytabs]#11

total 12

r--------1hdfs hadoop 406 Sep 2717:53 dn.service.keytab

r--------1yarn hadoop 406 Sep 27 17:53nm.service.keytab

r--------1hdfs hadoop 418 Sep 2717:53 spnego.service.keytab

spnego 文件 chmod 440,表示主用户可以读取

[root@cdh1 keytabs]# chmod 440 spnego.service.keytab [root@cdh1 keytabs]#11

total 12

r--------1hdfs hadoop 406 Sep 2717:53 dn.service.keytab

r--------1yarn hadoop 406 Sep 27 17:53nm.service.keytab

r--r------1hdfs hadoop 418 Sep 2717:53 spnego.service.keytab

cdh2 机器,操作相同。

有 test 账户可进入 admin 后台,输入 admin 账户密码。

cdh2同样有 datanode,创建 kadmin: addprinc -randkeydn/cdh2.itcast.cn@ITCAST.CN

创建 nm

kadmin: addprinc -randkey nm/cdh2.itcast.cn@ITCAST.CN

创建 HTTP

kadmin:addprinc-randkeyHTTP/cdh2.itcast.cn@ITCAST.CN

添加 ktadd 文件

kadmin:ktadd-k/etc/security/keytabs/dn.service.keytab dn/cdh2.i

tcast.cn@ITCAST.CN

kadmin:ktadd-k/etc/security/keytabs/nm.service.keytab nm/cdh

2.itcast.cn@ITCAST.CN

Kadmin:ktadd-k/etc/security/keytabs/spnego.service.keeytab HTT

P/cdh2.itcast.cn@ITCAST.CN

退出查看 /etc/security/keytabs/

-rw--------1root root 406 Sep 27 17:55 dn.service.keytab

-rw--------1 root root 406 Sep 27 17:55 nm.service.keytab

-rw--------1root root 418 Sep 27 17:55 spnego.service.keytab

修改权限400,datanode 改为 hdfs 账户,resourcemanag

er 改为 yarn 账户,HTTP 改为 hdfs 账户。

[root@cdh2 keytabs]# chmod 400 *

[root@cdh2 keytabs]#11 total 12

-r--------1root root 406 Sep 27 17:55 dn.service.keytab

-r--------1 root root 406 Sep 27 17:55nm.service.keytab

-r--------1root root 418 Sep 27 17:55 spnego.service.keytab

[root@cdh2 keytabs]# chown hdfs:hadoop dn.service.keytab

[root@cdh2 keytabs]# chown yarn:hadoop nm.service.key tab

[root@cdh2 keytabs]# chown hdfs:hadoop spnego.service.key tab

[root@cdh2 keytabs]#11

total 12

r--------1hdfs hadoop 406 Sep 2717:55 dn.service.keytab

r--------1yarn hadoop 406 Sep 27 17:55nm.service.keytab

r--------1hdfs hadoop 418 Sep 2717:55 spnego.service.keytab

HTTP 改为440权限

[root@cdh2 keytabs]# chmod 440 spnego.service.keytab [root@cdh2 keytabs]#11

total 12

r--------1hdfs hadoop 406 Sep 2717:55 dn.service.keytab

r--------1yarn hadoop 406 Sep 27 17:55nm.service.keytab

r--r------1hdfs hadoop 418 Sep 2717:55 spnego.service.keytab


三、创建数据目录

执行,回车

mkdir-p/data/nn;mkdir/data/dn;mkdir/data/nm-local;mkdir/data/nm-log;mkdir /data/mr-history

cd 到 data

[root@cdh0keytabs]#mkdir-p/data/nn;mkdir/data/dn;mkdir/data/nm-local;mkdir/data/nm-log;mkdir/data/mr-history

root@cdh0 keytabs]# cd /

root@cdh0 /]#cd /data/

[root@cdh0 data]# 11

total 20

drwxr-xr-x 2 root root 4096 Sep 27 17:56 dn

drwxr-xr-x 2 root root 4096 Sep 27 17:56 mr-history

drwxr-xr-x 2 root root 4096 Sep 27 17:56 nm-local

drwxr-xr-x 2 root root 4096 Sep 27 17:56 nm-log

drwxr-xr-x 2 root root 4096 Sep 27 17:56 nn

/data/nn:namenode 数据目录

/data/dn:datanode 数据目录

/data/nm-local;/data/nm-log:nodemanager 相关目录

/data/mr-history:mr history 目录

cdh0机器上只需要 nn、history。

复制命令,在 cdh1、cdh2执行。

创建 log 文件:

mkdir -p /bigdata/hadoop-2.6.0-cdh5.14.4/logs/hadoop

mkdir /bigdata/hadoop-2.6.0-cdh5.14.4/logs/yarn

每台机器都执行,路径可根据自己需求修改。

bigdata/hadoop 里有 logs 文件夹创建 yarn,将yarn、hadoop、hdfs 相关日志分离,不在同一个 logs

相关文章
|
20天前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
81 34
|
2月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
185 5
|
2月前
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
50 3
|
2月前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
163 4
|
2月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
96 4
|
2月前
|
分布式计算 Java Hadoop
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
49 2
|
2月前
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
46 1
|
2月前
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
58 1
|
2月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
196 6
|
2月前
|
SQL 分布式计算 监控
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
72 3

热门文章

最新文章