老是和這塊東西接觸,今天看看官網並結合自己理解總結下這一塊
官網地址:https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-JDBC
url的寫法
1、url中參數的拼接
jdbc:hive2://:/dbName;initFile=;sess_var_list?hive_conf_list#hive_var_list
sess_var_list 是會話變量(例如user=foo;password=bar)的鍵=值對
hive_conf_list是此session的Hive配置相關的鍵值對的列表 就是hive-default.xml中的配置項
hive_var_list是此session的hive變量相關的列表
2、不同模式的URL的寫法
- 1、tcp連接URL
jdbc:hive2://:/
- 2、ZooKeeper連接URL
ZooKeeper連接URL的模式實現了HiveServer2的高可用性和滾動升級,不需要指定其他配置參數,例如身份驗證模式,傳輸模式或SSL參數,它的信息是在zookeeper中保存的
jdbc:hive2:///;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
的值與hive-site.xml中的hive.zookeeper.quorum配置參數相同。
-
3、http連接URL(沒用過)
jdbc:hive2://:/;transportMode=http;httpPath=<http_endpoint> -
4、SSL連接URL(沒用過)
jdbc:hive2://:/;ssl=true;sslTrustStore=<trust_store_path>;trustStorePassword=
<trust_store_password>
<trust_store_path> 是客戶端的信任庫文件所在的路徑。
<trust_store_password>是訪問信任庫的密碼。
3、kerberos 相關
jdbc:hive2://:/;principal=<Server_Principal_of_HiveServer2>
######注意
這裏的principal 指的是服務器的principal,就是JDBC客戶端請求服務的principal,當然這個服務的principal是在hive-site.xml中已經配置好的
<property>
<name>hive.server2.authentication.kerberos.principal</name>
<value>hs2/[email protected]</value>
</property>
這個_HOST 即爲開啓hive server 服務的 ip 或主機名,一想也可以理解,如果沒有開啓服務,那也沒有沒有辦法訪問。
(如果是tcp連接URL,這裏將_HOST 替換成hive server 服務的IP ,如果是zookeeper連接的URL的話,這裏不變,就寫_HOST)
連接之前,客戶端需要在票證緩存中具有有效的Kerberos票證。就是需要認證一下