impala(1)——安装

概述

Impala是Cloudera提供的⼀款开源的针对HDFSHBASE中的PB级别数据进⾏交互式实时查询(Impala 速度快)

Impala是参照⾕歌的新三篇论⽂当中的Dremel实现⽽来,其中旧三篇论⽂分别是 (BigTableGFSMapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce

Impala 最⼤卖点和最⼤特点就是 快速 Impala 中⽂翻译是⾼⻆羚⽺

 Impala的诞⽣

之前学习的Hive以及MR适合离线批处理,但是对交互式查询的场景⽆能为⼒(要求快速响应),所以为了 解决查询速度的问题,Cloudera公司依据GoogleDremel开发了Impala,

Impala抛弃了MapReduce 使⽤了类似于传统的MPP数据库技术,⼤⼤提⾼了查询的速度。

ImpalaHive对⽐分析

查询过程
Hive :在 Hive 中,每个查询都有⼀个 冷启动 的常⻅问题。( map,reduce 每次都要启动关闭,申 请资源,释放资源。。。)
Impala Impala 避免了任何可能的启动开销,这是⼀种本地查询语⾔。 因为要始终处理查询,则 Impala守护程序进程总是在集群启动之后就准备就绪。守护进程在集群启动之后可以接收查询任 务并执⾏查询任务。
中间结果
Hive Hive 通过 MR 引擎实现所有中间结果,中间结果需要落盘,这对降低数据处理速度有不利影 响。
Impala :在执⾏程序之间使⽤流的⽅式传输中间结果,避免数据落盘。尽可能使⽤内存避免磁盘 开销
交互查询
Hive :对于交互式计算, Hive 不是理想的选择。
Impala :对于交互式计算, Impala ⾮常适合。 ( 数据量级 PB )

 计算引擎

Hive:是基于批处理的Hadoop MapReduce

Impala :更像是 MPP 数据库
容错
Hive Hive 是容错的(通过 MR&Yarn 实现)
Impala Impala 没有容错,由于良好的查询性能, Impala 遇到错误会重新执⾏⼀次查询
查询速度
Impala Impala Hive 3-90

Impala 优势总结
1. Impala 最⼤优点就是查询速度快,在⼀定数据量下;
2. 速度快的原因:避免了 MR 引擎的弊端,采⽤了 MPP 数据库技术,
 Impala 的缺点
1. Impala 属于 MPP 架构,只能做到 百节点级 ,⼀般并发查询个数达到 20 左右时,整个系统的吞吐已 经达到满负荷状态,在扩容节点也提升不了吞吐量,处理数据量在PB 级别最佳。
2. 资源不能通过 YARN 统⼀资源管理调度,所以 Hadoop 集群⽆法实现 Impala Spark Hive 等组件 的动态资源共享。

适⽤场景

Hive : 复杂的批处理查询任务,数据转换任务,对实时性要求不⾼同时数据量⼜很⼤的场景。
Impala :实时数据分析,与 Hive 配合使⽤ , Hive 的结果数据集进⾏实时分析。 impala 不能完全取代 hive, impala 可以直接处理 hive 表中的数据

Impala 安装

依赖环境安装

1、安装了Hadoop,Hive

2、 安装Httpd服务器(在linux126上)

#yum⽅式安装httpd服务器
yum install httpd -y

#启动httpd服务器
systemctl start httpd

#验证httpd⼯作是否正常,默认端⼝是80,可以省略
http://linux126

验证

3、上传Impala安装所需rpm

cd /opt/software
rz 
...

--解压
tar -zxvf cdh5.7.6-centos7.tar.gz cdh

--使⽤Httpd盛放依赖包,创建软链接到/var/www/html下

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

验证

浏览器输入

http://linux126/cdh57/

4、修改Yum源配置⽂件

cd /etc/yum.repos.d

#创建⼀个新的配置⽂件
vim local.repo

#添加如下内容
[local]
name=local
baseurl=http://linux121/cdh57/
gpgcheck=0
enabled=1

配置说明: 

name: 对于当前源的描述
baseurl: 访问当前源的地址信息
gpgcheck: 1 0,gpg 校验
enabled:1/0, 是否使⽤当前源

5、分发local.repo⽂件到其它节点

rsync-script local.repo

集群规划

服务名称linux126linux127linux128
impala-catalogd
impala-statestored
impala-server

impala-server: 这个进程是 Impala 真正⼯作的进程,官⽅建议把 impala-server 安装在 datanode 节点, 更靠近数据(短路读取), 进程名 impalad
impala-statestored: 健康监控⻆⾊,主要监控 impala-server,impala-server 出现异常时告知给其它 impala-server;进程名叫做 statestored
impala-catalogd : 管理和维护元数据 (Hive),impala 更新操作;把 impala-server 更新的元数据通知给其 它impala-server, 进程名 catalogd
Linux128
yum install impala -y
yum install impala-server -y
yum install impala-state-store -y
yum install impala-catalog -y
yum install impala-shell -y
Linux126 Linux127
yum install impala-server -y
yum install impala-shell -y

配置Impala

1. 修改hive-site.xml

vim hive-site.xml


<!--指定metastore地址,之前添加过可以不⽤添加 -->
<property>
 <name>hive.metastore.uris</name>
 
<value>thrift://linux126:9083,thrift://linux128:9083</value>
</property>
<property>
 <name>hive.metastore.client.socket.timeout</name>
 <value>3600</value>
</property>
2. 分发 Hive 安装包到集群节点
rsync-script hive-site.xml 
3. 修改 HDFS 集群 hdfs-site.xml
配置 HDFS 集群的短路读取
什么是短路读取?
短路读取:就是 Client DataNode 属于同⼀节点,⽆需再经过⽹络传输数据,直接本地读取。
要配置短路本地读,需要验证本机 Hadoop 是否有 libhadoop.so;
ll /opt/servers/hadoop-2.9.2/lib/native
短路读取配置步骤
3.1  创建短路读取本地中转站
#所有节点创建⼀下⽬录
mkdir -p /var/lib/hadoop-hdfs

chmod -R 755 /var/lib/hadoop-hdfs
chown root /var/lib/hadoop-hdfs

chmod -R 755 /var/lib/hadoop-mapreduce
chown root /var/lib/hadoop-mapreduce

chmod -R 755 /var/lib/hadoop-yarn
chown root /var/lib/hadoop-yarn

3.2 修改hdfs-site.xml 

cd /opt/servers/hadoop-2.9.2/etc/hadoop

vim hdfs-site.xml

<property> 
<name>dfs.client.read.shortcircuit</name>
 <value>true</value>
 </property>
<!--这是⼀个UNIX域套接字的路径,将⽤于DataNode和本地HDFS客户机之间的通信 -->
 <property>
 <name>dfs.domain.socket.path</name>
 <value>/var/lib/hadoop-hdfs/dn_socket</value>
 </property>
<!--block存储元数据信息开发开关 -->
<property>
 <name>dfs.datanode.hdfs-blocks-metadata.enabled</name>
 <value>true</value>
</property> <property>
 <name>dfs.client.file-block-storage-locations.timeout</name>
 <value>30000</value>
</property>
3.3 分发到集群其它节点。
rsync-script  hdfs-site.xml
4. Impala 具体配置
引⽤ HDFS Hive 配置,执⾏以下命令把Hdfs Hive 的配置⽂件软链接到 /etc/impala/conf
--所有节点都要执⾏此命令!

ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/core-site.xml /etc/impala/conf/core-site.xml

ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/hdfs-site.xml /etc/impala/conf/hdfs-site.xml

ln -s /opt/lagou/servers/hive-2.3.7/conf/hive-site.xml /etc/impala/conf/hive-site.xml
所有节点更改 Impala 默认配置⽂件以及添加 mysql 的驱动包
ln -s /opt/lagou/servers/hive-2.3.7/lib/mysql-connector-java-5.1.46.jar /usr/share/java/mysql-connector-java.jar
vim /etc/default/impala

<!--更新如下内容 -->
IMPALA_CATALOG_SERVICE_HOST=linux128
IMPALA_STATE_STORE_HOST=linux128

由于使用Yum命令安装Impala,我们选择使用yum⾃动进行Impala依赖的安装和处理,所以本次安装默认会把Impala依赖的所有框架都会安装,比如Hadoop,Hive,Mysql等,为了保证我们自己安装的Hadoop等使用正常我们需要删除掉Impala默认安装的其它框架 

 which hadoop

 which hive

#使⽤which命令 查找hadoop,hive等会发现,命令⽂件是/usr/bin/hadoop ⽽⾮我们⾃⼰安装的路
径,需要把这些删除掉,所有节点都要执⾏
rm -rf /usr/bin/hadoop
rm -rf /usr/bin/hdfs
rm -rf /usr/bin/hive
rm -rf /usr/bin/beeline
rm -rf /usr/bin/hiveserver2
#重新⽣效环境变量
source /etc/profile

chown root /var/lib/hadoop-hdfs
chown root /var/lib/hadoop-mapreduce/
chown root /var/lib/hadoop-yarn/

重启Hadoop集群。

#停⽌集群
linux126上执行
stop-dfs.sh

linux128上执行
stop-yarn.sh


#启动集群
linux126上执行
start-dfs.sh

linux128上执行
start-yarn.sh

启动Linux123 启动 metastore 服务
nohup hive --service metastore &
nohup hive --service hiveserver2 &

验证启动
lsof -i:9083

lsof -i:10000

启动Impala

#linux128启动如下⻆⾊
service impala-state-store start
service impala-catalog start
service impala-server start

#其余节点启动如下⻆⾊
service impala-server start

验证
ps -ef | grep impala

浏览器Web界⾯验证

访问 impalad 的管理界⾯
  • http://linux123:25000/
访问 statestored 的管理界⾯
  • http://linux123:25010/

注:以上为本人小小总结,如果对您起到了一点点帮助,请给予我一点鼓励,在下方点个小小的赞,谢谢,如有错误之处,望不吝指出,非常感谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值