Hive記錄-Impala jdbc連接hive和kudu參考


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();
    }  
}  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM