hive 版本apache-hive-1.2.1-bin
1.先啟動mysql (sevice mysql start)
2.啟動hive遠程服務,輸入:./hive --service hiveserver2 或者hiveserver2
如圖服務已經啟動成功;
3.引入jar包到項目中
jar包 包括: apache-hive-1.2.1-bin 里面的lib下的jar包,還有hadoop-2.7.1--》share--》hadoop--》common下的hadoop-common-2.7.1.jar
4.在項目中寫入以下代碼即可
Class.forName("org.apache.hive.jdbc.HiveDriver");
Connection connection = DriverManager.getConnection("jdbc:hive2://192.168.18.130:10000/", "root","root");
URL(該版本端口10000/后可以不加default) 用戶名 密碼
(端口10000是默認的,也可以在啟動hive遠程服務的時候通過-p設置)
例:
package com.java.hadoop.hive; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore.Processor.drop_database; import org.junit.Before; import org.junit.Test; public class TestHive { private Connection connection; private PreparedStatement ps; private ResultSet rs; //創建連接 @Before public void getConnection() { try { Class.forName("org.apache.hive.jdbc.HiveDriver"); connection = DriverManager.getConnection("jdbc:hive2://192.168.18.130:10000/", "root", "root"); System.out.println(connection); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } //關閉連接 public void close() { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (connection != null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } // 創建表 @Test public void createTable() { String sql = "create table goods2(id int,name string) row format delimited fields terminated by '\t' "; try { ps = connection.prepareStatement(sql); ps.execute(sql); close(); } catch (SQLException e) { e.printStackTrace(); } } // 刪除表 @Test public void dropTable() { String sql = "drop table goods"; try { ps = connection.prepareStatement(sql); ps.execute(); close(); } catch (SQLException e) { e.printStackTrace(); } } //添加數據 @Test public void insert() throws SQLException{ String sql = "load data inpath '/goods.txt' into table goods"; //記得先在文件系統中上傳goods.txt ps = connection.prepareStatement(sql); ps.execute(); close(); } //查詢 @Test public void find() throws SQLException { String sql = "select * from goods "; ps = connection.prepareStatement(sql); rs = ps.executeQuery(); while (rs.next()) { System.out.println(rs.getObject(1) + "---" + rs.getObject(2)); } close(); } }