Hi~ 好久没更新了
1.重启kafka之后需要注意的问题:
Kafka在执行时会在目标存储位置有一个写文件a,这个文件a会一会保持一个写状态,一般一小时会重
新生成一个新的写文件b,结束上一个写文件a(这个结束的时长需要查看每个集群的配置)。那么重启
的问题来了,再重启的时候不会结束上一个写文件a,重启之后还会重新创建一个写文件b,所以现在的
a会一直保持写状态,当在对文件a进行读写操作就会报错,包括导入Hive查询也会报错(load到hive
表不会报错,但是select时就会报错),因为这个文件一直保持写状态,是无法操作的,也是所谓的写
锁(相信大家都听说过)。
解决办法:那么我们需要手动将这个写文件的写状态终止,首先我们需要确定这个写文件的状态,在命令
行上执行命令:
hdfs fsck /data/logs/(写文件所在目录,根据自己文件所在更改) -openforwrite
展示出的文件都是处于写状态:
看到写文件之后,就执行命令将所有写文件停掉,这里说明一下,为什么所有都停掉,按理是应停掉前
一个写文件,但是所有都停掉也是可以解决问题的,比较简单暴力,因为手动停掉会自动在生成一个
写文件的,所以可以全部停掉。那么现在执行命令:
hdfs debug recoverLease -path /logs