1. 程式人生 > >用Java程式碼通過JDBC連線Hiveserver

用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 輸