开发者学堂课程【大数据Impala教程:JDBC 操作 impala】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/722/detail/12897
JDBC 操作 impala
内容介绍:
一、下载 impala jdbc 依赖
二、创建 java 工程
三、java api
在 impala 的众多操作方式当中,除了官方提供的命令行之外,也有的企业是由的 Java API 去控制 impala 的查询,原因很简单,相比较 hive 的查询 impala 的查询速度比较快,接近于实时查询,就有的公司可能会在自己的项目当中去融合 Java 代码,进行 impala 的各种查询操作。
一、下载 impala jdbc 依赖
下载路径:http://www.cloudera.com/downloads/connectors/impala/jdbc/2-5-28.html
Java 开发 impala 就得下载 jdbc 驱动,impala 比较特殊,首先知道 impala 原本是属于 cloudera 这家商业公司,它的连接驱动只有商业公司提供,所以通过 maven 工程去引用的时候,在中央仓库是没有jar包的,必须通过上面这个链接去下载,
上面可能还需要简单的进行注册,如果说在企业当中需要使用这种商业公司 jar 包,把它下载下来,按照规范添加到自己的企业当中。
点击这个链接进去看,来到官网,
其中一个下载地址就是 jdbc 访问 impala 的各种驱动,可以选择 impala 的版本,是用哪个版本。接下来选择操作系统,下面可以弹出相关的一个操作系统的选择:
调整完之后,接着选择系统,比如通常是在 Linux 系统,后面 OS Version 系统选择 Rhel 6-64 bit,点击下载后填上一个注册信息点击登录同意下面链接就可以下载下来了。
选择软件 impala,下载下来是一个 zip 的压缩包。当从官网下载解压驱动之后,这里面会有相关的 jdbc 驱动,打开它里面有两个 zip 压缩包,需要选择 jdbc412.5这个版本,把它解压开,这里全部揭示就是两个文件的覆盖,就出现了相关的 jar 包依赖,当中 impalajdbc41.jar 是核心。这个是官方提供的,其他没有。这是第一个必须要去解决的 jar 包依赖的问题,现在企业当中的这些 jar 包切下到 MEMS 视频当中来进行下载。
有了 jdbc 之后接下来就是传统的操作方式了。用的 Javajdbc 去访问数据库,不管是 impala 还是其它,大家需要注册驱动获得一个连接,执行查询,解析结果。impala 也是这样,只不过它使用的驱动是由 cloudera 提供的驱动。
二、创建 java 工程
创建一个普通的 Java 工程,把 jar 包添加到当中,打开 intellij jdea 开发工具,创建一个新的工程,这时候选择上面的 Java,因为 maven 引入不到这个 jar 包了,其它都不要选,直接点击下一步,也不用创建 template,比如进行创建hello impala,这样就打开了一个普通的 jar 工程。
创建一个文件夹,又一个 directory 接下来把刚才加出来的依赖全部添加进去,打开刚才那几个链接,把里面的所有的这几个 jar 包都给它选择播种,所以这里几个 jar 包选择添加到内部路径上:
一个不要少复制放在 lib 当中,添加过来之后,并不能当做 jar 包使用,还要右键 add asl ibrary 就可以解析了,这样就完成了一个工程创建。
三、java api
写非常传统的 java api 的方式:首先去注册驱动,如下图:
名字叫做 com.cloudera impala.jdbc,然后就是连接地址,这个地址也是 jdbc 叫做 impala 指定的机器端口,有了驱动,根据驱动获得一个连接,然后执行参与语句,然后对结果做一个解析就完成了。
接下来创建一个的 package 叫做 cn.itcast.impala,如图所示:
然后把 jar 包拷贝过来,选择 impala 下面有个叫做 testimpala,复制一下,把它添加到这个工程当中,只要注意一个地方,就是驱动的名字要保持注意是 impala 驱动,另外就是一个地址 jdbc.impala 这里指向的是 lode-321050,就是在 lode-30上面的,可以指向其他的机器,下面注册驱动,获得连接,执行 SQL 语句,然后执行完之后解析的结果,4步走。
对 select*from impala.employee 做一个执行,这样就返回出来了相关的结果,事实上在这一个 result 当中有各种方法去获信息,比如这里是通过列的索引来获取的,获得第一列、第二列、第三列,它里面这还只是根据列的名字来获取,想获取什么都可以在这里进行相关的解析,而且这种查询速度非常的快,如果说使用 JDBC 的方式去连接 hive,这个操作将会非常的可靠。
这也算是 impala 跟 hive 的一个区别,可以在项目当中,如果数据量比较大,又要进行分析的话,就可以用 impala 去操作。