Cloudera-Impala JDBC是以版本JDBC4.0和JDBC4.1数据标准编译的。
Impala-JDBC的系统要求
Java版本要求:
Impala版本要求:
Impala(apache 单独)版本范围:impala1.0.1---impala2.5
或者:CDH版本5.6和 5.7.
Cloudera Impala JDBC 应用所需要的Jar包,和api文档下载:
下载地址:https://www.cloudera.com/downloads/connectors/impala/jdbc/2-5-28.html
下载需要用户注册cloudera账户邮箱电话等,随便注册一下就可以了。。。
下载的是一个zip包:impala_jdbc_2.5.36.2056.zip
解压后文件夹下面有两个zip包和两个操作文档:
根据系统版本和环境的要求:大多数情况下我们使用个的是Cloudera-ImpalaJDBC41这个zip包
解压这个Cloudera-ImpalaJDBC41 zip包得到我们Impala-JDBC所有需要得jar包:
解压后得到的jar包添加到我们得开发环境中,然后就可以开发了。
测试代码:
package com.renrenxing.impala; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; /** * Created by xiaohu on 2017/2/20. */ //$ip代表impalad得ip地址,默认情况下就是我们可以只写impala-shell命令得客户端地址。 public class ImpalJDBC { static String JDBC_DRIVER = "com.cloudera.impala.jdbc41.Driver"; static String CONNECTION_URL = "jdbc:impala://ip:21050/default"; 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 count(*) from a"); rs = ps.executeQuery(); while (rs.next()){ System.out.println(rs.getString(1)); } } catch (Exception e){ e.printStackTrace(); } finally{ try { ps.close(); rs.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } } }
或者可以到github社区下载相应得代码:
github代码下载地址:https://github.com/onefoursix/Cloudera-Impala-JDBC-Example
备注:
在linux环境开发得时候需要我们把所有得jar包加入CLASSPTH中,这样才可以编译通过。
export CLASSPATH=.:/your jar dir/*.jar:$CLASSPATH
编译:javac ImpalJDBC.java
把编译后得 ImpalJDBC.class 文件打成jar包:jar -cvf ImpalJDBC.jar ImpalJDBC.class
还需要注意一点得是:如果想要执行代码必须把所有得Jar带上。如,
java -cp .:./ImpalJDBC.jar:./ImpalaJDBC41.jar:./hive_service.jar:./hive_metastore.jar:./libthrift-0.9.0.jar:./log4j-1.2.14.jar:./slf4j-log4j12-1.5.11.jar:./slf4j-api-1.5.11.jar:./TCLIServiceClient.jar ImpalJDBC
另外:如何权限控制Impala还在调研中。