hive2 java連接_用Java代碼通過JDBC連接Hiveserver2

1.在終端啟動hiveserver2

#hiveserver2

2.使用beeline連接hive

另外打開一個終端,輸入如下命令(xavierdb必須是已經存在的數據庫)

#beeline -u jdbc:hive2://localhost:10000/xavierdb -n hive -p hive

3.添加maven依賴

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

org.apache.hive

hive-jdbc

1.1.0

junit

junit

4.9

org.apache.hadoop

hadoop-common

2.6.0

org.apache.hadoop

hadoop-client

2.6.0

org.apache.hive

hive-metastore

1.1.0

org.apache.hive

hive-exec

1.1.0

maven依賴

出現過的錯誤: Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000/default

解決辦法:檢查發現運行beeline時Driver版本Driver: Hive JDBC (version 1.1.0-cdh5.16.1)比maven依賴中的Driver版本低,將maven版本調至1.1.0問題解決

Java API測試:

注意:這里的url必須是beeline值中使用的url

package TestOption;

import org.junit.Test;

import org.junit.After;

import org.junit.Before;

import java.sql.*;

/**

* @Author:Xavier

* @Data:2019-02-18 11:43

**/

public class HiveOption {

private static String driverName = "org.apache.hive.jdbc.HiveDriver";

private static String url = "jdbc:hive2://172.19.224.213:10000/xavierdb";

private static Connection con = null;

private static Statement state = null;

private static ResultSet res = null;

//加載驅動,創建連接

@Before

public void init() throws ClassNotFoundException, SQLException {

Class.forName(driverName);

con = DriverManager.getConnection(url, "hive", "hive");

state = con.createStatement();

}

//創建數據庫

@Test

public void CreateDb() throws SQLException {

state.execute("create database xavierdb1");

}

// 查詢所有數據庫

@Test

public void selectDb() throws SQLException {

res = state.executeQuery("show databases");

while (res.next()) {

System.out.println(res.getString(1));

}

}

// 刪除數據庫

@Test

public void dropDb() throws SQLException {

state.execute("drop database if exists xavierdb1");

}

// 創建表

@Test

public void createTab() throws SQLException {

state.execute("create table if not exists student ( " +

"name string , " +

"age int , " +

"agent string ," +

"adress struct) " +

"row format delimited " +

"fields terminated by ',' " +//字段與字段之間的分隔符

"collection items terminated by ':'"+//一個字段各個item的分隔符

"lines terminated by '\n' ");//行分隔符

}

// 查詢所有表

@Test

public void selectTab() throws SQLException {

res=state.executeQuery("show tables");

while(res.next()){

System.out.println(res.getString(1));

}

}

// 查看表結構

@Test

public void descTab() throws SQLException {

res=state.executeQuery("desc student");

while(res.next()){

System.out.println(res.getString(1)+"\t"+res.getString(2));

}

}

// 加載數據(本地加載)

@Test

public void loadData() throws SQLException {

String infile=" '/root/studentData' ";

state.execute("load data local inpath "+infile+"overwrite into table student");

}

// 查詢數據

@Test

public void selectTab() throws SQLException {

res=state.executeQuery("select * from student");

while(res.next()){

System.out.println(

res.getString(1)+"-"+

res.getString(2)+"-"+

res.getString(3)+"-"+

res.getString(4));

}

}

// 統計查詢(會運行mapreduce作業,資源開銷較大)

@Test

public void countData() throws SQLException {

res=state.executeQuery("select count(1) from student");

while(res.next()){

System.out.println(res.getInt(1));

}

}

// 刪除表

@Test

public void dropTab() throws SQLException {

state.execute("drop table student1");

}

@After

public void destory() throws SQLException {

if (res != null) state.close();

if (state != null) state.close();

if (con != null) con.close();

}

}

標簽:JDBC,Java,res,void,hive,throws,Hiveserver2,state,public

