我已经设置了一个 Hadoop 集群(通过 Cloudera Manager 使用 Cloudera 发行版),我正在使用 Hue 界面运行一些 Hive 查询,该界面在底层使用 Beeswax。
我的所有查询都运行良好,我什至成功部署了自定义 UDF。
但是,在部署 UDF 时,我遇到了一个非常令人沮丧的版本控制问题。在我的 UDF 类的初始版本中,我使用了导致 StackOverflowError
的第 3 方类。
我修复了这个错误,然后验证了可以从 hive 命令行成功部署和使用 UDF。
然后,当我再次使用 Hue 和 Beeswax 时,我不断遇到同样的错误。我只能通过更改我的 UDF java 类名来解决这个问题。 (从 Lower
到 Lower2
)。
现在,我的问题是,处理这类版本问题的正确方法是什么?
据我所知,当我使用左侧方便的表单字段添加 jar 时,它们会添加到分布式缓存中。那么,如何刷新/清除分布式缓存? (我无法让 LIST JARS;
等从 Hive/Beeswax 中运行。它给我一个语法错误。)
最佳答案
由于类被加载到 Beeswax Server JVM(HiveServer1 和 HiveServer2 JVM 也是如此),部署新版本的 jar 通常需要重新启动这些服务以避免此类加载问题。
关于hadoop - 使用 Hue + Beeswax 运行定义自定义 UDF 的 Hive 查询时如何刷新/清除 DistributedCache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16247073/