文档首页 > > 用户指南> MRS集群组件操作指导> 使用Impala> 从零开始使用Impala

从零开始使用Impala

分享
更新时间: 2019/11/21 GMT+08:00

Impala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询引擎。 它是一个用C++和Java编写的开源软件。 与其他Hadoop的SQL引擎相比,它拥有高性能和低延迟的特点。

背景信息

MRS集群创建成功后,默认在集群所有节点的“/opt/client”目录安装保存了原始客户端。在使用客户端前,需要下载并更新客户端配置文件,确认MRS的Core节点后才能使用客户端。

假定用户开发一个应用程序,用于管理企业中的使用A业务的用户信息,使用Impala客户端实现A业务操作流程如下:

普通表的操作:

  • 创建用户信息表user_info。
  • 在用户信息中新增用户的学历、职称信息。
  • 根据用户编号查询用户姓名和地址。
  • A业务结束后,删除用户信息表。
表1 用户信息

编号

姓名

性别

年龄

地址

12005000201

A

19

A城市

12005000202

B

23

B城市

12005000203

C

26

C城市

12005000204

D

18

D城市

12005000205

E

21

E城市

12005000206

F

32

F城市

12005000207

G

29

G城市

12005000208

H

30

H城市

12005000209

I

26

I城市

12005000210

J

25

J城市

操作步骤

  1. 下载客户端配置文件。

    1. 登录MRS控制台,在左侧导航栏选择集群列表 > 现有集群 ,单击集群名称。
    2. 选择“组件管理”。
    3. 单击“下载客户端”

      “客户端类型”选择“仅配置文件”“下载路径”选择“服务器端”,单击“确定”开始生成客户端配置文件,文件生成后默认保存在主管理节点“/tmp/MRS-client”。

      图1 仅下载客户端的配置文件

  2. 在集群中任意一个Core节点上使用MRS客户端,具体请参考 在Core节点使用客户端。
  3. 运行Impala客户端命令,实现A业务。

    直接执行Impala组件的客户端命令:

    impala-shell.sh

    默认情况下,impala-shell尝试连接到localhost的21000端口上的Impala守护程序。如需连接到其他主机,请使用-i <host:port>选项。要自动连接到特定的Impala数据库,请使用-d <database>选项。例如,如果您的所有Kudu表都位于数据库“impala_kudu”中,则-d impala_kudu可以使用此数据库。要退出Impala Shell,请使用以下命令quit

    内部表的操作:

    1. 根据表1创建用户信息表user_info并添加相关数据。
      create table user_info(id string,name string,gender string,age int,addr string);
      insert into table user_info(id,name,gender,age,addr) values("12005000201","A","男","19","A城市");

      ......(其他语句相同)

    2. 在用户信息表user_info中新增用户的学历、职称信息。

      以增加编号为12005000201的用户的学历、职称信息为例,其他用户类似。

      alter table user_info add columns(education string,technical string);
    3. 根据用户编号查询用户姓名和地址。

      以查询编号为12005000201的用户姓名和地址为例,其他用户类似。

      select name,addr from user_info where id='12005000201';
    4. 删除用户信息表。
      drop table user_info;

    外部分区表的操作:

    创建外部分区表并导入数据

    1. 创建外部表数据存储路径。

      hdfs dfs -mkdir /hive/user_info

    2. 建表。
      create external table user_info(id string,name string,gender string,age int,addr string) partitioned by(year string) row format delimited fields terminated by ' ' lines terminated by '\n' stored as textfile location '/hive/user_info';

      fields terminated指明分隔的字符,如按空格分隔,' '。

      lines terminated 指明分行的字符,如按换行分隔,'\n'。

      /hive/user_info为数据文件的路径。

    3. 导入数据。
      1. 使用insert语句插入数据。
        insert into user_info partition(year="2018") values ("12005000201","A","男","19","A城市");
      2. 使用load data命令导入文件数据。
        1. 根据表1数据创建文件。如,文件名为txt.log,以空格拆分字段,以换行符作为行分隔符。
        2. 上传文件至hdfs。

          hdfs dfs -put txt.log /tmp

        3. 加载数据到表中。

          load data inpath '/tmp/txt.log' into table user_info partition (year='2011');

    4. 查询导入数据。
      select * from user_info;
    5. 删除用户信息表。
      drop table user_info;

  4. 删除集群。

    请参见《用户指南》中的删除集群章节。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区