1

我正在尝试使用Impala-shell创建一个Kudu 表

查询

CREATE TABLE lol
(
  uname STRING,
  age INTEGER,
  PRIMARY KEY(uname)
)
STORED AS KUDU
TBLPROPERTIES (
'kudu.master_addresses' = '127.0.0.1'
);

CREATE TABLE t (k INT PRIMARY KEY) STORED AS KUDU
TBLPROPERTIES (
'kudu.master_addresses' = '127.0.0.1'
);

但我收到错误:

ERROR: ImpalaRuntimeException: Error creating Kudu table 'impala::default.t'
CAUSED BY: NonRecoverableException: Not enough live tablet servers to create a table with the requested replication factor 3. 1 tablet servers are alive.

请建议应该为此做些什么。我是 Kudu 的新手。

**

4

2 回答 2

2

NonRecoverableException: Not enough live tablet servers to create a table with the requested replication factor 3,发生此错误是因为在查询中未指定复制因子

KUDU 中,默认复制因子 = 3。

如果您在查询独立集群中运行,在这种情况下,只有 1 个平板服务器在 kudu(kudu tserver)中存活,因为上述查询复制因子应为 1

您可以通过设置根据需要修改复制因子

table_num_replicas(可选) -副本数

询问:

                         CREATE TABLE lol
                         (
                           uname STRING,
                           age INTEGER,
                           PRIMARY KEY(uname)
                         )
                         STORED AS KUDU
                         TBLPROPERTIES (
                         'kudu.master_addresses' = '127.0.0.1',
                         'kudu.num_tablet_replicas' = '1'
                        );

在 KUDU 中,应该指定大量数据分区。

询问:

create table test 
(
id int not null,
code string,
primary key(id)
) 
partition by hash partitions 8 
stored as KUDU 
TBLPROPERTIES ( 
'kudu.master_addresses' = '127.0.0.1' ,
'kudu.num_tablet_replicas' = '1'
);

要设置更多属性,请参阅https://kudu.apache.org/docs/command_line_tools_reference.html

于 2018-08-07T06:52:40.757 回答
0

除了答案之外,您还可以将 Kudu 配置中的“默认副本数”设置为 1。这样您就可以避免在您键入的每个命令中进行设置的麻烦。您可以从 Cloudera Manager --> Kudu --> 配置访问此配置,然后搜索“默认副本数”,您可能需要禁止设置以避免出现警告消息,因为推荐的设置是 3。

于 2020-02-07T17:58:31.687 回答