【问题标题】:how a hive UDF runs when a sql is running?运行 sql 时配置单元 UDF 如何运行?
【发布时间】:2020-03-21 13:38:47
【问题描述】:

我对在 SQL 中执行 Hive UDF 感到困惑。 当 SQL 编译成 MR 作业时,节点从 HiveServer 获取 JAR?如果在UDF中声明了一些静态变量,这些静态变量存在于哪里?

【问题讨论】:

    标签: hive user-defined-functions


    【解决方案1】:

    是的,你的理解是正确的。 Hive 基本上通过将其添加到分布式缓存中作为 add Jar 使这些 jar 在其所有节点上可用。 您必须注册 UDF 以便 hive 识别它。注册 UDF 将进入 hive 元存储。这通常通过执行类似CREATE FUNCTION <function_name> AS org.apache... 的操作来完成 这通常应该在 hive-env.sh 中可用

    【讨论】:

    • 应该把罐子放在 ${HIVE_HOME}/auxlib/ 吗?如果没有,当sql导致MR作业时,它会在mapper期间引发classNotFound等异常。
    • 而如果UDF中声明了一些静态变量,这些静态变量存在哪里?
    猜你喜欢
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多