impala快速入门
1. 什么是impala ?
Cloudera公司推出,提供对HDFS、Hbase数据的高性能、低延迟的交互式SQL查询功能。
基于Hive,使用内存计算,兼顾数据仓库、具有实时、批处理、多并发等优点。
是CDH平台首选的PB级大数据实时查询分析引擎。

2. impala的优缺点

3. impala的架构组成

4. impala的运行原理

Impala执行查询的具体过程:
- 1)当用户提交查询前,Impala先创建一个负责协调客户端提交的查询的Impalad进程,该进程会向Impala State Store提交注册订阅信息,State Store会创建一个statestored进程,statestored进程通过创建多个线程来处理Impalad的注册订阅信息。
- 2)用户通过CLI客户端提交一个查询到impalad进程,Impalad的Query Planner对SQL语句进行解析,生成解析树;然后,Planner把这个查询的解析树变成若干PlanFragment,发送到Query Coordinator.
- 3)Coordinator通过从元数据库中获取元数据,从HDFS的名称节点中获取数据地址,以得到存储这个查询相关数据的所有数据节点。
- 4)Coordinator初始化相应impalad上的任务执行,即把查询任务分配给所有存储这个查询相关数据的数据节点。
- 5)Query Executor通过流式交换中间输出,并由Query Coordinator汇聚来自各个impalad的结果。
- 6)Coordinator把汇总后的结果返回给CLI客户端。
5. impala的监控管理
1.查看StateStore
http://hadoop1:25020/
2.查看Catalog
http://hadoop1:25010/
6. impala-shell
1.启动Impala
impala-shell
2.查看数据库
show databases;
3.打开默认数据库
use default;
4.显示数据库中的表
show tables;
5.创建一张student表
create table student(id int, name string)
row format delimited
fields terminated by '\t';
6.向表中导入数据
load data inpath '/student.txt' into table student;
注意:
- 关闭(修改hdfs的配置dfs.permissions为false)或修改hdfs的权限,否则impala没有写的权限
- Impala不支持将本地文件导入到表中
7.查询
select * from student;
8.退出impala
quit;
6. impala的外部shell操作
| 选项 | 描述 |
|---|---|
| -h, --help | 显示帮助信息 |
| -v or --version | 显示版本信息 |
| -i hostname, --impalad=hostname | 指定连接运行 impalad 守护进程的主机。默认端口是 21000。 |
| -q query, --query=query | 从命令行中传递一个shell 命令。执行完这一语句后 shell 会立即退出。 |
| -f query_file, --query_file= query_file | 传递一个文件中的 SQL 查询。文件内容必须以分号分隔 |
| -o filename or --output_file filename | 保存所有查询结果到指定的文件。通常用于保存在命令行使用 -q 选项执行单个查询时的查询结果。 |
| -c | 查询执行失败时继续执行 |
| -d default_db or --database=default_db | 指定启动后使用的数据库,与建立连接后使用use语句选择数据库作用相同,如果没有指定,那么使用default数据库 |
| -r or --refresh_after_connect | 建立连接后刷新 Impala 元数据 [当前环境不支持外部刷新] |
| -p, --show_profiles | 对 shell 中执行的每一个查询,显示其查询执行计划 |
| -B(–delimited) | 去格式化输出 |
| –output_delimiter=character | 指定分隔符 |
| –print_header | 打印列名 |
- 连接指定hadoop1的impala主机
impala-shell -i hadoop1
- 使用-q查询表中数据,并将数据写入文件中
impala-shell -q 'select * from student' -o output.txt
- 查询执行失败时继续执行
vim impala.sql
select * from student;
select * from stu;
select * from student;
impala-shell -f impala.sql;
impala-shell -c -f impala.sql;
- 在hive中创建表后,使用-r刷新元数据
create table stu(id int, name string);
show tables
Impala快速入门:查询优化与数据管理

本文详细介绍了Impala的入门知识,包括其功能、优缺点、架构、运行原理和监控管理。重点讲解了如何使用Impala进行SQL查询、数据导入导出、DDL和DML操作,以及数据类型的使用。此外,还讨论了Impala的存储和压缩策略,以及性能优化技巧,如选择合适的文件格式和避免全量元数据刷新。
最低0.47元/天 解锁文章
3221

被折叠的 条评论
为什么被折叠?



