近期,通过flume往hbase加载数据时,发现少量数据加载报错,提示如下错误,困扰了好几天。
我们知道,客户端是通过zk找到meta表,再通过meta定位hbase表各region所在的regionserver。zk中保存meta表的regionserver hostname信息,如果客户端不识别hostname就会提示该错误。显然我们的客户端配置了hostname映射关系,故排除该问题,且即使未配置,也应该所有数据报错才对。
进一步怀疑是不是客户端与zk交互过程中响应超时,查zk 服务日志确实有提示预警,但超时应该提示其他错误信息才对,而非cannot get replica 0 location。
在多次实测中,仅1次因目标表未创建而提示该错误。最后,通过核查报错数据,发现都集中在非当月账期,而我们的程序是通过源文件中的账期字段来判断要加载的hbase目标表,由于非当月账期表不存在,所以报该问题,最后补建表解决。