一、Impala的基本概念

1.1 什么是Impala

Cloudera公司推出的,提供对HDFS、Hbase数据的高性能低延迟交互式SQL查询功能

基于Hive,使用内存计算,兼顾数据仓库、具有实时、批处理、多并发等优点。

是CDH平台首选的PB级大数据实时查询分析引擎。
在这里插入图片描述

1.2 Impala的优缺点

1.2.1 优点:

(1)基于内存运算,不需要把中间结果写入磁盘,省掉了大量的I/O开销。

(2)无需转换为Mapreduce,直接访问存储在HDFS,HBase中的数据进行作业调度,速度快。

(3)使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销。

(4)支持各种文件格式,如TEXTFILE 、SEQUENCEFILE 、RCFile、Parquet。

(5)可以访问hive的metastore,对hive数据直接做数据分析。
在这里插入图片描述

1.2.2 缺点

(1)对内存的依赖大,且完全依赖于hive。

(2)实践中,分区超过1万,性能严重下降。

(3)只能读取文本文件,而不能直接读取自定义二进制文件。

(4)每当新的记录/文件被添加到HDFS中的数据目录时,该表需要被刷新。

1.3 Impala的架构

在这里插入图片描述
从上图可以看出,Impala自身包含三个模块ImpaladStatestoreCatalog,除此之外它还依赖Hive Metastore和HDFS。

(1)Impalad:
接收client的请求、Query执行并返回给中心协调节点;
子节点上的守护进程,负责向statestore保持通信,汇报工作。

(2)Catalog:
分发表的元数据信息到各个impalad中;
接收来自statestore的所有请求。

(3)Statestore:
负责收集分布在集群中各个impalad进程的资源信息、各节点健康状况,同步节点信息;
负责query的协调调度。

二、Impala的安装

2.1 Impala的地址

(1)Impala的官网:http://impala.apache.org/

(2)Impala文档查看:http://impala.apache.org/impala-docs.html

(3)下载地址:http://impala.apache.org/downloads.html

2.2 Impala的安装方式

有两种:
Cloudera Manager(CDH首推
手动安装

下面使用Cloudera Manager安装Impala:

(1)在主页面中点击添加服务
在这里插入图片描述
(2)选择Impala服务
在这里插入图片描述
(3)进行角色分配
在这里插入图片描述

注意:最好将StateStore和CataLog Sever单独部署在同一节点上。

(4)配置Impala
在这里插入图片描述
(5)启动Impala
在这里插入图片描述
(6)安装成功
在这里插入图片描述

2.3 Impala 的监护管理

可以通过下面的链接来访问Impala的监护管理页面:

• 查看StateStore :http://bigdata11:25020/
    
• 查看Catalog :http://bigdata11:25010/

2.4 Impala的初体验

(1)启动Impala

[root@bigdata11 ~]# impala-shell

(2)查看数据库

[bigdata11:21000] > show databases;

(3)打开默认数据库

[bigdata11:21000] > use default;

(4)显示数据库中的表

[bigdata11:21000] > show tables;

(5)创建一张student表

[bigdata11:21000] > create table student(id int, name string) row format 
delimited fields terminated by '\t';

(6)向表中导入数据

[bigdata12:21000]  load data inpath '/student.txt' into table student;

注意:
1)关闭(修改hdfs的配置dfs.permissions为false)或修改hdfs的权限,否则impala没有写的权限
[hdfs@bigdata12 ~]$ hadoop fs -chmod 777 /

2)Impala不支持将本地文件导入到表中会发生错误:load local data inpath ‘/opt/student.txt’
into table student;

(7)查询

[bigdata12:21000] > select * from student;

(8)退出impala

[bigdata12:21000] > quit;

更多推荐