Impala集成Kudu

Impala集成Kudu后,您可以使用Impala访问Kudu的数据表。本文为您介绍Impala如何集成Kudu。

前提条件

已创建集群,并且选择了Impala和Kudu服务,详情请参见创建集群

操作步骤

控制台方式

  1. 在Impala服务的配置页面,新增以下配置项,具体操作请参见管理配置项

    1. 在Impala服务的配置页面,单击impalad.flgs页签。

    2. impalad.flgs页签,单击新增配置项,添加参数名为kudu_master_hosts,参数值为master-1-1:7051的配置项。

      说明

      kudu_master_hosts用于指定Impala连接的Kudu集群中的Master节点和端口号。如果有多个Master节点时,可以使用英文逗号(,)隔开。例如,master-1-1:7051,master-1-2:7051,master-1-3:7051

    3. catalogd.flgs页签,单击新增配置项,新增参数名为kudu_master_hosts,参数值为master-1-1:7051的配置项。

  2. 可选:您可以登录集群查看集群连接情况。

    1. 连接Impala,详情请参见Impala命令行工具

    2. 执行以下命令,新建表格。

      create table my_first_table
      (
        id bigint,
        name string,
        primary key(id)
      )
      partition by hash partitions 16
      stored as kudu
      tblproperties(
        'kudu.num_tablet_replicas' = '1');

      返回信息中包含Table has been created.提示信息时,表示成功创建表。

命令行方式

  1. 连接Impala,详情请参见Impala命令行工具

  2. 执行以下命令,新建表格。

    代码中添加了kudu.master_addresses来指定Kudu集群。代码示例如下。

    create table my_first_table
    (
       id bigint,
       name string,
       primary key(id)
    )
    partition by hash partitions 16
    stored as kudu
    tblproperties(
     'kudu.master_addresses' = 'master-1-1:7051',
     'kudu.num_tablet_replicas' = '1');
    说明

    本文代码示例中参数:

    • my_first_table:表名称,您可以自定义。

    • kudu.master_addresses:指定Master节点,如果集群有多个Master节点,则多个Master之间使用英文逗号(,)隔开。例如master-1-1:7051,master-1-2:7051,master-1-3:7051。如果是Hadoop集群,则需修改为emr-header-1

    返回信息中包含Table has been created.提示信息时,表示成功创建表。

  3. 可选:您可以执行以下命令,向表中插入数据。

    insert into my_first_table values(1,"ss");
  4. 可选:您可以执行以下命令,查询表数据。

    select * from my_first_table;

    返回如下提示信息。

    +----+------+
    | id | name |
    +----+------+
    | 1  | ss   |
    +----+------+
    说明

    您可以使用命令drop table my_first_table;删除表。