Impala集成C3P0的连接方式

  Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。【百度百科】

  Impala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询引擎。它是一个用C++和Java编写的开源软件。与其他Hadoop的SQL引擎相比,它提供了高性能和低延迟。换句话说,Impala是性能最高的SQL引擎(提供类似DBMS的体验),它提供了访问存储在Hadoop分布式系统中的数据的最快方法。

2. 比较区别 2.1 关系数据库和Impala

  Impala使用类似于SQL和HiveQL的Query语言。下表描述了SQL和Impala查询语言之间的一些关键差异。

Impala   关系型数据库  
Impala使用类似于HiveQL的类似SQL的查询语言   关系数据库使用SQL语言  
在Impala中,你无法更新或删除单个记录   在关系数据库中,可以更新或删除单个记录  
Impala不支持事务   关系数据库支持事务  
Impala不支持索引   关系数据库支持索引  
Impala存储和管理大量数据(PB)   与Impala相比,关系数据库处理的数据量较少(TB)  
2.1 Hive,HBase和Impala

  Impala使用与Hive相同的查询语言,元数据和用户界面,但在某些方面它与Hive和HBase不同。

HBase   Hive   Impala  
HBase是基于Apache Hadoop的宽列存储数据库。它使用BigTable的概念   Hive是一个数据仓库软件。使用它,我们可以访问和管理基于Hadoop的大型分布式数据集   Impala是一个管理,分析存储在Hadoop上的数据的工具  
 HBase的数据模型是宽列存储    Hive遵循关系模型    Impala遵循关系模型  
 HBase是使用Java语言开发的    Hive是使用Java语言开发的    Impala是使用C++开发的  
 HBase的数据模型是无模式的    Hive的数据模型是基于模式的    Impala提供JDBC和ODBC API  
 支持C,C#,C++,Groovy,Java,PHP,Python和Scala等编程语言    支持C++,Java,PHP和Python等编程语言    Impala支持所有支持JDBC/ODBC的语言  
 HBase提供Java,RESTful和Thrift API    Hive提供JDBC,ODBC,Thrift API    Impala支持所有支持JDBC/ODBC的语言  
 HBase提供对触发器的支持    Hive不提供任何触发器支持   Impala不提供对触发器的任何支持   
3. Impala开发步骤

使用IDEA作为开发工具

3.1 下载Impala依赖包

  https://www.cloudera.com/downloads/connectors/impala/jdbc/2-5-30.html

  下图就是上述下载依赖包解压得到的:

  

Impala集成C3P0的连接方式

3.2 把Impala依赖包导入本地maven仓库

  把上述红框的jar包导入到本地maven仓库,因为在maven仓库中心没有impala的依赖包。输入命令如下:

  mvn install:install-file -Dfile=ImpalaJDBC41.jar -DgroupId=com.cloudera.impala.jdbc -DartifactId=ImpalaJDBC41 -Dversion=1.0.0 -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true

  mvn install:install-file -Dfile=ql.jar -DgroupId=com.cloudera.impala.jdbc -DartifactId=ql -Dversion=1.0.0 -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true

  mvn install:install-file -Dfile=TCLIServiceClient.jar -DgroupId=com.cloudera.impala.jdbc -DartifactId=TCLIServiceClient -Dversion=1.0.0 -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true

  成功导入的结果如下:

  

Impala集成C3P0的连接方式

3.3 pom.xml配置依赖

<?xml version=http://www.likecs.com/"1.0" encoding=http://www.likecs.com/"UTF-8"?> <project xmlns=http://www.likecs.com/"" xmlns:xsi=http://www.likecs.com/"" xsi:schemaLocation=http://www.likecs.com/" http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.impala</groupId> <artifactId>test</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>com.cloudera.impala.jdbc</groupId> <artifactId>hive_metastore</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>com.cloudera.impala.jdbc</groupId> <artifactId>ImpalaJDBC41</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>com.cloudera.impala.jdbc</groupId> <artifactId>ql</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>com.cloudera.impala.jdbc</groupId> <artifactId>TCLIServiceClient</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>org.apache.thrift</groupId> <artifactId>libfb303</artifactId> <version>0.9.0</version> </dependency> <dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> <version>0.9.0</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.5.11</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.5.11</version> </dependency> <!--c3p0连接池--> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpsfgj.html