注意如下几点:
1 其中,21000是impala-shell使用,21050是impala jdbc使用
2 在Impala 2.0以后,可以使用两种方式去连接impala, Cloudera JDBC Connector 和 Hive 0.13 JDBC driver,一般推荐使用的是Cloudera JDBC 2.5 Connector
注:尽量使用PreparedStatement执行SQL语句,因为性能上要好于Statement,而且Statement存在查不出数据的情况
示例代码
package cn.itcast.impala;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestImpala {
public static void test(){
Connection con = null;
ResultSet rs = null;
PreparedStatement ps = null;
String JDBC_DRIVER = "com.cloudera.impala.jdbc41.Driver";
String CONNECTION_URL = "jdbc:impala://node-3:21050";
try
{
Class.forName(JDBC_DRIVER);
con = (Connection) DriverManager.getConnection(CONNECTION_URL);
ps = con.prepareStatement("select * from impala.employee");
rs = ps.executeQuery();
while (rs.next())
{
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
}
} catch (Exception e)
{
e.printStackTrace();
} finally
{
try {
rs.close();
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
test();
}
}