Java連接Hive的方式就是通過JDBC的方式來連接,URL為jdbc:hive2://host:port/db;principal=X@BIGDATA.COM等,這種方式是直接連接HiveServer2服務的,但是在現實中,還有一種以Zookeeper的方式去連接,例如:
jdbc:hive2://zk01:2181,zk02:2181,zk03:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
那么,這種方式的原理是什么?
在實際生產中,可能會存在多個HiveServer2服務,他們同時來提供服務,如果其中的一個掛掉,其他的就可以繼續工作。那么,為了實現這種HA的特性,HiveServer2提供了一種基於Zookeeper部署的HA解決方案,即多個HiveServer2服務向Zookeeper的某一個目錄下注冊,Java JDBC通過讀取Zookeeper中這個目錄下面注冊的HiveServer2的實例,來選取其中的一個進行連接和訪問。具體部署請查閱資料,這里不再描述。
另外一種實現HA的方式就是通過HAProxy或Ngix等軟件進行負載均衡,也可以使用F5硬件。
特此記錄。