ambari启用kerberos

450 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情

ambari启用kerberos

背景

公司的测试集群是amabri安装的,HDP3.1.4版本,前面已经安装好了kerberos主从,现在要在集群上开启kerberos认证

通过ambari界面开启集群kerberos

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png 如果看到上面界面,说明kerberos开启成功,接下来测试一下各个服务是否能正常访问,对异常的服务针对进行修复。

开启kerberos后各个组件的访问

  1. 默认集群管理员用户(root)拥有访问集群的权限。
  2. kinit test/host@root这种初始化方式是需要输入密码的,仅限于集群管理员使用。 3.集群租户使用如下方式初始化(不需要密码): kinit -k -t test.keytab test/host@root keytab 文件如下方式生成: kadmin.local -q "addprinc -randkey test/host@root " kadmin.local -q "xst -k test-unmerged.keytab test/host@root" ktutil rkt test-unmerged.keytab wkt test.keytab exit hdfs使用 执行相关命令前需要使用kinit初始化keytab hive使用: beeline -u "jdbc:hive2://ochadoop10:10000/default;principal=hive/ochadoop10@root" -n test/host@root -p test beeline -u "jdbc:hive2://ochadoop10:10000/default;principal=hive/ochadoop10@root" -n yinkp/ochadoop09@root -p yinkp keytab形式需要先进行kinit keytab,再进行beeline连接。 beeline -u "jdbc:hive2://host-10-1-236-51:10000/default;principal=hive/host-10-1-236-51@root"

我这边的kinit 的test2用户,由于test2用户没有库权限,所以报没有权限。但是访问kerberos OK。 Hbase使用: 进入Hbase shell 前需要执行相关命令前需要使用kinit初始化keytab Phoenix使用: 进入Hbase shell 前需要执行相关命令前需要使用kinit初始化keytab ./sqlline.py 10.1.236.51:2181:/hbase-secure 集成kerberos后,kafka访问方式:(必须使用主机名,如果是ip会报错) keytab初始化: kinit -kt root.keytab root@root

创建topic: /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --zookeeper host-10-1-236-52:2181 --create --topic yinkp2 --replication-factor 1 --partitions 1

查看topic: /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --list --zookeeper host-10-1-236-52:2181

创建生产者: /usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list dc-hadoop-dn-7:6667 --topic test --producer.config producer.properties

创建消费者: /usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh --topic test --bootstrap-server dc-hadoop-dn-7:6667 --from-beginning --consumer.config consumer.properties

必须使用主机名,如果是ip会报错 ERROR An error: (java.security.PrivilegedActionException: javax.security.sasl.SaslException: GSS initiate failed

注意

我这里测试集群,自定义安装了flink,hue,ES,presto等,应在未安装之前启用kerberos,因为amabri是不支持这个自定义kerberos的,需要自己在自定义是配置,或者后期添加配置,我这里是直接先停停掉,在安装的,但是测试集群很多人再用,停止前要和大家商量好 kerberos过期时可以通过重新配置完成所有认证

image.png