发布时间: 2017-06-29 | 浏览次数: 629 | 下载次数: 0 | 作者: wWX465735 | 文档编号: EKB1000712131
使用drop function 函数名
drop后发现函数列表中仍然存在此函数
但是函数已经不能使用了
1、收集hiveserver日志和客户端打印日志
2、hiveserver日志有报如下错误
3、经分析查看Function的相关信息存储在HiveServer的内存中,beeline连接的时候有连接到其中某一个HiveServer上创建了函数,另一个HiveServer如果也使用过这个函数,那么他的内存里面也会保存这个函数的
信息;在执行drop之后,只在一个HiveServer内存中清理了,连接到另一个HiveServer的时候还能看见这个函数,但是这个函数在元数据中删掉了,就不可用了。
4、 因此在多个HiveServer的场景下,create或者drop的时候都需要在其他的HiveServer上执行一下reload function,刷新一下函数。
但是U20以下的版本中,reload只对于create生效,drop不会刷新,所以还是能看见他。因此在drop后如果再创建同名函数需要关注一下,采用重启,或者在多个HiveServer上都create的方式进行
多hiveserver场景下,在多个hiveserver使用过同一个函数,如果此时在其中一个节点drop这个函数,其他hiveserver节点内存在扔保留有这个信息,所以能看到这个函数,但是元数据中已经删掉了所以无法使用