Apache spark 如何在HiveThriftServer2中注册自定义UDF jar?

Apache spark 如何在HiveThriftServer2中注册自定义UDF jar?,apache-spark,hive,amazon-emr,spark-thriftserver,Apache Spark,Hive,Amazon Emr,Spark Thriftserver,在HiveThriftServer2类中,调用与调用之间的区别是什么 我有一个客户UDF jar,我想注册,这样每次当thrift服务器启动时,所有这些都是自动配置的。有办法做到这一点吗 我是否可以使用配置单元上下文来注册UDF jar和函数,并调用HiveThriftServer2.startWithContext来启动服务器 谢谢您正在寻找的是名为的hive.aux.jars.path,它是一个hive属性,不是特定于Spark的 我个人还没试过,但我想是这样的 ./sbin/start-t

在HiveThriftServer2类中,调用与调用之间的区别是什么

我有一个客户UDF jar,我想注册,这样每次当thrift服务器启动时,所有这些都是自动配置的。有办法做到这一点吗

我是否可以使用配置单元上下文来注册UDF jar和函数,并调用HiveThriftServer2.startWithContext来启动服务器


谢谢

您正在寻找的是名为
的hive.aux.jars.path
,它是一个hive属性,不是特定于Spark的

我个人还没试过,但我想是这样的

./sbin/start-thriftserver.sh \
  --hiveconf hive.aux.jars.path=file:///opt/lib/custom-udfs.jar
参考资料


如果您将JAR添加到类路径中,然后重新启动服务器,它将自动配置并调用
main
终止所有以前的SparkContext@cricket_007通过将JAR添加到类路径中,您能澄清您的意思吗?我试图通过sudo-u$SVC_USER/usr/lib/spark/sbin/start-thriftserver.sh--jars/opt/lib/custom-udfs.jar启动Thrift服务器,但这并没有注册custom-udfs.jar。谢谢,我想的是
$SPARK\u HOME/jars
,或者你给
--jars
的是SPARK执行器,而不是这里提到的服务器。可能重复我尝试过你的建议,执行
/sbin/start-thriftserver.sh \--hiveconf hive.aux.jars.path=file:///opt/lib/custom-udfs.jar
然后通过Beeline
Beeline-ujdbc:hive2://localhost:10000/default连接到Thrift服务器。但是当我列出jar时,custom-udfs.jar仍然没有作为资源列出。有什么想法吗?你是否尝试过将jar复制到spark文件夹中?我通过将custom-udfs.jar放在
/usr/lib/hive/auxlib
目录中而不是
/opt/lib/
来实现这一点。如您所建议的,指定指向它的
hive.aux.jars.path
。这是有效的,因为在创建函数之前,一旦通过直线连接,我就不需要执行
添加jar
。我现在的问题是,为什么hive
list jars
命令没有列出自定义udfs.jar?不确定。可能是个虫子