1.文档说明

本文主要讲述如何通过Kudu 自带的Kudu Command Line Tools 进行Kudu 表迁移。 

  • 测试环境

1.CDH5.16.1、未启用Kerberos、Kudu 1.7.0

2.CDP7.1.6 、启用Kerberos、Kudu 1.12.0

2.操作步骤

2.1 操作步骤

1、首先在源集群也就是CDH5.16.1,Kudu表所在的集群中,CM>Kudu>配置>搜索gflagfile>gflagfile的Kudu 服务高级配置代码段(安全阀)中配置添加子网信任配置,并滚动重启kudu生效

-trusted_subnets=0.0.0.0/0

 

2、 配置源集群的IP和主机名信息到目标集群中/etc/hosts

3、在CDP7.1.6集群中执行如下命令执行拷贝复制

kudu table copy 55.xxx.1.137:7051,xxx.14.1.138:7051,55.xxx.1.139:7051 
impala::xxx_QUANT.DWD_INGESTION xxx-cdh01:7051

完成后检查

查看源集群表数据条数

目标集群中创建impala 关联表,然后查询验证,结果一致

[xx-cdh04:21000] xxx_quant> create database xxx_quant;
[xx-cdh04:21000] xxx_quant> 
create EXTERNAL TABLE CMB_QUANT.DWD_INGESTION STORED AS KUDU TBLPROPERTIES ('kudu.master_addresses'=xx-cdh01', 'kudu.table_name'='impala::xxx_QUANT.DWD_INGESTION');

 

2.2用法和参数说明

用法:

kudu table copy <master_addresses> <table_name> <dest_master_addresses> [-nocreate_table] [-dst_table=<table>] [-num_threads=<threads>] [-predicates=<predicates>] [-tablets=<tablets>] [-write_type=<type>]

参数解释如下:

名称

描述

类型

默认

master_addresses

以逗号分隔的源  Kudu 主机地址列表,其中每个地址的形式是"hostname:port",也可以使用集群名

string

none

table_name

源表名称

string

none

dest_master_addresses

以逗号分隔的目标  Kudu 主机地址列表,其中每个地址的形式是"hostname:port",也可以使用集群名

string

none

create_table  (optional)

如果目标表不存在,是否创建目标表。

bool

TRUE

dst_table  (optional)

将数据复制到的目标表的名称。如果为空字符串,则使用与源表相同的名称。

string

none

num_threads  (optional)

要运行的线程数。每个线程运行自己的KuduSession。

int32

2

predicates  (optional)

支持三种类型的谓词,包括"Comparison",  “InList” and “IsNull”。

string

none

tablets  (optional)

如果没有指定要检查的  Tablets (以逗号分隔的id列表),则检查所有的 Tablets。

string

none

write_type  (optional)

如何将数据复制到目标表。“insert”、"upsert"或空字符串。如果字符串为空,则不会复制数据(create_table为true时很有用)。

string

inser

2.3 常见问题

1、执行kudu table copy 出现Scanning failed Network error: Failed to resolve address for TS 62bdb42ae7554761acb8d6aea005cefa: unable to resolve address for xxx 异常

解决办法:该问题由于无法解析源集群的hostsname 导致,配置源集群的hosts 到目标集群/etc/hosts 中即可

 

2、执行kudu table copy 出现End of file: Unable to send message: other end of pipe was closed 问题

解决办法:使用sudo -u kudu kudu table copy xxx:7051 tablename xxx:7051

最后修改于 2021-06-09 12:55:23
上一篇