Fayson的github: https://github.com/fayson/cdhproject
推荐关注微信公众号:“Hadoop实操”,ID:gh_c4c535955d0f
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
1.CDH集群已启用Kerberos
2.禁用前集群HDFS信息
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 修改为simple
hadoop.security.authorization 修改为false即取消勾选
修改DataNode的数据目录权限为755,保存配置。
修改DataNode的如下端口,保存配置
dfs.datanode.address 修改为50010
dfs.datanode.http.address 修改为50070
4.进入HBase服务修改配置
修改HBase的身份验证,保存配置。
hbase.security.authentication 修改为simple
hbase.security.authorization 修改为false即取消勾选
hbase.thrift.security.qop修改为none
5.Hue服务修改
删除Hue实例中的 “Kerberos Ticket Renewer”服务
6.修改Hive配置,如果集群未启用Sentry则跳过此步
sentry.hive.testing.mode
true
保存配置
7.Kudu服务修改
取消勾选enable_security,保存配置。
8.重启Cloudera Management Service服务
修改完上述配置后,重启Cloudera Management Service 服务
重启成功
注意:这里先启动Zookeeper服务。
2.初始化Failover Controller服务的自动故障转移Znode
选择任意一个Failover Controller服务进入,初始化自动故障转移Znode
初始化成功
部署成功
4.启动集群剩余服务
1.HDFS服务验证
查看HDFS文件系统
[root@ip-172-31-13-38 shell]# klist
[root@ip-172-31-13-38 shell]# hadoop fs -ls /
[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
2.Hive服务验证
使用Hive CLI访问Hive,执行SQL查询及Count操作
[root@ip-172-31-13-38 shell]# beeline
beeline> !connect jdbc:hive2://localhost:10000
scan complete in 2ms
Connecting to jdbc:hive2://localhost:10000
Enter username for jdbc:hive2://localhost:10000: hive
Enter 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_READ
0: jdbc:hive2://localhost:10000> select * from test;
0: jdbc:hive2://localhost:10000> select count(*) from test;
其他组件如HBase,Hue,Impala,MapReduce等功能验证过程略。
1.禁用CDH集群的Kerberos服务,主要是依赖Zookeeper的各个服务对Znode的读取权限,这里Fayson比较暴力直接将Zookeeper的数据目录删除重新初始化。
2.相较之前在CDH5.12.1的禁用过程,对于Zookeeper的配置多了一步取消勾选quorum.auth.enableSasl,否则后面会导致Zookeeper服务启动失败,参考《如何禁用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模式。