仅以此篇记录虚拟机linux安装hive的认证配置的过程,以昨日后学习之用
本篇是为了安装kerberos对hive的认证配置的过程,hive的安装hive安装及配置已经涵盖不在此篇赘述。
希望读者可以通读全篇之后加上自己的理解然后参照进行配置。
本篇完全借鉴相关博主配置,在此基础上补充路径,添加配置等操作,更加详细以便日后配置学习之用,参考链接放到文章末尾。
配置hive的kerberos配置
1.创建主体文件
kadmin.local
addprinc hive/master
ktadd -norandkey -k /etc/security/keytab/hive.keytab hive/master
2.拷贝秘钥文件到hive的目录
scp /etc/security/keytab/hive.keytab /usr/local/hive/conf/
3.修改hive的配置文件
进入/usr/local/hive/conf
cd /usr/local/hive/conf
vi hive-site.xml
hive-site.xml
添加如图中配置
<property>
<name>hive.server2.enable.doAs</name>
<value>true</value>
</property>
<property>
<name>hive.server2.authentication</name>
<value>KERBEROS</value>
</property>
<property>
<name>hive.server2.authentication.kerberos.principal</name>
<value>hive/master@HADOOP.COM</value>
</property>
<property>
<name>hive.server2.authentication.kerberos.keytab</name>
<value>/usr/local/hive/conf/hive.keytab</value>
</property>
<property>
<name>hive.server2.authentication.spnego.keytab</name>
<value>/usr/local/hive/conf/hive.keytab</value>
</property>
<property>
<name>hive.server2.authentication.spnego.principal</name>
<value>hive/master@HADOOP.COM</value>
</property>
<property>
<name>hive.metastore.sasl.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.kerberos.keytab.file</name>
<value>/usr/local/hive/conf/hive.keytab</value>
</property>
<property>
<name>hive.metastore.kerberos.principal</name>
<value>hive/master@HADOOP.COM</value>
</property>
4.修改hadoop的core-site.xml配置文件
进入/usr/local/hadoop-3.3.4/etc/hadoop/
cd /usr/local/hadoop-3.3.4/etc/hadoop/
hadoop的core-site.xml配置文件
<property>
<name>hadoop.proxyuser.hive.users</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hive.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hive.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.security.auth_to_local</name>
<value>DEFAULT</value>
</property>
5.启动hive
cd /usr/local/hive
nohup ./bin/hive --service metastore > metastore.log 2>&1 &
nohup ./bin/hiveserver2 > hive.log 2>&1 &
6.通过beeline的方式连接hive
cd /usr/local/hive
./bin/beeline -u "jdbc:hive2://master:10000/default;principal=hive/master@HADOOP.COM"
ps:遗留两点没完成:
1.hive的高可用目前还没有研究明白。
2.zookeeper高可用集群那个访问也没研究明白需要后续进行调研。
错误汇总
错误1:
Exception in thread "main" java.lang.RuntimeException: java.io.IOException: DestHost:destPort master:9000 , LocalHost:localPort master/192.168.1.135:0. Failed on local exception: java.io.IOException: Couldn't setup connection for hive/master@HADOOP.COM to master/192.168.1.135:9000
解决方法 kinit -kt hive.keytab hive/master(当前路径/usr/local/hive/conf)
错误2:
2023-04-27 18:49:44,754 WARN security.UserGroupInformation: Exception encountered while running the renewal command for hive/master@HADOOP.COM. (TGT end time:1682500979000, renewalFailures: 0, renewalFailuresTotal: 1)
ExitCodeException exitCode=1: kinit: Ticket expired while renewing credentials
解决方法 kinit -kt hive.keytab hive/master(当前路径/usr/local/hive/conf)
后记说明
1.斜体:
斜体为需要读者注意的点,这边是还有未解决的问题。
2.加黑粗体:
强调注意事项。
3.补充知识:
hive配置zookeeper高可用参考链接
https://blog.csdn.net/leeyehong_self/article/details/123878463
网友评论