1.配置環境Eclipse和JDK
2.加載hive jar包或者impala jar包
備注:從CDH集群里面拷貝出來
下載地址:https://www.cloudera.com/downloads/connectors/impala/jdbc/2-5-5.html
3.源代碼參考
/* * 1.配置好hive+sentry+impala * 2.hive配置sentry-site.xml加入屬性/值:sentry.hive.testing.mode/true * 3.部署客戶端配置,重啟組件 * 4.新建linux用戶和組:test,test,並加入組test,設置密碼為test * 5.beeline hive用戶登錄,創建角色test_role * 6.授權查詢庫給角色test_role,將角色授權給test * 7.beeline hive連接登錄測試 * 8.impala-shell連接登錄測試 * 9.show current roles、show grant role test_role、show create table test * 10.測試代碼,返回查詢結果 */ package com.impala; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class ImpalaJdbcTest { public static Connection getConnection() throws ClassNotFoundException, SQLException{ String driver = "org.apache.hive.jdbc.HiveDriver"; //String driver = "com.cloudera.impala.jdbc41.Driver"; //auth=noSasl不使用Kerberos身份驗證的群集執行此操作 //impala Daemon HiveServer2 端口-21050 //String url = "jdbc:hive2://10.0.4.142:21050/default;auth=noSasl"; String url = "jdbc:hive2://10.0.4.142:21050/touna_finance;auth=noSasl"; //jdbc:impala://localhost:21050;AuthMech=3;UID=UserName;PWD=Password //AuthMech:0-不需要密碼,1-krb驗證,2-用戶名驗證,3-用戶名和密碼驗證 //SSL:0-不連接SSL協議,1-連接SSL協議 UseSasl=0 //String url = "jdbc:impala://10.0.4.142:21050/touna_finance;AuthMech=2;SSL=0;UID=test;PWD=test"; //String url = "jdbc:impala://10.0.4.142:21050/default"; //String url = "jdbc:hive2://10.0.4.142:21050/default"; String username = "test"; String password = "test"; Connection conn = null; Class.forName(driver); //conn = (Connection) DriverManager.getConnection(url); conn = (Connection) DriverManager.getConnection(url,username,password); return conn; } public void select() throws ClassNotFoundException, SQLException{ Connection conn = getConnection(); String sql = "select * from tn_fms_task_record limit 2"; PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); int col = rs.getMetaData().getColumnCount(); System.out.println("====================================="); while (rs.next()){ for(int i=1;i<=col;i++){ System.out.print(rs.getString(i)+"\t"); } System.out.print("\n"); } System.out.println("====================================="); } public static void main(String[] args) throws SQLException, ClassNotFoundException { ImpalaJdbcTest hiveJdbcClient = new ImpalaJdbcTest(); hiveJdbcClient.select(); } }