快捷搜索:  汽车  科技

git checkout详解(0611-5.16.1-Kudu表执行COMPUTE)

git checkout详解(0611-5.16.1-Kudu表执行COMPUTE)首先登陆到的Hive metastore DB(通常是Mysql数据库)ALTER TABLE testkudu CHANGE s2 sss3 string; SELECT * FROM testkudu; 再执行COMPUTE INCREMENTAL STATS 或者COMPUTE STATS就会出现如下异常首先创建一个Kudu 表,并插入两条数据用来测试CREATE TABLE impala_kudu_test.mykudutest ( col1 INT NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION s2 STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION PRIMARY KEY (col1) ) PARTI

作者:唐辉

1.文档编写目的

Fayson在CDH5.16.1中对Kudu表使用alter table ... change ...更改kudu表的列名后,用 COMPUTE INCREMENTAL STATS 或者COMPUTE STATS 命令去统计表的信息时,会报字段不存在异常

  • 测试环境

1.CM和CDH版本为5.16.1

2.操作系统版本为RedHat 7.2

2.问题描述

首先创建一个Kudu 表,并插入两条数据用来测试

CREATE TABLE impala_kudu_test.mykudutest ( col1 INT NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION s2 STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION PRIMARY KEY (col1) ) PARTITION BY HASH (col1) PARTITIONS 3 STORED AS KUDU TBLPROPERTIES ('kudu.master_addresses'='cdh3.macro.com:7051'); insert into mykudutest values (1 "test"); insert into mykudutest values (2 "test2"); select * from mykudutest;

git checkout详解(0611-5.16.1-Kudu表执行COMPUTE)(1)

git checkout详解(0611-5.16.1-Kudu表执行COMPUTE)(2)

在没有进行修改列的情况下进行验证,可以正常执行和查看

COMPUTE INCREMENTAL STATS mykudutest; COMPUTE STATS mykudutest; show table stats mykudutest;

git checkout详解(0611-5.16.1-Kudu表执行COMPUTE)(3)

当我们修改非主键字段后

ALTER TABLE testkudu CHANGE s2 sss3 string; SELECT * FROM testkudu;

git checkout详解(0611-5.16.1-Kudu表执行COMPUTE)(4)

再执行COMPUTE INCREMENTAL STATS 或者COMPUTE STATS就会出现如下异常

git checkout详解(0611-5.16.1-Kudu表执行COMPUTE)(5)

3.解决办法

首先登陆到的Hive metastore DB(通常是Mysql数据库)

select c.* from COLUMNS_V2 c join TBLS t on t.TBL_ID = c.CD_ID join DBS d on d.DB_ID = t.DB_ID where TBL_NAME = 'mykudutest' and d.NAME = 'impala_kudu_test';

git checkout详解(0611-5.16.1-Kudu表执行COMPUTE)(6)

然后用得到CD_ID,更新新列名 (sss3是我更改的新列名,最初列名为s2)

git checkout详解(0611-5.16.1-Kudu表执行COMPUTE)(7)

最后对这个表进行invalidate,再执行compute stats

invalidate metadata mykudutest; compute stats mykudutest;

git checkout详解(0611-5.16.1-Kudu表执行COMPUTE)(8)

4.总结

经验证,该问题在CDH5.16.1 中有,但是CDH 6.2以及CDH5.14上都没有这个问题,可能是一个regression过程中的一个错误bug。

猜您喜欢: