Impala提供JDBC接口,可以通过JDBC编程查询
首先得知道:impala是支持hive的JDBC驱动!只需要修改端口号,再加上一个认证就可以。
private static final String CONNECTION_URL = "jdbc:hive2://" + IMPALAD_HOST + ':' + IMPALAD_JDBC_PORT + "/;auth=noSasl";
auth=noSasl不能忘记!
如果是使用impala的jdbc驱动,就不需要加上auth=noSasl。
以下是使用impala的驱动包:
1.impala需要下载驱动包,ImpalaJdbc41.jar,驱动下载:http://https://download.youkuaiyun.com/download/zjx_z/10279097
2.下载完需要自己添加到lib中,我的环境是IDEA,以下是添加方法:
点击idea的File->project structure->Libraries->点击+号,选择java,再选择你所下载位置的jar包,点击APPLY,ok
3.基础代码展示:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnectImpala {
static String JDBC_DRIVER = "com.cloudera.impala.jdbc41.Driver";
static String CONNECTION_URL = "jdbc:impala://10.1.2.45:21050/zjx_test";//zjx_test为数据库名
public static void main(String[] args)
{
Connection con = null;
ResultSet rs = null;
PreparedStatement ps = null;
try
{
Class.forName(JDBC_DRIVER);
con = DriverManager.getConnection(CONNECTION_URL);
ps = con.prepareStatement("select * from test_1");
rs = ps.executeQuery();
while (rs.next())
{
System.out.println(rs.getInt(1) + '\t' + rs.getString(2));
}
} catch (Exception e)
{
e.printStackTrace();
} finally
{
//关闭rs、ps和con
}
}
}