如何添加serde jar

ecbunoof  于 2021-06-03  发布在  Hadoop
关注(0)|答案(4)|浏览(321)

我使用配置单元创建表存储序列文件。行格式为serder类 myserde.TestDeserializerhiveserde-1.0.jar 在命令行中,我使用以下命令添加jar文件:
配置单元添加jar hiveserde-1.0.jar
然后我创建了一个表,文件加载成功。
但是现在我想运行它并使用mysql jdbc在客户机上创建一个表。错误是:
serde:myserde.testdeserializer不存在。
如何运行?谢谢

lfapxunr

lfapxunr1#

转到hive-env.sh并附加到文件的底部:

export HIVE_AUX_JARS_PATH=$HIVE_AUX_JARS_PATH:/<path-to-jar>

然后您就可以找到这个文件的来源。不太理想,但很管用。

xoshrz7s

xoshrz7s2#

是的,这可能有点混乱,似乎一半的时间配置单元从集群读取,另一半时间从本地文件系统读取(安装了机器配置单元服务器)。
要克服这个简单的问题,请将.jar文件复制到配置单元服务器计算机,然后您可以在配置单元查询中引用它,例如:

add jar /tmp/json-serde.jar;

create table tweets (
    name string,
    address1 string,
    address2 string,
    address3 string,
    postcode string
)
...

然后讨论下一个问题;)

brvekthn

brvekthn3#

您是说您希望通过jdbc而不是cli创建表吗?在这种情况下,应该在运行jdbc代码时将jar添加到类路径中。

iecba09b

iecba09b4#

所以,有几个选择。在所有这些配置中,jar都需要存在于安装了hive的集群中。当然,jdbc客户机代码可以从集群内外的任何地方运行。
选项1:在运行任何其他hql命令之前发出hql查询: ADD JAR hiveserde-1.0.jar 选项2:您可以更新hive-site.xml以获得 hive.aux.jars.path 属性设置为jar hiveserde-1.0.jar的完整路径

相关问题