Kudu TabletServer服务器断电无法启动

Kudu TabletServer服务器断电无法启动

1.问题

Kudu TabletServer服务器正常大量写入时,服务器异常重启,会造成TabletServer的metadata的文件数据不完整功能,再次启动TabletServer会报如下错误:

Check failed: _s.ok() Bad status: Corruption: Failed to load FS layout: Could not process records in container /data1/bigdata/kudu/tablet/data/data/b77918da73e342b4940f64c557ea0f61: Data length checksum does not match: Incorrect checksum in file /data1/bigdata/kudu/tablet/data/data/b77918da73e342b4940f64c557ea0f61.metadata at offset 634685: Checksum does not match. Expected: 0. Actual: 1214729159

2.解决办法

  • 根据启动报错日志获取和报错日志文件一致的所有元数据文件,删除元数据文件的最后一行记录,然后启动Kudu TabletServer服务,观察是否还有此类似报错,有再处理,直到服务启动为止
# 创建元数据备份目录
mkdir /data1/backup/data1
# 根据kudu日志进入报错的相应元数据目录
cd /data1/bigdata/kudu/tablet/data/data/
# 备份元数据
cp -arpf ./*.metadata /data1/backup/data1
# 一般和此文件最后一次修改时间相同的目录都会有问题,先获取日志报错文件的最后修改时间
  b77918da73e342b4940f64c557ea0f61.metadata

输出信息

-rw------- 1 kudu kudu 7717519360 2019-07-10 13:16:07.662511306 +0800 b77918da73e342b4940f64c557ea0f61.metadata
# 删除所有和b77918da73e342b4940f64c557ea0f61.metadata元数据文件最后一次修改时间相同的文件的最后一行记录
for i in `ls -l --full-time |grep '2019-07-10 13:16:07.662511306 +0800'|grep '.metadata' | awk {'print $9'}`; do sed -i '$d' $i; done
  • 通过CM页面启动Kudu TabletServer服务

通过WebUI检查该Kudu TabletServer表情况,有可能存在表状态为FAILED的情况,副本数为3的表会从其他节点行copy过来

你可能感兴趣的:(大数据)