所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级
案例库

FAQ:FusionInsight C60U10 drop function函数之后函数列表人存在,此时函数已无法使用

发布时间:  2017-06-29  |   浏览次数:  471  |   下载次数:  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节点内存在扔保留有这个信息,所以能看到这个函数,但是元数据中已经删掉了所以无法使用

解决方案

U20以下的版本如果只是create同名函数可以执行reload function,如果要drop函数的话建议重启hive服务或每个使用过该函数的hiveserver都执行以下drop