本文主要介紹通過JDBC連接Hive服務時,連接串中在不同場景下涉及到的參數,這些場景包括非Kerberos認證環境、Kerberos認證環境、Kerberos認證環境下使用代理用戶及Kerberos認證環境下使用代理用戶且指定隊列等使用場景。
1.非Kerberos認證環境下hive jdbc連接串
!connect jdbc:hive2://${hive節點ip}:${hive端口號}/${需要連接的數據庫名};
說明:
${hive節點ip}——為Hive安裝節點的ip或hostname
${hive端口號}——為Hive服務的端口號,默認為10000
${需要連接的數據庫名}——為需要連接的Hive數據庫名,如:default
2.hive jdbc連接串
!connect jdbc:hive2://${hive節點ip}:${hive端口號}/${需要連接的數據庫名};principal=${hive principal};
說明:
${hive節點ip}——為Hive安裝節點的ip或hostname
${hive端口號}——為Hive服務的端口號,默認為10000
${需要連接的數據庫名}——為需要連接的Hive數據庫名,如:default
${hive principal}——為Hive服務的principal,此參數是在Hive集成Kerberos認證環境下使用,如果集群未使用Kerberos認證,則不需要配置該參數,如果集群是Kerberos認證環境,則該principal為hive-site.xml中hive.server2.authentication.kerberos.principal配置項的值
3.通過代理模式連接hive
!connect jdbc:hive2://${hive節點ip}:${hive端口號}/${需要連接的數據庫名};principal=${hive principal};hive.server2.proxy.user=${proxyUserName};
說明:
${hive節點ip}——為Hive安裝節點的ip或hostname
${hive端口號}——為Hive服務的端口號,默認為10000
${需要連接的數據庫名}——為需要連接的Hive數據庫名,如:default
${hive principal}——為Hive服務的principal,此參數是在Hive集成Kerberos認證環境下使用,如果集群未使用Kerberos認證,則不需要配置該參數,如果集群是Kerberos認證環境,則該principal為hive-site.xml中hive.server2.authentication.kerberos.principal配置項的值
${proxyUserName}——為Hive代理的用戶名
4.hive jdbc連接串中指定代理用戶、指定隊列名
!connect jdbc:hive2://${hive節點ip}:${hive端口號}/${需要連接的數據庫名};principal=${hive principal};hive.server2.proxy.user=${proxyUserName}?mapreduce.job.queuename=${queueName};
說明:
${hive節點ip}——為Hive安裝節點的ip或hostname
${hive端口號}——為Hive服務的端口號,默認為10000
${需要連接的數據庫名}——為需要連接的Hive數據庫名,如:default
${hive principal}——為Hive服務的principal,此參數是在Hive集成Kerberos認證環境下使用,如果集群未使用Kerberos認證,則不需要配置該參數,如果集群是Kerberos認證環境,則該principal為hive-site.xml中hive.server2.authentication.kerberos.principal配置項的值
${queueName}——為執行Hive任務的隊列名,該參數只支持執行引擎為MapReduce