來源: https://www.cnblogs.com/xavier-xd/p/10399581.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539991.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 向上拋異常_Java 異常的處理方式throws

在昨天的文章《Java 異常的分類與處理》中我們簡單地了解了一下在方法聲明的位置上使用throws關鍵字向上拋出異常,下面深入講解異常的第一種處理方式throws。下面深入講解異常的第一種處理方式throws。看以下例子:import java.io.*;public class Excepti…

Jquery mobile 解決IOS9selectli閃退問題

升級IOS9后&#xff0c;JQuery mobile 出現了個bug問題。<select>&#xff0c;<ul><li></li></ul> 出現閃退。 解決方法&#xff1a; 必須加在 jquery.js 和 jquerymobile.js 中間 <script src"......../...../jquery-2.0.0.min.js&qu…

JAVA通過SSL證書創建MS AD賬戶及設置密碼

近期由于工作需要整理一下自動化的東西&#xff0c;因為公司去年上線了OA&#xff0c;所以公司的入職系統會提交用戶的信息到IT部門&#xff0c;最早的做法是入職到了&#xff0c;IT部門收集用戶信息在AD中創建對應的用戶信息&#xff0c;所以為了提高管理員的工作效率&#xf…

java 實體類規范_實體類的規范

1.Boolean類型1.1.使用Boolean類型,而不是Byte類型1.2.數據庫字段名使用is_開頭1.3.實體類字段名不使用is開頭例子/*** 是否為新消息*/Column(name "is_new_message", nullable false)private Boolean newMessage;2.Enum類型1.使用Convert注解, 并指定coverter類例…

01電話撥號器

實例非常簡單&#xff0c;意在體驗Android的Intent&#xff0c;用戶權限。 Intent 見 http://blog.csdn.net/zengmingen/article/details/49586045 用戶權限 見 http://blog.csdn.net/zengmingen/article/details/49586569 --------------------------------------------------…

微信小程序筆記六模塊化 —— module.exports

微信小程序中所有 js 文件作用域皆為獨立的&#xff0c;每一個 js 文件即為一個模塊。模塊與模塊之間的引用通過 module.exports 或 exports 對外暴露接口。 注意&#xff1a; exports 是 module.exports 的一個引用&#xff0c;因此在模塊里邊隨意更改 exports 的指向會造成未…

java常用的統計_(OJ)Java常用類-統計數字次數

統計數字次數Problem Description命令行輸入一個由數字組成的任意字符串,統計出每個數字出現的次數。Input Description1239586838Output Description0 counts:01 counts:12 counts:13 counts:24 counts:05 counts:16 counts:17 counts:08 counts:39 counts:1解題代碼import ja…

02發送短信

使用SmsManager發送短信java.lang.Object ?android.telephony.SmsManagerManages SMS operations such as sending data, text, and pdu SMS messages. Get this object by calling the static method SmsManager.getDefault().管理短信操作&#xff0c;如發送數據&#xff…

Python運行環境與異常處理

Python的命令格式&#xff1a; python [option] ... [-c cmd | -m mod | file | -] [arg] ... 選項描述-J 啟動將從Python3中刪除或更改某些功能的警告 -B阻止在導入時創建.pyc或.pyo文件-E忽略環境變量-h打印所有可用命令行選項的列表-i在程序執行后進入交互模式-m module以腳…

Java應用一般架構

原文鏈接&#xff1a;http://www.iteye.com/news/31115 當我們架設一個系統的時候通常需要考慮到如何與其他系統交互&#xff0c;所以我們首先需要知道各種系統之間是如何交互的&#xff0c;使用何種技術實現。 1. 不同系統不同語言之間的交互 現在我們常見的不同系統不同語…

Mac MongoDB未正常關閉導致重啟失敗

你可以刪除掉mongod.lock文件&#xff0c;然后重新啟動&#xff0c;如果還是不可以&#xff0c;你可以查看一下進程&#xff0c;然后殺掉&#xff1a; ps -aef | grep mongo sudo kill 1076 再重啟數據庫即可。

