1.前言
2.版本信息
2.1.文档版本
2.2.环境版本
2.3.CDH集群组件版本
3.前提
4.安装配置Kerberos
4.1.检查是否已经安装
4.2.安装Kerberos
4.2.1.Server节点安装Kerberos相关软件
4.2.2.Client节点安装Kerberos相关软件
4.3.配置Kerberos
4.3.1.kdc文件配置
4.3.2.krb5文件配置
4.3.3.同步krb5到Client(客户端)节点
4.3.4.生成Kerberos数据库
4.3.5.(可选)重新创建Kerberos数据库
4.3.6.创建Kerberos管理员主体/实例并授权
4.4.启动Kerberos并设置开机启动
4.4.1.Server节点启动Kerberos服务
4.4.2. Server节点设置开机启动Kerberos服务
4.4.3.检查启动情况
4.4.3.1.查看启动日志
4.4.3.2.Kinit管理员检查
4.4.3.3.客户端检查
4.5.常用命令
4.5.1.登录Kerberos
4.5.2.创建Kerberos主体
4.5.3.修改Kerberos主体密码
4.5.4.查询所有的Kerberos的主体
4.5.5.生成keytab密钥文件
4.5.6.删除Kerberos主体
4.5.7.主体认证
4.5.8.销毁凭证
4.5.9.启动重启停止Kerberos服务命令
4.6.安装和使用Kerberos异常问题
4.6.1.创建Kerberos数据库过程可能会在loading random data中等待很长时间
4.6.2.Kerberos启动后台日志提示异常:No such file or directory - whi
4.6.3.kinit通过keytab认证出现异常kinit: ???? while getting initi
4.6.4.kinit进行主体密码认证时候,明明密码正确,为什么一直提示密码错误
4.6.5.Kerberos创建数据库异常:Bad krb5 admin server hostname whi
4.6.6.进行kinit认证凭证异常:Cannot determine realm for host: hos
4.6.7.异常问题:Configuration file does not specify default r
4.6.8.异常问题:Incorrect net address
5.安装配置DNS本地域名
5.1.1.安装Dnsmasq
5.1.2. 配置Dnsmasq
5.1.2.1.查看dnsmasq的【配置路径】
5.1.2.2.修改dnsmasq.conf配置
5.1.3.修改resolv.conf配置
5.1.3.1.备份resolv.conf文件
5.1.3.2.修改resolv.conf配置
5.1.3.3.同步resolv.conf到其他节点
5.1.4.创建resolv.dnsmasq.conf文件并dns服务器的地址
5.1.5.创建dnsmasq.hosts文件
5.1.6.添加dnsmasq.hosts路径到dnsmasq.conf
5.1.7.同步dnsmsql.conf到其他节点
5.1.8.启动Dnsmasq并设置开机启动
5.1.9.测试Dnsmasq(每个节点)
5.1.10.本地域名检查(每个节点)
6.CDH集群添加Sentry组件
6.1.创建元数据库(Mysql)
6.2.准备Mysql驱动的Jar包并复制到Sentry
6.3.集群添加Sentry组件
7.CDH集群启动Kerberos
7.1.创建Kerberos管理员用户
7.2.删除掉Spark (Standalone)
7.3.集群中安装Spark服务(Spark On Yarn)
7.3.1.集群添加Spark服务
7.3.2.在Yarn服务中添加Gateway服务
7.3.3.在Hive服务修改spark_on_yarn_service为Spark
7.3.4.部署客户端配置重启集群
7.4.集群开启Kerberos
7.4.1.停止掉全部的服务
7.4.2.开启Kerberos
8.CDH集群配置修改
8.1.停止所有服务
8.1.1.停止CDH集群所有服务
8.1.2.停止Clodera Manage所有服务
8.2.Senter配置修改
8.2.1.管理员组添加admin用户和组,并删除其他用户
8.2.2.连接用户中添加admin用户和组
8.2.3.Sentry 服务高级配置代码段修改
8.3.HDFS配置修改
8.3.1.开启Hadoop安全身份验证
8.3.2.开启Hadoop安全授权
8.3.3.修改Hadoop组映射实现
8.3.4.启动访问控制列表
8.3.5.启动检查HDFS权限并启动Sentry同步
8.3.6.修改管理员用户和授权用户
8.4.Yarn配置修改
8.4.1.修改运行系统用户
8.4.2.修改最小用户ID
8.4.3.启用 ResourceManager AC
8.5.Hive配置修改
8.5.1.配置Sentry服务
8.5.2.HiveServer2关闭模拟
8.5.3.启动Hive仓库子目录继承权限
8.5.4.设置sentry.hive.testing.mode为false
8.5.5.设置hive.security.authorization.task.factory
8.5.6.设置Hive Metastor Server的hive-site.xml
8.6.HBase配置修改
8.6.1.设置HBasea安全身份证验证
8.6.2.启动HBase安全授权
8.6.3.启动HBase行级授权
8.7.Zookeeper配置修改
8.8.Kafka配置修改
8.8.1.设置Kafka安全身份验证
8.8.2.设置Kafka认证方式
8.8.3.配置kakfa.properties
8.8.4.Kafka支持命令行的Kinit认证
8.8.4.1.创建jaas文件
8.8.4.2.修改kafka-run-class.sh文件
8.8.5.生成producer.properties和consumer.properties文件
8.8.6.设置zookeeper.chroot
8.9.部署客户端配置并启动全部服务
9.集群各组件测试权限
9.1.创建各组件的Kerberos超级管理员的主体
9.1.1.创建admin主体 (用于Sentry的管理员)
9.1.2.创建hdfs主体
9.1.3.创建hbase主体
9.1.4.创建yarn主体
9.1.5.创建zookeeper主体
9.1.6.创建hive主体
9.1.7.创建kafka主体
9.1.8.创建spark主体
9.1.9.创建flume主体
9.2.测试用户准备
9.2.1.Linux创建用户
9.2.2.HDFS创建用户文件目录
9.2.3.Kerberos创建对应主体
9.3.HDFS权限检查测试
9.3.1.没有任何的Kerberos凭证情况下测试HDFS权限
9.3.2.通过身份凭证测试HDFS权限
9.4.Hive权限检测测试
9.4.1.创建Hive库的超级管理员
9.4.2.创建Hive测试数据库和测试表
9.4.2.1.创建Hive测试数据库
9.4.2.2.创建测试表
9.4.2.3.创建测试数据
9.4.2.4.导入测试数据到Hive测试表
9.4.3.给用户授权
9.4.3.1.库授权-给user1授权db1数据库的所有权限
9.4.3.2.库授权-给user2授权db2数据库的全部权限
9.4.3.3.表授权-给user3授权db2库下的table1表的全部权限
9.4.4.权限测试
9.4.4.1.管理员admin测试权限
9.4.4.2.用户user1测试
9.4.4.3.用户user2测试
9.4.4.4.用户user3测试
9.5.HBase权限授权测试
9.5.1.建立测试namespace
9.5.2.创建测试表
9.5.3.put测试数据到测试表
9.5.4.给用户授权
9.5.4.1.给user1授权namespace为test1_ns的读写创建删除权限
9.5.4.2.给user2授权namespace为test2_ns的只读权限
9.5.4.3.给user3授权namespace为test2_ns下的table1表读写权限(注意这样没有@了~)
9.5.5.权限测试
9.5.5.1.用户user1权限测试
9.5.5.2.用户user2权限测试
9.5.5.3.用户user3权限测试
9.6.Spark读取权限测试
9.6.1.测试user1用户通过Spark读取Hive的db1下面的表
9.6.2.测试user2用户通过SparkSql读取Hive的db1下面表
9.6.3.测试user3用户,它拥有db2下的table1的权限,但是没有table2的权限
9.7.Kafka权限测试
9.7.1.Kafka的super.users用户测试
9.7.1.1.管理员创建topic
9.7.1.2.创建生成生产者,并生成测试数据
9.7.1.3.创建消费者消费数据
9.7.2.Kafka的非super.users用户测试
9.7.3.(补充)如何添加Kafka授权
10.开启Kerberos后异常问题处理
10.1.Zookeeper集群启动异常
10.2.HBase的Master启动异常
10.2.1.异常1:com.google.protobuf.InvalidProtocolBufferExcep
10.2.2.异常2: A minimum HFile version of 3 is required to p
10.2.3.异常3:HBase file layout needs to be upgraded. You ha
10.2.4.异常4:因为 Service Monitor 未找到活动 Master
10.3.Spark异常问题
10.3.1.异常1: 授权用户(除了spark和hadopp)提交作业异常:ERROR spark.SparkC
10.3.2.异常2:a secret key must be specified via the spark.a
10.3.3.异常3:Spark部署客户端异常
10.3.4.异常4:yarn.YarnAllocator: Expected to find pending r
10.4.sentry 启动异常提示mysql的driver类找不到
10.5.Hive异常问题:Hive Metastore canary 创建数据库失败。
10.6.Kafka开启SASL验证后创建新的生产组报错
10.7.Kafka授权报错:KeeperErrorCode = NoAuth for /kafka-acl/
10.8.Kafka创建生产者异常:Failed to construct kafka producer
11.结语