栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Impala相关基础知识

Impala相关基础知识

Impala相关基础知识

文章目录
  • Impala相关基础知识
    • 1. Impala简介
    • 2. Impala的优点
    • 3. Impala的缺点
    • 4. Impala与Hive的联系
    • 5. Hive与Impala数据类型
    • 6. 使用Impala操作数据
    • 参考链接

1. Impala简介

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

2. Impala的优点

    一般来说,Impala可以替代Hive进行快速的查询,Impala的优点如下:

  1. 基于内存运算,不需要把中间结果写入磁盘,省掉了大量的I/O开销
  2. Impala完全抛弃了MapReduce这个不太适合做SQL查询的范式,省掉了MapReduce作业启动的开销,直接访问存储在HDFS/Hbase中的数据进行作业调度,速度快。
  3. 尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销
  4. 可以访问hive的metastore,对hive数据直接做数据分析
3. Impala的缺点
  1. 对内存的依赖大,且完全依赖于hive
  2. 实践中,分区超过1万,性能严重下降
  3. 每当新的记录/文件被添加到HDFS中的数据目录时,该表需要被刷新,资源不不能通过YARN统⼀资源管理理调度,所以Hadoop集群⽆无法实现Impala、Spark、Hive等组件的动态资源共享
4. Impala与Hive的联系
  • Hive: 复杂的批处理理查询任务,数据转换任务,对实时性要求不高同时数据量量又很大的场景。
  • Impala:实时数据分析,与Hive配合使用,对Hive的结果数据集进行实时分析。impala不不能完全取代hive,impala可以直接处理hive表中的数据。
  • Hive对于原数据的更新操作不能被Impala感知到。
  • Impala对原数据的更新操作可以被Hive感知到。
5. Hive与Impala数据类型
Hive数据类型Impala数据类型长度
TINYINTTINYINT1byte有符号整数
SMALINTSMALINT2byte有符号整数
INTINT4byte有符号整数
BIGINTBIGINT8byte有符号整数
BOOLEANBOOLEAN布尔类型,true或者false
FLOATFLOAT单精度浮点数
DOUBLEDOUBLE双精度浮点数
STRINGSTRING字符系列。可以指定字符集。可以使用单引号或者双引号
TIMESTAMPTIMESTAMP时间类型
BINARY不支持字节数组
6. 使用Impala操作数据

    使用Scala语言来进行Impala的相关操作。

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.csdn.net/weixin_45586042/article/details/107752404
https://www.cnblogs.com/dw-date/p/13891071.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/698687.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号