我已经建立了一个Hadoop集群(通过Cloudera Manager使用Cloudera发行版),我正在使用Hue接口运行一些Hive查询,该接口使用了下面的Beeswax。
我的所有查询运行正常,我甚至已经成功部署了自定义UDF。
但是,在部署UDF时,我遇到了一个非常令人沮丧的版本问题。在我的UDF类的初始版本中,我使用了导致StackOverflowError
的第三方类。
我修复了这个错误,然后验证了可以从hive命令行成功部署和使用UDF。
然后,当我再次使用Hue和Beeswax时,我不断得到同样的错误。我只能通过更改我的UDF java类名来解决这个问题。 (从Lower
到Lower2
)。
现在,我的问题是,处理这类版本问题的正确方法是什么?
据我所知,当我使用左边的方便表单字段添加jar时,它们会被添加到分布式缓存中。那么,如何刷新/清除分布式缓存? (我无法从Hive / Beeswax中运行LIST JARS;
等。它给我一个语法错误。)
答案 0 :(得分:2)
由于类被加载到Beeswax Server JVM(与HiveServer1和HiveServer2 JVM相同),因此部署新版本的jar通常需要重新启动这些服务以避免此类加载问题。