impala快速入门

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

1. 什么是impala ?

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

2. impala的优缺点

impala的优缺点

3. impala的架构组成

impala的架构组成

4. impala的运行原理

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;

注意:

  1. 关闭(修改hdfs的配置dfs.permissions为false)或修改hdfs的权限,否则impala没有写的权限
  2. 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 打印列名
  1. 连接指定hadoop1的impala主机
impala-shell -i hadoop1
  1. 使用-q查询表中数据,并将数据写入文件中
impala-shell -q 'select * from student' -o output.txt
  1. 查询执行失败时继续执行
    vim impala.sql
select * from student;
select * from stu;
select * from student;
impala-shell -f impala.sql;
impala-shell -c -f impala.sql;
  1. 在hive中创建表后,使用-r刷新元数据
create table stu(id int, name string);
show tables
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

真香IT

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值