Impala问题实录

一、报错:

 File 'hdfs://nameservice1/user/hive/warehouse/dm/dm_sup_manager_duibi/tp=zonghe1/000000_0' has an invalid version number: �ϫ&
 This could be due to stale metadata. Try running "refresh dm.dm_sup_manager_duibi".

报错hive元数据过时,需要更新元数据

更新元数据的使用

  • invalidate metadata 会加载相关表的所有元数据信息,这个操作对于有很多分区的大表成本非常高,refresh加载元数据更快,因为它只要加载新增的数据文件块的位置数据
  • 如果数仓中发生了增删表改变表结构的行为,如create tabledrop tablealter table add column等,就使用invalidate metadata [table]语句。
  • 如果数仓中某表加入了新数据,或者有分区的改动,如load dataalter table add partition等,就使用refresh [table] (partition [partition])语句。
  • invalidate metadata比起refresh而言要重量级得多,并且它造成impalad之间查询不一致也会更严重。因此,也几乎禁止使用 不带表名的invalidate metadata语句
  • 如果数仓中涉及到非常大批量的元数据更改,那么建议直接重启catalogd和statestored,这总比使用不带表名的invalidate metadata来得高效一些。


作者:xiaogp
链接:https://www.jianshu.com/p/c8f201e6d96a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

impala刷新元数据方法


1.hue使用Perform incremental metadata update,不要用Invalidate all metadata and rebuild index,如果是invalidate metadata什么都不加,宁愿重新启动catalogd。 
2.如果涉及到表的schema改变,使用invalidate metadata [table] 
3.如果只是涉及到表的数据改变,使用refresh [table]。 
4.如果只是涉及到表的某一个分区数据改变,使用refresh [table] partition [partition]。 
5.invalidate metadata操作比refresh要重量级。 

错误解决参考
错误1


路径权限问题
Error connecting: TTransportException, Could not connect to master:21000
在日志文件/var/log/impala中查看impalad.ERROR,错误如下

ERROR: short-circuit local reads is disabled because
  - dfs.domain.socket.path is not configured.
  - dfs.client.read.shortcircuit is not enabled.
1
2
3

解决方法
   找到对应参数的下的值,查看该路径是否存在,impala用户是否有权限进行读写

错误2
invalidate metadata 更新元数据出错
错误代码

Query: invalidate metadata
ERROR: Couldn't open transport for hdname:26000 (connect() failed: Connection refused)
1
2
查看日志信息,有如下错误,无法读取datanode上的数据块信息

I0507 10:03:36.218281 21562 BlockStorageLocationUtil.java:177] Failed to query block locations on datanode 192.168.73.16:50020: org.apache.hadoop.ipc.RemoteException(java.lang.UnsupportedOperationException): Datanode#getHdfsBlocksMetadata  is not enabled in datanode config
        at org.apache.hadoop.hdfs.server.datanode.DataNode.getHdfsBlocksMetadata(DataNode.java:1547)

解决方法
注意:这里使用的端口说是26000,事实上在整个配置过程中没有任何的端口设置为26000,同时出现这种错误是在登录终端并且成功连接之后出现,也就是说这跟元数据相关
解决方法:
/etc/default/impala 中的配置项IMPALA_CATALOG_ARGS,需要增加参数 -state_store_host=${IMPALA_STATE_STORE_HOST}
结果如下

该参数告诉了catalog去哪个host找元数据,事实上在state-store的配置中也有重新设置state_store_host参数

————————————————
版权声明:本文为CSDN博主「Dino系我」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhong_han_jun/article/details/45563505

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值