您的位置:首页 > 运维架构 > Shell

003-Impala shell

2015-10-12 16:02 417 查看
本文主要介绍Impala shell命令
1、-h 外能帮助

格式:$ impala-shell -h

2、-r 刷新整个元数据*

(Refresh Impala catalog after connecting,默认为false)

2.1 在hive创建表t1

hive> create table t1(id int ,name string);

OK

Time taken: 0.423 seconds

2.2 通过impala-shell 查看对应的表,发现不存在,原因是需要通过手动涮新hive metadata
show tables;

$ impala-shell -r

执行后,在通过show tables 可以查看到刚才的表

3、-B 去格式化,查询大数据量时可以提高性能*

3.1 在impala shell中 初始化数据
insert into table t1(id,name) values(100,'sfl');

insert into table t1(id,name) values(101,'zs');

insert into table t1(id,name) values(102,'ls');

3.2 在impala 查看数据和hive中查看数据
select * from t1;
发现结果完成一致,原因就是impala和hive中存储的数据都存在同一个元数据中

3.3 通过-B 演示
$ impala-shell -B -q 'select * from shenfuli.t1;' -o a.txt
$ more a.txt

102 ls

100 sfl

101 zs

通过-B发现,输出格式通过Hive的输出内容一致,由于-r是对整个元数据库进行刷新,实际生产环境中不建议这么用。

3.4 通过-B --print_header 可以显示列的名称
$ impala-shell -B --print_header -q 'select * from shenfuli.t1;' -o c.txt

$ more c.txt

id name

100 sfl

102 ls

101 zs

4、 -v 查看对应版本
$ impala-shell -v

Impala Shell v2.2.0-cdh5.4.4 (a13d3c6) built on Mon Jul 6 16:57:34 PDT 2015

$ impala-shell

Starting Impala Shell without Kerberos authentication

Connected to crxy168:21000

Server version: impalad version 2.2.0-cdh5.4.4 RELEASE (build a13d3c6b203e79a284b509df821bffbe229e6dc3)

Welcome to the Impala shell. Press TAB twice to see a list of available commands.

Copyright (c) 2012 Cloudera, Inc. All rights reserved.

(Shell build version: Impala Shell v2.2.0-cdh5.4.4 (a13d3c6) built on Mon Jul 6 16:57:34 PDT 2015)

注: 一般情况下升级Impala后,需要检查Impala version和Impala shell version,两个版本必须一致,否则可能会出现查询异常的情况。

5、 -f 执行查询文件*
--query_file 指定查询文件

$ cat impala-sql

select * from shenfuli.t1;

$ impala-shell -f impala-sql ;

$ impala-shell -B -f impala-sql -o d.txt;

$ more d.txt

102 ls

100 sfl

101 zs

说明: 实际工作中的SQL语句都是通过写到一个文件中,然后通过-f命令调用。

6、 -o 保存执行结果到文件*
--output_file 指定输出文件名

7、 -q 不进入impala-shell执行查询
$ impala-shell -q 'select * from shenfuli.t1' --output_file=b.txt
$ more b.txt

+-----+------+

| id | name |

+-----+------+

| 102 | ls |

| 100 | sfl |

| 101 | zs |

+-----+------+

8、 -p 显示执行计划

--quiet 不显示多余信息
$ impala-shell -q 'select * from shenfuli.t1;' -p >1.txt

说明: 文件1.txt 含有详细的执行计划,通过该文件可以分析SQL,优化SQL语句。

9、刷新某个表元数据

refresh <tablename> 属于增量刷新

说明: 相比-r,通过refresh 一个表更加使用,并且属于增量刷新。

10、显示一个查询的执行计划及各步骤信息

explain <sql> 可以设置set explain_level,总共分成4个级别,分别0-3。数字越大,输出信息越详细

11、显示查询底层信息(底层执行计划,用于性能优化)

profile 在查询完成之后执行

在集群中运行一段时间发现执行变慢,可以只用profile来检查,步骤:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: