其他分享
首页 > 其他分享> > kudu 服务异常停止无法启动

kudu 服务异常停止无法启动

作者:互联网

报错信息如下:

Check failed: _s.ok() Bad status: Corruption: Failed to load FS layout: Could not process records in container /data/sa_cluster/kudu/table_server/tserver_data/data/57229d7636f54c7d8d4ca41ecda01c1e: Data checksum does not match: Incorrect checksum in file /data/sa_cluster/kudu/table_server/tserver_data/data/57229d7636f54c7d8d4ca41ecda01c1e.metadata at offset 1601543: Checksum does not match. Expected: 0. Actual: 2043694497

解决办法:
1、删除xx.metadata文件最后一行。命令 sed -i ‘$d’ xx.metadata
2、 一般异常关闭会导致一批metadata文件损环,删除报错文件最后一行,再次启动很可能报下一个文件损坏。
可用批量删除同一时间点的metadata文件最后一行。

(1)先找到对应时间点:

cd /da1/bigdata/kudu/tablet/data/data/
ls -l --full-time | grep “b77918da73e342b4940f64c557ea0f61.metadata” | grep .metadata

找到时间点:

-rw------- 1 kudu kudu 568864 2018-10-13 17:04:07.857377164 +0800 b77918da73e342b4940f64c557ea0f61.metadata

(2)查看对应时间点的所有metadata文件
ls -l --full-time | grep "2018-10-13 17:04:07.8" | grep ".metadata“
(3)用VIM随机打开几个文件是否都有异常(基本上最后一行都有异常字符)。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk= metadata文件最一行的异常信息
(4)批量删除这些文件最后一行
执行:(一行命令)

for i in `ls -l --full-time |
  grep "2018-10-13 17:04:07.85" | 
  grep ".metadata" | 
  awk {'print $9'}`; do sed -i ‘$d’ $i; done
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk= 命行执行情况

标签:文件,grep,启动,一行,停止,kudu,data,metadata
来源: https://blog.51cto.com/u_15278282/2933700