1.文档编写目的
Fayson在前面的文章介绍了如何为CDH集群启用Kerberos,在集群启用Kerberos后,会对现有环境的部分代码做改造,有些人觉得使用起来不方便,想取消Kerberos。本篇文章Fayson主要介绍如何禁用CDH集群的Kerberos及禁用后对各组件服务的测试。
注意:本文禁用Kerberos属于比较暴力的方式,未在正式成产环境做严格测试,操作方式仅供参考,建议环境为开发/测试/Poc环境。
- 内容概述
1.集群环境说明
2.禁用Kerberos及启动服务
3.验证服务及各个服务功能
4.总结
- 测试环境
1.CM和CDH版本为5.16.1
2.集群已启用Kerberos
3.集群已启用Sentry
2.集群环境介绍
1.CDH集群已启用Kerberos
2.禁用前集群HDFS信息
3.禁用Kerberos
1.通过CM停止CDH集群的所有服务
服务停止成功
2.对Zookeeper服务操作
通过CM修改Zookeeper的enableSecurity为false(即取消勾选,保存配置)
取消勾选quorum.auth.enableSasl,保存配置。
查看Zookeeper服务的数据目录
登录服务器将Zookeeper的数据目录下的文件删除
[root@ip-172-31-13-38 shell]# sh ssh_do_all.sh node.list "rm -rf /var/lib/zookeeper/*"
注意:所有Zookeeper的数据目录下文件都要删除。
执行Zookeeper初始化操作
初始化成功
3.修改HDFS配置
修改Hadoop的安全身份验证,保存配置。
hadoop.security.authentication 修改为simplehadoop.security.authorization 修改为false即取消勾选
修改DataNode的数据目录权限为755,保存配置。
修改DataNode的如下端口,保存配置
dfs.datanode.address 修改为50010dfs.datanode.http.address 修改为50070
保存修改的配置信息。
4.进入HBase服务修改配置
修改HBase的身份验证,保存配置。
hbase.security.authentication 修改为simplehbase.security.authorization 修改为false即取消勾选hbase.thrift.security.qop修改为none
5.Hue服务修改
删除Hue实例中的 “Kerberos Ticket Renewer”服务
删除成功
6.修改Hive配置,如果集群未启用Sentry则跳过此步
sentry.hive.testing.modetrue
保存配置
7.Kudu服务修改
取消勾选enable_security,保存配置。
8.重启Cloudera Management Service服务
修改完上述配置后,重启Cloudera Management Service 服务
重启成功
4.集群服务启动
1.启动Zookeeper服务
启动成功
Leader选举正常
注意:这里先启动Zookeeper服务。
2.初始化Failover Controller服务的自动故障转移Znode
选择任意一个Failover Controller服务进入,初始化自动故障转移Znode
初始化成功
3.部署客户端配置。
部署成功
4.启动集群剩余服务
启动成功
集群各个服务状态正常
5.CM显示Kerberos已禁用
6.HDFS数据量与禁用Kerberos之前一致
5.服务功能验证
1.HDFS服务验证
查看HDFS文件系统
[root@ip-172-31-13-38 shell]# klist[root@ip-172-31-13-38 shell]# hadoop fs -ls /
向集群put文件及查看
[root@ip-172-31-13-38 shell]# ls[root@ip-172-31-13-38 shell]# hadoop fs -put a.sh /tmp[root@ip-172-31-13-38 shell]# hadoop fs -ls /tmp[root@ip-172-31-13-38 shell]# hadoop fs -cat /tmp/a.sh
在未Kinit的情况下正常使用Hadoop命令
2.Hive服务验证
使用Hive CLI访问Hive,执行SQL查询及Count操作
使用Beeline方式访问Hive
[root@ip-172-31-13-38 shell]# beelinebeeline> !connect jdbc:hive2://localhost:10000scan complete in 2msConnecting to jdbc:hive2://localhost:10000Enter username for jdbc:hive2://localhost:10000: hiveEnter password for jdbc:hive2://localhost:10000: Connected to: Apache Hive (version 1.1.0-cdh5.16.1)Driver: Hive JDBC (version 1.1.0-cdh5.16.1)Transaction isolation: TRANSACTION_REPEATABLE_READ0: jdbc:hive2://localhost:10000> select * from test;0: jdbc:hive2://localhost:10000> select count(*) from test;
其他组件如HBase,Hue,Impala,MapReduce等功能验证过程略。
6.总结
1.禁用CDH集群的Kerberos服务,主要是依赖Zookeeper的各个服务对Znode的读取权限,这里Fayson比较暴力直接将Zookeeper的数据目录删除重新初始化。
2.相较之前在CDH5.12.1的禁用过程,对于Zookeeper的配置多了一步取消勾选quorum.auth.enableSasl,否则后面会导致Zookeeper服务启动失败,参考《0271-如何禁用CDH集群Kerberos》。
3.需要对启用了Kerberos的服务进行修改,禁用每个服务的Kerberos主要涉及Zookeeper,HDFS,HBase和Hue。本次过程比之前在CDH5.12.1的禁用过程,多了对于Kudu也要取消Kerberos配置,否则CM的安全页面依旧会显示Kerberos还是启用状态。
4.在修改完配置后,启用HDFS时需要注意,由于Fayson直接删除了Zookeeper的数据目录所以我们要为Failover Controller服务初始化自动故障转移Znode
5.如果Kerberos集群启用了Sentry,需要注意的是禁用Kerberos后要在Hive中配置Sentry为testing mode模式。