我正在尝试使用 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。
**
答案 0 :(得分:1)
NonRecoverableException: Not enough live tablet servers to create a table with the requested replication factor 3
,因为在查询未指定复制因子
在 KUDU 中,默认复制因子= 3。
如果您在查询独立群集中运行,则在这种情况下,kudu的(kudu tserver)中只有1台平板电脑服务器处于活动状态 以上查询复制因子应为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
答案 1 :(得分:0)
除了答案外,您还可以在Kudu的配置中将“默认副本数”设置为1。这样可以避免在键入的每个命令中都麻烦设置此副本。 您可以从Cloudera Manager-> Kudu->配置访问此配置 然后搜索“默认副本数” 您可能需要取消设置以避免出现警告消息,因为建议的设置是3。