原生Hadoop环境下Impala的安装和使用

本文详细介绍了如何在原生Hadoop环境下安装和使用Impala,包括Impala的基本概念、集群搭建步骤,以及安装过程中可能遇到的问题和解决方法。通过短路读取优化,实现低延迟的交互式SQL查询,并讨论了Impala在大数据分析中的应用场景。
摘要由CSDN通过智能技术生成

1. 写在前面的话

这是博主在社区版hadoop环境下学习impala时搭建的环境,亲测是可以用的.

2. Impala的基本概念

2.1 什么是Impala

  Impala就是使用SQL语句来操作Hive中的数据库和表,它可以提供低延迟的交互式的SQL查询功能.它与Hive共用表的元数据信息,所以需要使用Impala必须要先有Hive.

2.2 Impala的优缺点以及使用场景

优点:
1.基于内存计算,不需要把中间结果写入磁盘,省掉了大量的I/O开销.
2. 无需将SQL转换为MapReduce任务,可以直接访问存储在HDFS,HBASE中的数据进行作业调度,可以提高查询速度.
3. 使用了支持数据本地化的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销.
4. 支持各种文件格式,比如textFile,SequenceFile,RCFile,Parquet.注意Impala不支持ORC格式.
5. 可以通过Hive的matestore直接访问其元数据,对Hive中的表直接做数据分析.
缺点:
1.对内存依赖较大,且完全依赖于Hive(因为它与Hive共用一套元数据)
2.当Hive中的分区表分区数太多时,性能下降明显.
3.每次在Hive中为表添加,删除等操作时,在Impala中需要手动更新元数据信息.
4.资源不能通过yarn统一资源管理调度,所以Hadoop集群无法实现Impala,Spark,Hive等组件的动态资源共享.
适用场景:
1.Hive主要用于复杂的批处理查询任务,数据转换任务,对实时性要求不高同时数据量又很大的场景.
2.Impala主要用作交互式查询,能快速响应结果.一般是与Hive配合使用,对Hive的结果数据集进行实时分析.Impala并不能完全取代Hive,Impala可以直接处理Hive表中的数据.
3.Impala的安装(原生Hadoop环境下)

3. 集群搭建

3.1 集群准备

3.1.1 安装Hadoop和Hive

  • Impala的安装需要提前安装好Hadoop和Hive,因为Impala的数据实际是存在HDFS上,且Impala是直接使用Hive元数据来管理数据.
  • Hive需要在所有的Impala安装的节点上都要有,因为Impala需要引用Hive的依赖包
  • Hadoop的框架需要支持C程序访问接口,如下图,如果该路径下有.so结尾的文件,就证明支持C接口.
[root@linux121 native]# cd /opt/servers/hadoop-2.9.2/lib/native/

3.1.2 准备Impala的所有依赖包

  由于Cloudera公司对于Impala的安装只提供了rpm包没有提供tar包,但是如果使用rpm包的方式安装,需要自己取解决rpm之间的所有依赖,非常繁琐.这里使用本地yum的方式进行安装.但默认的yum源是没有Impala的rpm安装包的,所以我们自己准备好所有的Impala安装所需的rpm包,制作Yum本地源,配置Yum命令去到我们准备的Yum源中下载Impala的rpm包进行安装.

3.1.3 本地yum源制作步骤

1.Yum源是CentOS当中下载rpm包的地址,因此通过制作本地yum源并指定Yum命令使用本地Yum源,为了使Yum命令(本地和跨网络的其它节点)可以通过网络访问到本地Yum源,这里使用httpd这种静态资源服务器来开放我们下载所有的rpm包.
2. linux121节点上安装httpd服务器

#yum方式安装httpds服务器
[root@linux121 ~]# yum install -y httpd
#启动httpd服务器
[root@linux121 ~]# systemctl start httpd
#查看httpd转态是否启动
[root@linux121 ~]# systemctl status httpd

3.测试httpd服务器是否可用
httpd默认存放页面路径/var/www/html ,在该路径下新建一个test.html

[root@linux121 html]# vim test.html
<html>
<div style="font-size:100px">
this is my page!!
</div>
</html>

访问http://linux121/test.html
说明:后续可以把下载的所有rpm包解压放置到此处便可以供后面使用.
4.下载Impala安装所需的所有rpm包

#Impala所需rpm包下载地址,可以根据自己需要的版本找对应的地址
http://archive.cloudera.com/cdh5/repo-as-tarball/5.7.6/cdh5.7.6-centos7.tar.gz

说明:该tar.gz包是包含了Cloudera公司所提供的几乎所有的rpm包,为了方便,我们不去梳理其中的依赖关系,而是将所有的rpm包全部下载下来.
5.解压第4步下载下来包含所有rpm包的tar.gz包

#解压在当前目录得到一个cdh的解压目录
[root@linux121 software]# tar -zvxf cdh5.7.6-centos7.tar.gz

6.使用httpd存放这些依赖包,创建依赖包的软连接到/var/www/html

[root@linux121 software]# ln -s /opt/software/cdh/5.7.6/ /var/www/html/cdh-5.7.6

7.验证httpd访问这些依赖包是否成功

http://linux121/cdh-5.7.6/

输入网址出现如下界面
8.修改yum源配置文件

#进入该目录下
[root@linux121 software]# cd /etc/yum.repos.d/
#创建一个新的配置文件,以.repo结尾
[root@linux121 yum.repos.d]# vim local.repo
#需要与文件名保持一致
[local]
#自己随意取的名字,对于当前源的描述
name=local_yum
#访问当前源的地址信息
baseurl=http://linux121/cdh-5.7.6
#为0不做gpg校验
gpcheck=0
#当前源是否可用,为1则可用,为0则禁用
enabled=1

9.分发local.repo文件到其它节点

[root@linux121 yum.repos.d]# rsync-script ./local.repo

3.2 安装Impala

3.2.1 集群规划

节点名称 impala-catalogd impala-statestored impala-server
linux121 × ×
linux122 × ×
linux123

说明: 官方建议impala-statestored与impala-catalog安装在同一节点上.

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值