#impala元数据同步问题–报错”no enum constant org.apache.impala.thrift.TPrivilegelevel.update"问题解决
###问题出现:
impala集群参数优化后,通过CM管理页面重启impala集群,发现hive表的元数据信息同步不到,在impala节点查询数据,报错找不到数据或连接错误等信息。
###问题排查及解决:
1、impala优化参数只是在CM界面上调整了一些内存参数,扩大内存及线程数,这类操做并不会造成impala服务失败,而且重启impala成功,也无明显报错,所以不是参数优化导致的;
2、在hue连接impala节点上查询hive数据,显示Table not found或database connected error等信息,hue连接hive,同样进行查询,结果正确返回。因此将问题定位到元数据同步所导致;
3、impala catalogd服务负责加载hive元数据至impala的缓存,再通过statestored广播到各个impalad节点上。因此问题可能出现在catalogd加载过程;
4、手动对某一张表执行invalidate metadata,然后通过hue连接impala节点去查询,发现可以查到数据,按照此法对所有表做此操作。。。。。。。。(two huours later…由于表非常多),数据查询缓慢,在依次执行refresh以确保客户第一次查询加快,此操作慢的怀疑人生。。。。(谨慎操做)
5、本以为这样手工刷新,可以确保impala查到所有的表,结果客户端立马报错。。有些表任然看不到表信息…
6、查日志,从impala catalogd服务日志中看到一个java error:"no enum constant org.apache.impala.thrift.TPrivilegelevel.update",从后半句联想出可能是权限导致,因为我们的impala服务权限保存在sentry,因此同步元数据的过程需要加载sentry权限表到缓存中,因此可能是权限没有同步过去…
update,查看impala支持的权限发现impala不支持update、delete权限,需要用这两个权限时授予all权限即可。
7、排查sentry权限表,发现update和delete权限,收回权限,重启catalogd服务,发现一切正常。。。。。
8、问题解决,完美撒花
报错”no enum constant org.apache.impala.thrift.TPrivilegelevel.update“问题解决
最新推荐文章于 2022-11-09 13:22:00 发布