Hive UDF + JNI +清理?

时间:2015-09-09 15:57:10

标签: java hive udf

我正在编写一些Hive UDF,使用JNI与本机C库进行通信。 C库需要一些昂贵的初始化,并通过句柄维护其内部状态。为了避免在每一行重新初始化,我在第一行初始化库,然后将句柄存储为Java世界中的静态变量,并为后续行获取该句柄。这一切都很好。

困难的部分是图书馆还要求你做清理,以释放内部状态。当然,作为Java,没有析构函数。而且我不能依靠“最终确定”。所以我无法找到清理这个库的地方。

Hive + UDF世界中是否有任何内容可以在查询完成时告诉我的Java代码,以便我可以清理该库?或者,我可以使用任何Java机制来执行此操作吗?

我正在使用' UDF'上课不是' GenericUDF',但我不认为这很重要。我看不到任何看起来像是清理的东西(GenericUDF'关闭'没有被称为AFAICT)。

0 个答案:

没有答案