返回 导航

大数据

hangge.com

Impala - 使用操作方式详解(impala-shell命令行、Hue Web页面)

作者:hangge | 2024-10-17 08:36
    Impala 可以支持多种操作方式,在不同的应用场景中,可以选择不同的操作方式。在开发阶段,一般会使用 impala-shell 这个客户端命令行操作。在日常查询使用的时候,特别是针对非开发人员,常见的是在 Hue 这种 Web 页面中进行操作,不需要连接 Linux 服务器,直接在浏览器页面中操作,非常方便。下面我将分别进行演示。

一、impala-shell 客户端命令行

1,基本用法

(1)CDH 安装好 Impala 之后,会默认把 Impala 配置到环境变量中,所以我们直接执行如下命令进入 impala-shell 客户端:
impala-shell

(2)然后直接如下命令创建一张表并插入些测试数据:
create table t1(id int,name string);
insert into t1(id,name) values(1,'hangge');
insert into t1(id,name) values(2,'xiaoliu');
insert into t1(id,name) values(3,'lilei');

(3)然后执行如下命令查询该表数据:
select * from t1;

(4)最后如果需要退出 impala-shell 客户端,使用 ctrl + c 是无法强制退出的,可以使用 quit 或者 exit 命令。
exit;

2,指定字段分隔符

(1)通过上面样例可以发现,结果数据会使用表格进行格式化,这样其实看起来是比较清晰的,但是这种数据格式不便于后期使用。我们可以在进入进入 impala-shell 客户端时使用 -B 参数:
impala-shell -B
  • 再次查询数据此可以看到结果数据就比较干净了,只有数据自身的内容,默认情况下字段之间的分隔符是制表符。
select * from t1;

(2)在在使用 -B 对数据结果进行格式化的时候,如果想自定义字段分隔符,还需要使用 --output_delimiter 这个参数。下面命令使用逗号作为字段分隔符:
impala-shell -B --output_delimiter ','
  • 再次查询数据此可以看到字段之间的分隔符逗号了。
select * from t1;

3,将查询结果输出到指定的文件中

(1)前面的操作查询的结果还是输出在控制台中,想要将结果输出到文件中的话,我们可以在进入 impala-shell 客户端时使用 -o / --output_file 这个参数指定目标文件名。
注意:这里不能使用 hdfs 路径,只能使用本地路径。
impala-shell -B --output_delimiter ',' -o t1.dat

(2)此时发现在命令行中执行 select 语句是看不到返回结果的,因为这些结果数据会输出到 t1.dat 文件中。
select * from t1;

(3)退出 impala-shell 客户端后,到当前目录下查看一下 t1.dat 文件中的内容,可以发现查询结果在该文件里面:

4,直接在命令行中指定 sql 语句

(1)上面的样例我们都是先进入 impala-shell 客户端后,再执行相应的 sql 语句。通过 -q / --query 参数可以在命令行中指定 sql 语句,不需要进入 impala-shell 客户端里面,适合在脚本中封装 impala sql 语句。
提示-q 里面可以指定多条 SQL 语句,多条 SQL 语句之间使用分割(;)隔开即可。

(2)下面命令执行后直接将查询结果输出到指定文件中:
impala-shell -B --output_delimiter ',' -q 'select * from t1' -o t2.dat

(3)查看 t2.dat 可以看到查询结果在该文件里面:

二、通过 Hue 访问

(1)首先我们点击 CM 界面的 Hub 服务链接:

(2)然后点击上方的 Hue 链接:

(3)打开 Hub 页面后,左侧显示的是 Hue 支持查询的组件,我们选择 Impala
注意:如果默认 CDH 中提供的 Hue 里面不支持访问 Impala,需要在 Hue 配置中开启才可以。

(4)然后就 Impala 编辑器来操作 Impala 了:
评论

全部评论(0)

回到顶部