微信企業號讓IOS不要識別數字為電話號碼的方法

最近在開發一個聯系人查看功能時&#xff0c;發現IOS端把 8位&#xff0c;11位的數字識別為了 電話號碼。 本來是黑色的樣式&#xff0c;變成了藍色的樣式&#xff0c;還添加了下劃線。點擊一下&#xff0c;還可以撥打電話。 這個問題要改&#xff0c;解決方法很簡單&#xf…

powerdns與nginx結合實現以域名和IP方式訪問web服務器80端口時分別跳轉到不同頁面...

1.powerdns設置 2.內部網站介紹 web服務器采用nginx&#xff0c;內網dns采用powerdns. 想實現的功能如下 通過ip訪問時跳轉到A頁面&#xff0c;通過域名訪問時&#xff0c;讓其跳轉到B頁面。兩種方式的端口均為80. 頁面A對應的nginx配置 server { listen 80; …

Installation error code: -103簽名不一致錯誤

調用Android系統的PackageInstallerActivity進行app安裝時&#xff0c;報Installation error code: -103 錯誤。 原因是&#xff1a;簽名問題。 可能是 1、正安裝的應用沒用簽名 2、正安裝的應用與已安裝的應用包相同&#xff0c;但簽名不同。 解決方法&#xff1a; 1、給…

java代碼塊是對象嗎_面向對象(Java中普通代碼塊,構造代碼塊,靜態代碼塊區別及代碼示例)...

//靜態代碼塊:在java中使用static關鍵字聲明的代碼塊。靜態塊用于初始化類&#xff0c;為類的屬性初始化。每個靜態代碼塊只會執行一次。由于JVM在加載類時會執行靜態代碼塊&#xff0c;所以靜態代碼塊先于主方法執行。//如果類中包含多個靜態代碼塊&#xff0c;那么將按照&quo…

Android adb命令選擇設備操作

當開了多個模擬器時&#xff0c;安裝app需要指定虛擬機&#xff0c;否則會提示&#xff1a;error: more than one device and emulator 1、先adb devices 查看設備列表 List of devices attached emulator-5554 device emulator-5556 device 2、使用命令 adb -s emulat…

java 視圖解析器_SpringMVC——視圖和視圖解析器

請求處理方法執行完成后&#xff0c;最終返回一個 ModelAndView對象。對于那些返回 String&#xff0c;View 或 ModeMap 等類型的處理方法&#xff0c;Spring MVC 也會在內部將它們裝配成一個ModelAndView 對象&#xff0c;它包含了邏輯名和模型對象的視圖Spring MVC 借助視圖解…

Android app 應用簽名

為什么要簽名&#xff1f; 這個要從Android的系統設計來解釋。 ---Android系統中的每個應用都是一個用戶&#xff0c;應用的包名&#xff08;清單文件中 package的值&#xff09;就是用戶名。 當一個已安裝的應用A和一個正要安裝的應用B&#xff0c;它們的包名相同&#xff…

[.Net線程處理系列]專題五:線程同步——事件構造

引言&#xff1a; 其實這部分內容應該是屬于專題四&#xff0c;因為這篇也是講關于線程同步的&#xff0c;但是由于考慮到用戶的閱讀習慣問題&#xff0c;因為文章太長了&#xff0c;很多人不是很愿意看包括我也是這樣的&#xff0c;同時也有和我說可以把代碼弄成折疊的&#x…

java redis set list_RedisTemplate的各種操作(set、hash、list、string)_lichuangcsdn的博客-CSDN博客...

注入以下RedisTemplateAutowiredprivate RedisTemplate redisTemplate;1、保存和讀取Set&#xff1a;代碼示例&#xff1a;SetOperations set redisTemplate.opsForSet(); set.add("set1","22"); set.add("set1","33"); set.add(&quo…