impala查询语句_Impala

Impala概述

Impala是什么

Impala是一款针对HDFS和HBASE中的PB级别数据进行交互式实时查询工具。最大的特点就是速度快

Impala优势
Impala的诞生

Hive与MR适合离线批处理,但是对交互式查询的场景无能为力(快速响应),所以为了积极查询速度问题开发了Impala,Impala抛弃了MR,使用了类似传统的MPP数据库技术,提高了查询速度

MPP是什么?

MPP (Massively Parallel Processing),就是大规模并行处理(MR是分布式并行计算框架),在MPP集群中,每个节点资源都是独⽴享有(MR依托的是Yarn,节点资源可能这个任务使用,下个任务也使用),也就是有独立的磁盘和内存,每个节点通过网络互相连接,彼此协同计算,作为整体提供数据服务。

MPP是将任务并行的分散到多个服务器和节点上,在每个节点计算完成后,将各自的部分结果汇总到一起的到最终的结果(也是分而治之的思想)

对于MPP架构的软件来说聚合操作,比如计算某张表的总条数,则先进行局部聚合(每个节点并行计算,MR并没有进行聚合,例如WordCount,只是输出,预聚合是shuffle阶段处理的), 然后把局部汇总结果进行全局聚合(与Hadoop相似)。

Impala和Hive技术对比
  • Impala没有采用MapReduce计算规则,(MR慢的原因:1、Shuffle阶段,IO开销,2、Shullfe解决默认对key分区排序),MR是很好的分布式并行计算框架,但是更多的面向批处理模式,而不是交互式的SQL执行。与Hive相比,Impala把整个查询转为一颗执行计划树,而不是一连串的MR任务,在分发执行计划后,Impala使用拉取的方式获取上一个阶段的执行结果,把数据按执行树流式传递汇总,减少MR的Shuffle阶段的IO操作,而且也没有Hive每次启动MR的启动时间。

  • 避免数据落盘

  • 处理进程无需每次启动

  • Impala默认不会对数据排序

  • 使用C++编写

  • 优秀的IO调度,Impala支持直接数据块读取和本地计算(HDFS短路读取)

  • 选择适合的数据存储格式可以得到最好的性能(支持多次存储格式),列式存储对数据分析提升很大。

  • 尽可能使用内存,中间结果不写磁盘,及时通过网络以stream的方式传递

Impala与Hive查询过程对比分析
  • Hive:每个查询都有冷启动问题。(MapReduce每次启动关闭都要申请、释放资源)

  • Impala:避免了启动开销,这是一种本地查询语言,因为始终处理查询,则Impala守护进程总是在集群启动的之后就准备就绪。守护进程在集群启动之后就可以接受查询任务并行执行查询任务

Impala与Hive中间结果对比分析
  • Hive:Hive通过MR引擎实现所有中间结果,中间结果需要落盘

  • Impala:避免数据落盘,在节点之间采用流式传输中间结果,尽可能使用内存避免磁盘开销

Impala与Hive交互查询对比分析
  • Hive:不适合

  • Impala:适合(数据量级PB级别)

Impala与Hive计算引擎对比分析
  • Hive:基于批处理的Hadoop MR

  • Impala:更像是MPP数据库(非常传统的技术)

Impala与Hive容错对比分析
  • Hive:有容错的(通过MR&Yarn实现,Yarn会启动AppMaster,AppMaster来调度MR里面的MapTask和ReduceTask,如果有错误出现,AppMaster会重新调度任务再次执行)

  • Impala:没有容错,由于良好的查询性能,Impala遇到错误会重新执行一次查询。

Impala与Hive查询速度对比分析
  • Impala:官方:比Hive快3-90倍。

总结:

  1. 在一定数据量下(PB级别,数据量属于中等),查询速度快。

  2. 速度快的原因:不使用MR引擎,避免了IO、排序、冷启动等,采用了MPP数据库技术。

Impala的缺点
  1. Impala使用的MPP架构,只能做到百节点级,一般并发查询个数达到20个左右,整个系统的吞吐已经达到了满负荷状态,再扩容节点也提升不了吞吐量。处理数据在PB级别最佳

  2. 资源不能通过Yarn统一资源调度,所以Hadoop集群无法实现Impala、Spark、Hive等组件的动态资源共享。

使用场景
  • Hive:复杂的批处理查询任务,数据转化任务,对实时性要求不高同时数据量又很大的场景

  • Impala:实时数据分析,与Hive配合使用,对Hive结果集进行实时分析,Impala不能完全取代Hive,Impala可以直接处理Hive表中的数据。

Impala安装

集群准备
按照Hadoop、Hive
  • 按照Impala之前需要Hadoop(Impala数据存储在HDFS)、Hive(Impala直接使用Hive元数据管理数据)

  • Hive包需要在Impala的节点上都要有(Impala需要引用Hive包)

  • Hadoop的框架需要支持C程序访问

准备Impala的依赖包

由于目前Impala的安装只提供rpm,没有tar,但是使用rpm的时候又会有很多的依赖,一个个寻找以来太费劲,所以自己来做本地yum源

制作本地Yum源

1、Linux120上安装Httpd服务器

#yum⽅式安装httpd服务器器 
yum install httpd -y
#启动httpd服务器器 
systemctl start httpd
#验证httpd⼯工作是否正常,默认端⼝口是80,可以省略略 
http://linux121

共享的路径:

/var/www/html/

2、下载需要的rpm包

 http://archive.cloudera.com/cdh5/repo-as-tarball/5.7.6/cdh5.7.6-centos7.tar.gz

 tar -zxvf cdh5.7.6-centos7.tar.gz

3、使用Httpd放依赖包,一种是移动解压好文件,一种是软连接

ln -s /opt/lagou/software/cdh/5.7.6 /var/www/html/cdh57

4、修改Yum源配置文件

cd /etc/yum.repos.d 
#创建⼀一个新的配置⽂文件 
vim local.repo
#添加如下内容
[local]
name=local
baseurl=http://linux120/cdh57/
gpgcheck=0
enabled=1
  • [local] :serverId,唯一标识

  • name:对当前yum源的描述

  • baseusl:访问当前源的地址信息

  • gpgcheck:是否进行gpg校验

  • enable:是否使用当前源

5、分发到其他节点

 rsync-script local.repo
安装Impala
集群规划
服务名称 Linux121 Linux122 Linux123
impala-catalog
impala-states
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值