OLAP-impala-大数据Week13-DAY6-impala


前言


# 大数据技术之impala

一、准备

安装好hive以及hadoop运行环境,并正常启动hadoop以及hive的

二、主题

实现impala集群环境正常安装,并掌握impala的基本语法

三、目标

熟练使用impala的语法

四、知识要点

离线任务处理流程概述

在这里插入图片描述

由于大部分的软件框架,CDH都提供了压缩包的安装方式,但是由于impala有部分代码使用C++编写,所以impala在安装包的选择上面,cloudera公司没有提供tar包的安装方式,只提供了rpm的安装方式,我们可以通过下载rpm包来进行安装。注意:rpm包是linux操作系统上面的一种安装压缩包

1、 impala的概述

imala基本介绍

impala是cloudera提供的一款高效率的sql查询工具,提供实时的查询效果,官方测试性能比hive快10到100倍,其sql查询比sparkSQL还要更加快速,号称是当前大数据领域最快的查询sql工具,impala是参照谷歌的新三篇论文(Caffeine、Pregel、Dremel)当中的Dremel实现而来,其中旧三篇论文分别是(BigTable,GFS,MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce

impala是基于hive并使用内存进行计算,兼顾数据仓库,具有实时,批处理,多并发等优点

impala与hive的关系

impala是基于hive的大数据分析查询引擎,直接使用hive的元数据库metadata,意味着impala元数据都存储在hive的metastore当中,并且impala兼容hive的绝大多数sql语法。所以需要安装impala的话,必须先安装hive,保证hive安装成功,并且还需要启动hive的metastore服务

impala的优点

1、impala比较快,非常快,特别快,因为所有的计算都可以放入内存当中进行完成,只要你内存足够大

2、摈弃了MR的计算,改用C++来实现,有针对性的硬件优化

3、具有数据仓库的特性,对hive的原有数据做数据分析

4、支持ODBC,jdbc远程访问

impala的缺点:

1、基于内存计算,对内存依赖性较大

2、改用C++编写,意味着维护难度增大

3、基于hive,与hive共存亡,紧耦合

4、稳定性不如hive,不存在数据丢失的情况

impala的架构以及查询计划

在这里插入图片描述

Impala的架构模块:

impala-server ==>启动的守护进程,执行我们的查询计划 从节点,官方建议与所有的datanode装在一起,可以通过hadoop的短路读取特性实现数据的快速查询

impala-statestore ==》 状态存储区 主节点

impalas-catalog ==》元数据管理区 主节点

查询执行

impalad分为frontend和backend两个层次, frondend用java实现(通过JNI嵌入impalad), 负责查询计划生成, 而backend用C++实现, 负责查询执行。

frontend****生成查询计划分为两个阶段:

(1)生成单机查询计划,单机执行计划与关系数据库执行计划相同,所用查询优化方法也类似。

(2)生成分布式查询计划。 根据单机执行计划, 生成真正可执行的分布式执行计划,降低数据移动, 尽量把数据和计算放在一起。

在这里插入图片描述

上图是SQL查询例子, 该SQL的目标是在三表join的基础上算聚集, 并按照聚集列排序取topN。

impala的查询优化器支持代价模型: 利用表和分区的cardinality,每列的distinct值个数等统计数据, impala可估算执行计划代价, 并生成较优的执行计划。 上图左边是frontend查询优化器生成的单机查询计划, 与传统关系数据库不同, 单机查询计划不能直接执行, 必须转换成如图右半部分所示的分布式查询计划。 该分布式查询计划共分成6个segment(图中彩色无边框圆角矩形), 每个segment是可以被单台服务器独立执行的计划子树。

在这里插入图片描述

2、impala的安装环境准备

需要提前安装好hadoop,hive,这两个框架,并且hive需要将hive的安装包,拷贝到所有的服务器上面都保存一份,因为impala需要引用hive的安装目录下面的一些依赖的jar包

3、下载impala的所有依赖包

由于impala没有提供tar包供我们进行安装,只提供了rpm包,所以我们在安装impala的时候,需要使用rpm包来进行安装,rpm包只有cloudera公司提供了,所以我们去cloudera公司网站进行下载rpm包即可,但是另外一个问题,impala的rpm包依赖非常多的其他的rpm包,可以一个个的将依赖找出来,也可以将所有的rpm包下载下来,制作成我们本地yum源来进行安装。我们这里就选择制作我们本地的yum源来进行安装,所以首先我们需要下载到所有的rpm包,下载地址如下

http://archive.cloudera.com/cdh5/repo-as-tarball/5.14.2/cdh5.14.2-centos7.tar.gz

下载好了之后,保留下,留作备用

将我们下载好的压缩包,上传到node03服务器的/kkb/soft路径下,并进行解压

cd /kkb/soft
tar -zxvf cdh5.14.2-centos7.tar.gz

4、制作本地yum源

镜像源是centos当中下载相关软件的地址,我们可以通过制作我们自己的镜像源指定我们去哪里下载impala的rpm包,这里我们使用httpd这个软件来作为服务端,启动httpd的服务来作为我们镜像源的下载地址

这里我们选用第三台机器作为镜像源的服务端

node03机器上执行以下命令

sudo yum  -y install httpd
sudo service httpd start

cd /etc/yum.repos.d
sudo vim localimp.repo 

[localimp]
name=localimp
baseurl=http://node03/cdh5.14.2/
gpgcheck=0
enabled=1

创建apache httpd的读取链接

sudo ln -s /kkb/soft/cdh/5.14.2 /var/www/html/cdh5.14.2

页面访问本地yum

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低调的小哥哥

你的关注就是我为你服务的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值