Impala相关基础知识
Impala相关基础知识
1. Impala简介
Impala是由Cloudera公司推出,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。Impala基于Hive,提供内存计算,已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。
2. Impala的优点
一般来说,Impala可以替代Hive进行快速的查询,Impala的优点如下:
- 基于内存运算,不需要把中间结果写入磁盘,省掉了大量的I/O开销
- Impala完全抛弃了MapReduce这个不太适合做SQL查询的范式,省掉了MapReduce作业启动的开销,直接访问存储在HDFS/HBase中的数据进行作业调度,速度快。
- 尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销
- 可以访问hive的metastore,对hive数据直接做数据分析
3. Impala的缺点
- 对内存的依赖大,且完全依赖于hive
- 实践中,分区超过1万,性能严重下降
- 每当新的记录/文件被添加到HDFS中的数据目录时,该表需要被刷新,资源不不能通过YARN统⼀资源管理理调度,所以Hadoop集群⽆无法实现Impala、Spark、Hive等组件的动态资源共享
4. Impala与Hive的联系
-
Hive: 复杂的批处理理查询任务,数据转换任务,对实时性要求不高同时数据量量又很大的场景。 Impala:实时数据分析,与Hive配合使用,对Hive的结果数据集进行实时分析。impala不不能完全取代hive,impala可以直接处理hive表中的数据。 Hive对于原数据的更新操作不能被Impala感知到。 Impala对原数据的更新操作可以被Hive感知到。
5. Hive与Impala数据类型
6. 使用Impala操作数据
使用Scala语言来进行Impala的相关操作。
/* * 需要在resources添加spark相关配置文件 */ object ImpalaTest { var jdbcTemplate: JdbcTemplate = null var dataSource: ComboPooledDataSource = null // driverName private val driverClass: String = "com.cloudera.impala.jdbc41.Driver" // jdbc连接url private val defaultConnectUrl: String = "jdbc:impala://192.168.60.201:21050/ods_frtfd;AuthMech=3;UID=admin;PWD=admin;UseSasl=0"; private val minPoolSize: Int = 3 private val acquireIncrement: Int = 5 private val maxPoolSize: Int = 20 private val checkoutTimeout: Int = 180000 def main(args: Array[String]): Unit = { jdbcTemplate = new JdbcTemplate(); dataSource = new ComboPooledDataSource(); dataSource.setDriverClass(driverClass) dataSource.setJdbcUrl(defaultConnectUrl) dataSource.setMinPoolSize(minPoolSize) dataSource.setMaxPoolSize(maxPoolSize) dataSource.setAcquireIncrement(acquireIncrement) dataSource.setCheckoutTimeout(checkoutTimeout) jdbcTemplate.setDataSource(dataSource) val sql: String = "select * from ods_frtfd.ods_ind_doc where date_ymd = 2021-11-03" // 查询Hive中的数据 val list: util.List[OdsIndDoc] = jdbcTemplate.query(sql, new BeanPropertyRowMapper[OdsIndDoc](classOf[OdsIndDoc])) println(list.toString) } }
https://baike.baidu.com/item/Impala/7458017?fr=aladdin https://www.cnblogs.com/dw-date/p/13891071.html https://blog..net/weixin_45586042/article/details/107752404 https://www.cnblogs.com/dw-date/p/13891071.html