安全模式
windows环境下连接:
我使用的是pyhive连接方式,还需下载sasl包(本地下载不下来,要到指定网站去下),连接hiveserver一直报错:
from pyhive import hive
conn = hive.Connection(host='172.23.44.2', port=21066, username='hengtian', database='default', auth='KERBEROS',kerberos_service_name="hive")
cursor = conn.cursor()
cursor.execute('show tables')
# cursor.execute('select * from w_test limit 10')
for result in cursor.fetchall():
print(result)
百度查找原因是需要进行安全认证,但是一直没有成功;后面发现在windows环境下好像就是不能kerberos认证连接
最终解决方法,在hive-site.xml文档添加参数:
<property>
<name>hive.server2.authentication</name>
<value>NOSASL</value>
</property>
更换连接参数
conn = hive.Connection(host='172.23.44.2', port=21066, username='hengtian', database='default', auth='NOSASL')
Linux下连接:
kerberos认证登入一定要添加hosts映射(Server hive/172.23.44.2@HADOOP.COM not found in Kerberos database)
fusioninsight:hive/hadoop.HADOOP.COM@HADOOP.COM
kinit -kt /home/dljypt/user.keytab hengtian@HADOOP.COM
klist -kt user.keytab
kerberos配置:
https://www.cnblogs.com/baran/p/15643939.html
https://www.cnblogs.com/ngrhl/p/15190145.html
https://blog.youkuaiyun.com/github_39577257/article/details/105217748