打赏

Impala通过JDBC方式访问

 

 

   不多说,直接上干货!

 

 

 

 

 

 

 

• 配置:
  – impala.driver=org.apache.hive.jdbc.HiveDriver
  – impala.url=jdbc:hive2://node2:21050/;auth=noSasl
  – impala.username=
  – impala.password=


• 尽量使用PreparedStatement执行SQL语句:
  – 1.性能上PreparedStatement要好于Statement
  – 2.Statement存在查询不出数据的情况

 

 

 

 

下面是Java的测试代码:

  首先是引入Impala所需要的类库

  

 

 

 

  然后是测试代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;
public class demo {
    public static Connection getConnection() throws ClassNotFoundException, SQLException{
        String driver = "org.apache.hive.jdbc.HiveDriver";
        String url = "jdbc:hive2://node23:21050/;auth=noSasl";
        String username = "";
        String password = "";
        Connection conn = null;
        Class.forName(driver);
        conn = (Connection) DriverManager.getConnection(url,username,password);
        return conn;
    }
    @Test
    public void select() throws ClassNotFoundException, SQLException{
        Connection conn = getConnection();
        String sql = "select * from t_stu;";
        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("=====================================");
    }
}

 

 

 

  最后是测试结果:

 

 

 

 

 

 

 

 

 

更多参考

http://www.cloudera.com/content/cloudera/en/documentation/cloudera-impala/latest/topics/impala_jdbc.html

 

posted @ 2017-04-29 18:05  大数据和AI躺过的坑  阅读(20697)  评论(0编辑  收藏  举报