0596-6.2.0-如何在CDH6.2中禁用Kerberos

Fayson的github: https://github.com/fayson/cdhproject

推荐关注微信公众号:“Hadoop实操”,ID:gh_c4c535955d0f

1 文档编写目的

Fayson在前面的文章介绍了如何为CDH集群启用Kerberos,在集群启用Kerberos后,会对现有环境的部分代码做改造,有些人觉得使用起来不方便,想取消Kerberos。本篇文章Fayson主要介绍如何禁用CDH集群的Kerberos及禁用后对各组件服务的测试。

注意:本文禁用Kerberos属于比较暴力的方式,未在正式成产环境做严格测试,操作方式仅供参考,建议环境为开发/测试/Poc环境。

  • 测试环境

1.CM和CDH版本为6.20

2.集群已启用Kerberos

2 禁用过程

2.1 通过CM停止集群的所有服务

0596-6.2.0-如何在CDH6.2中禁用Kerberos

服务停止成功

0596-6.2.0-如何在CDH6.2中禁用Kerberos

2.2 对Zookeeper服务进行配置

通过CM修改Zookeeper的enableSecurity为false(取消勾选)
0596-6.2.0-如何在CDH6.2中禁用Kerberos

查看Zookeeper服务的数据目录

0596-6.2.0-如何在CDH6.2中禁用Kerberos
登陆服务器将Zookeeper数据目录下的文件删除(所有Zookeeper的数据目录下的文件都要删除)

0596-6.2.0-如何在CDH6.2中禁用Kerberos

执行Zookeeper初始化操作

0596-6.2.0-如何在CDH6.2中禁用Kerberos

初始化成功

0596-6.2.0-如何在CDH6.2中禁用Kerberos

2.3 修改HDFS配置

修改Hadoop的安全身份验证

第一个选为simple,第二个取消勾选
0596-6.2.0-如何在CDH6.2中禁用Kerberos

修改DataNode的数据目录权限为755

0596-6.2.0-如何在CDH6.2中禁用Kerberos
修改DataNode服务的端口号,分别修改为50010和50075

0596-6.2.0-如何在CDH6.2中禁用Kerberos

2.4 进入HBase服务修改配置

修改HBase的身份验证

第一个修改为simple,第二个取消勾选,第三个修改为none

0596-6.2.0-如何在CDH6.2中禁用Kerberos

2.5 Hue服务修改

删除Hue实例中的”Kerberos Ticket Renewer”服务

0596-6.2.0-如何在CDH6.2中禁用Kerberos

0596-6.2.0-如何在CDH6.2中禁用Kerberos

删除成功
0596-6.2.0-如何在CDH6.2中禁用Kerberos

2.6 重启Cloudera Management Service服务

修改完上面的配置后,重启服务

0596-6.2.0-如何在CDH6.2中禁用Kerberos

重启成功

0596-6.2.0-如何在CDH6.2中禁用Kerberos

3 集群服务启动

3.1 启动Zookeeper

0596-6.2.0-如何在CDH6.2中禁用Kerberos

启动失败,报错

0596-6.2.0-如何在CDH6.2中禁用Kerberos

在CDH6中还需要再修改Zookeeper的一项配置,如下图,将这项配置取消勾选

0596-6.2.0-如何在CDH6.2中禁用Kerberos

再次启动,启动成功
0596-6.2.0-如何在CDH6.2中禁用Kerberos

Leader选举正常

0596-6.2.0-如何在CDH6.2中禁用Kerberos

3.2 启动集群剩余服务

0596-6.2.0-如何在CDH6.2中禁用Kerberos

启动成功

0596-6.2.0-如何在CDH6.2中禁用Kerberos

3.3 部署客户端配置

0596-6.2.0-如何在CDH6.2中禁用Kerberos

重新部署
0596-6.2.0-如何在CDH6.2中禁用Kerberos

重新部署成功
0596-6.2.0-如何在CDH6.2中禁用Kerberos

4 验证服务是否正常

4.1 HDFS服务

0596-6.2.0-如何在CDH6.2中禁用Kerberos

4.2 Yarn服务

0596-6.2.0-如何在CDH6.2中禁用Kerberos

4.3 HBase的Master服务

0596-6.2.0-如何在CDH6.2中禁用Kerberos

4.4 CM显示Kerberos已禁用

0596-6.2.0-如何在CDH6.2中禁用Kerberos

5 服务功能验证

5.1 HDFS服务

查看HDFS文件系统

0596-6.2.0-如何在CDH6.2中禁用Kerberos
向HDFS put文件及查看

0596-6.2.0-如何在CDH6.2中禁用Kerberos
在未kinit的情况下正常使用HDFS

5.2 Hive服务

使用HiveCLI访问Hive,执行SQL查询及Count操作
0596-6.2.0-如何在CDH6.2中禁用Kerberos

0596-6.2.0-如何在CDH6.2中禁用Kerberos

0596-6.2.0-如何在CDH6.2中禁用Kerberos

5.3 Impala服务

使用impala-shell的方式启动Impala

0596-6.2.0-如何在CDH6.2中禁用Kerberos

0596-6.2.0-如何在CDH6.2中禁用Kerberos

5.4 HBase服务

启动HBase

0596-6.2.0-如何在CDH6.2中禁用Kerberos

建表、插入数据、查询

0596-6.2.0-如何在CDH6.2中禁用Kerberos

0596-6.2.0-如何在CDH6.2中禁用Kerberos

5.5 Hue服务

0596-6.2.0-如何在CDH6.2中禁用Kerberos

0596-6.2.0-如何在CDH6.2中禁用Kerberos

0596-6.2.0-如何在CDH6.2中禁用Kerberos

0596-6.2.0-如何在CDH6.2中禁用Kerberos

5.6 向集群提交一个MapReduce作业

0596-6.2.0-如何在CDH6.2中禁用Kerberos

作业执行成功

0596-6.2.0-如何在CDH6.2中禁用Kerberos

0596-6.2.0-如何在CDH6.2中禁用Kerberos

6 总结

  • 禁用CDH集群的Kerberos服务,主要是依赖Zookeeper的各个服务对Znode的读取权限,这里Fayson比较暴力直接将Zookeeper的数据目录删除重新初始化。

  • 需要对启用了Kerberos的服务进行修改,禁用每个服务的Kerberos。

  • 注意如果你集群的HDFS启用了HA,在修改完配置后,启用HDFS时需要注意,由于Fayson直接删除了Zookeeper的数据目录所以我们要为Failover Controller服务初始化自动故障转移Znode

  • 如果Kerberos集群启用了Sentry,需要注意的是禁用Kerberos后要在Hive中配置Sentry为testing mode模式。

  • 与CDH5中禁用Kerberos相比,CDH6中在重启Zookeeper时还需要将quorum.auth.enableSasl设置为false,即取消勾选,否则重启失败