用Java程式碼通過JDBC連線Hiveserver
我們可以通過CLI、Client、Web UI等Hive提供的方式來和Hive通訊,但這三種方式中最常用的是CLI;Client是Hive的客戶端,使用者連線至Hive Server。在啟動Client模式的時候,需要指出Hive Server所在的節點,並且在該節點啟動Hive Server。Web UI的方式是通過瀏覽器訪問Hive。今天我們來談談怎麼通過HiveServer來操作Hive。
Hive提供了JDBC驅動,使得我們可以用Java程式碼來連線Hive並進行一些類似於關係型資料庫的sql語句查詢操作。同關係型資料庫一樣,我們也需要將Hive的服務開啟;在Hive0.11.0版本之前,只有HiveServer服務可用,你得在程式操作Hive之前,在Hive安裝的伺服器上開啟HiveServer服務,如下:
[[email protected] /home/q/hive-0.11.0]$ bin/hive --service hiveserver -p 10001
上面的命令表示你已經成功開啟的埠為10001(預設的埠是10000)啟動了HiveServer服務。這時候,你就可以通過Java程式碼來連線HiveServer,程式碼如下:
程式執行結果:public class HiveJdbcTest { //定義HiveJDBC驅動名 private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; public static void main(String[] args) { try { //載入驅動 Class.forName(driverName); //獲取連線 Connection connection = DriverManager.getConnection("jdbc:hive://master:10001/hive", "root", "1111"); //獲取Statement Statement statement = connection.createStatement(); //定義執行的HQL語句 String queryHQL = "select name,salary from employees"; //執行查詢語句 ResultSet res = statement.executeQuery(queryHQL); //遍歷集合取資料 while (res.next()){ System.out.println(res.getString(1) +"\t"+ res.getFloat(2)); } } catch (Exception e) { e.printStackTrace(); } } }
上面是用Java連線HiveServer,而HiveServer本身存在很多問題(比如:安全性、併發性等);針對這些問題,Hive0.11.0版本提供了一個全新的服務:HiveServer2,這個服務很好的解決了HiveServer存在的安全性、併發性等問題。這個服務的啟動程式在${HIVE_HOME}/bin/hiveserver2裡面,你可以通過下面的方式來啟動HiveServer2服務:
$HIVE_HOME/bin/hiveserver2
也可以通過下面的方式啟動HiveServer2
$HIVE_HOME/bin/hive --service hiveserver2
兩種方式效果都是一樣的。但是以前的程式需要修改兩個地方,如下所示:
private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; 改為 private static String driverName = "org.apache.hive.jdbc.HiveDriver"; Connection con = DriverManager.getConnection("jdbc:hive://master:10001/hive", "root", "1111"); 改為 Connection con = DriverManager.getConnection("jdbc:hive2://master:10001/hive", "root", "1111");
其它的不變就可以了。
專案所使用的Maven依賴:
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>0.11.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.2.0</version>
</dependency>
相關推薦
Hive:用Java程式碼通過JDBC連線Hiveserver
寫在前面的話,學Hive這麼久了,發現目前國內還沒有一本完整的介紹Hive的書籍,而且網際網路上面的資料很亂,於是我決定寫一些關於《》序列文章,分享給大家。我會在接下來的時間整理有關Hive的資料,如果對Hive的東西感興趣,請關注本部落格。 我們可以通過CLI、Cli
用Java程式碼通過JDBC連線Hiveserver
我們可以通過CLI、Client、Web UI等Hive提供的方式來和Hive通訊,但這三種方式中最常用的是CLI;Client是Hive的客戶端,使用者連線至Hive Server。在啟動Client模式的時候,需要指出Hive Server所在的節點,並且在該節點啟動H
Java程式碼通過JDBC連線Hiveserver2
我們可以通過CLI、Client、Web UI等Hive提供的使用者介面來和Hive通訊,但這三種方式最常用的是CLI;Client 是Hive的客戶端,使用者連線至 Hive Server。在啟動 Client 模式的時候,需要指出Hive Server所在節點,並且在該節點啟動 Hive Se
Java程式通過JDBC連線遠端資料庫MySQL
程式碼如下: import java.sql.*; public class jdbc { @SuppressWarnings("unused") public static void main
java程式碼實現JDBC連線MySql以及引用驅動程式包
JDBC連結MySql JDBC連結MySql的話題已經老掉牙了,這次我只想通過使用簡潔的程式碼實現,採用封裝的思想,將連結MySql的程式碼封裝在類的靜態方法中,供一次性呼叫返回java.sq
【Java 資料庫】java工程通過JDBC連線到資料庫
(在原博文上有改動) 下面請一字一句地看,一遍就設定成功,比你設定幾十遍失敗,費時會少得多。 首先,在連線資料庫之前必須保證SQL Server 2012是採用SQL Server身份驗證方式而不是windows身份驗證方式。如果在安裝時選用了後者,則重新設定如下:
Java 通過JDBC連線並操作Mysql資料庫
使用Java連線資料庫需要使用JDBC驅動。JDBC(Java Data Base Connectivity,java資料庫連線)是一種用於執行SQL語句的Java API,可以為多種關係資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。以下是使用方
完整java開發中JDBC連線資料庫程式碼和步驟
宣告:來自Hongten(部落格園) JDBC連線資料庫 建立一個以JDBC連線資料庫的程式,包含7個步驟: 1、載入JDBC驅動程式: 在連線資料庫之前,首先要載入想要連線的資料庫的驅動到JVM(Java虛擬機器), 這通過java.lang
jsp/java程式碼中用jdbc驅動代替jdbc-odbc橋連線SQL Server資料庫
甲骨文公司主要技術人員、JDBC規範領導者Lance Andersen在部落格中稱,從Java SE 8起,JDK中將不再包含JDBC-ODBC橋。 JDBC-ODBC橋是Java提供的一種基於兩層模型的JDBC技術,使用JDBC-ODBC橋能對多種ODBC
java通過JDBC連線資料庫及增刪改查操作
1.實戰資料庫資料的準備 建立資料庫(newsmanager),然後建立表news(id,title,content,type)和newstype(id,name),其中news的type和newstype的id為主外來鍵關係,如下圖圖 2.JDBC的介紹
Java 通過JDBC連線Mysql資料庫的方法和例項
之前有兩篇文章講了安裝mysql(ubuntu和windows)和視覺化工具workbench的使用,這篇文章就講一下java程式是如何連線MySQL資料庫的。 Java是通過JDBC連線Mysql資料庫的。JDBC(Java Data Base Connectivi
Java通過JDBC連線資料庫的三種方式!!!並對資料庫實現增刪改查
前言 java連線資料庫完整流程為: 1,獲得驅動(driver),資料庫連線(url),使用者名稱(username),密碼(password)基本資訊的三種方式。 2,通過獲得的資訊完成JDBC實現連線資料庫。 注:連線前請匯入jar包,例:連線my
Java通過JDBC連線Mysql
1. 官網下載 2. 解壓 3. 匯入驅動 1、右鍵工程,build path 2、Libraries–>Add External JARs–>選擇mysql安裝目錄下的jar包 3、此時在我們的工程下就有了
java通過jdbc連線impala和pom.xml以及增查操作
pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=
解決JAVA通過JDBC連線Oracle資料庫出現的問題
Java連線Oracle步驟: 1.註冊載入驅動 驅動名:DRIVER="oracle.jdbc.driver.OracleDriver"; Class.forName("驅動類名"); 2.獲得連線 資料庫地址: URL="jdbc:oracle:thin:@1
用java程式碼構建一棵平衡二杈樹:
用java程式碼構建一棵平衡二杈樹: 構建的要點在於: 1. 每新增一個節點要遞迴地返回所有經過的父節點(要算好高度) 2. 計算每個節點的左右樹高度差 3. 如果高度差為2,認清要做哪種旋轉:LL, LR, RR, RL 4. 做旋轉時注意,所要移動節點之間的關係 程式碼如
所謂的網頁爬蟲用java程式碼來實現,此程式碼適合在maven專案中使用中使用,因為,程式碼中的類所對應的依賴可以讓maven下載。
//獲得httpClient物件 CloseableHttpClient httpClient = HttpClients.createDefault(); //url公司域名隨便 String url = "https://www.baidu.co
怎樣將IDE的eclipse編寫的java appllication通過JDBC(java database connectivity)連線上Oracle資料庫 具體步驟
public class Test { public static void main(String[] args) { /** * JDBC使用過程 * 1.匯入jdbc驅動包 jar包 oracle sqlsever mysql * 2.載入jdbc驅動 &nbs
0459-如何使用SQuirreL通過JDBC連線CDH的Hive(方式一)
Fayson的github: https://github.com/fayson/cdhproject 推薦關注微信公眾號:“Hadoop實操”,ID:gh_c4c535955d0f,或者掃描文末二維碼。 1.文章編寫目的 SQuirreL SQL Clien
Android通過jdbc連線mySQL資料庫時,資料庫拒絕連線
原因: mysql伺服器出於安全考慮,預設只允許本機使用者通過命令列登入。 解決方案: 先通過localhost登入mysql伺服器 將mysql伺服器的mysql資料庫的user表中root使用者的Host欄位改為"%"。 操作如下: window+r 輸