2021-05-24

问题:服务器断电后kudu启动失败或成功后服务掉线

Check failed: _s.ok() Bad status: Incomplete: Failed to load FS layout: Could not open container 3f4b8e835db0431b9abfe9b4bb64f63b: Could not read header for proto container file /data2/kudu_ts/fs_data_dirs/data/3f4b8e835db0431b9abfe9b4bb64f63b.metadata: File size not large enough to be valid: Proto container file /data2/kudu_ts/fs_data_dirs/data/3f4b8e835db0431b9abfe9b4bb64f63b.metadata: Tried to read 16 bytes at offset 0 but file size is only 0 bytes
image.png

原因:元数据丢失,经检查发现该元数据文件大小为0
Snipaste_2021-05-24_15-37-31.png

解决方式:删除该节点,删除数据目录,重新安装服务,最后启动。
kudu本身是具有分布式管理功能,当一个节点发生故障,会将数据自动迁移到其他节点上,所以此处我们将kudu的元数据目录迁移重新创建,启动后会有数据重新从其他节点同步过来。

2021-07-01

问题:kudu没有分区

Errors while interacting with Kudu: Row error for primary key=”2021-07-01 14:51:35\x00\x002021-07-01\x00\x001”, tablet=null, server=null, status=Not found: non-covered range
image.png

解决方式:创建分区

  1. alter table realtime.ncs_point1 add range partition '2021-07-05' <= VALUES < '2021-07-05\000';

2021-10-09

问题:日志大量WARN,kudu无法使用

image.png
image.png
image.png

解决方式:刷新元数据:invalidate metadata

2021-12-12

常用操作:Kudu副本数检查

  1. 检查表健康情况操作
    1. sudo -u kudu kudu cluster ksck shmdsjcm01,shmdsjcm02,shmdsjcdh01

    shmdsjcm01,shmdsjcm02,shmdsjcdh01 是Kudu Master地址

  1. 修复操作

刚才那个命令的输出,会把tablet-id和副本数情况显示出来,两种情况:

  1. 一个副本或者两副本不可用

image.png
使用命令修复:

  1. sudo -u kudu kudu remote_replica unsafe_change_config syshdp-kudu38:7050 84b398808bbf449c86d3d625889cfbde e5464e8b7e1145b988b2d16b66fdc438

sudo -u kudu kudu remote_replica unsafe_change_config kudu-server:port tablet-id partition-id image.png

  1. 三副本不可用

这个时候有一种可能是数据还在(对于丢失元数据的情况),但是没有元数据,真实数据无法访问。可以问问官方社区的老哥,有没有一种建立连接的方法(相当于重新生成元数据)。我当时的处理是直接删掉 tablet 了,这样虽然数据没有了,但是会释放表,表还可用。(如果元数据丢失的少,表里面还会有部分数据)

删除命令:

  1. sudo -u kudu kudu tablet unsafe_replace_tablet shmdsjcm01,shmdsjcm02,shmdsjcdh01 a4343ee8c2544622bf509703f9d0e0fa

sudo -u kudu kudu tablet unsafe_replace_tablet KuduMaster Tablet-id