Hive 蜂巢添加罐不工作

Hive 蜂巢添加罐不工作,hive,Hive,我正在尝试导入一个引用了字段的文件。我发现了csv serde JAR,并尝试使用它来获得最小的成功 我从以下网站下载了JAR: 我在/tmp目录中添加了HDFS系统 当我尝试从Ambari中使用视图到配置单元时,我设置了以下内容: ADD JAR /tmp/csv-serde-1.1.2-0.11.0-all.jar; 这会引发文件不存在的错误: H110无法提交对账单。处理语句时出错: /tmp/csv-serde-1.1.2-0.11.0-all.jar不存在[错误状态] 然后,我尝试

我正在尝试导入一个引用了字段的文件。我发现了csv serde JAR,并尝试使用它来获得最小的成功

我从以下网站下载了JAR:

我在/tmp目录中添加了HDFS系统

当我尝试从Ambari中使用视图到配置单元时,我设置了以下内容:

ADD JAR /tmp/csv-serde-1.1.2-0.11.0-all.jar;
这会引发文件不存在的错误:

H110无法提交对账单。处理语句时出错: /tmp/csv-serde-1.1.2-0.11.0-all.jar不存在[错误状态]

然后,我尝试从终端调用配置单元:

配置单元>添加JAR/tmp/csv-serde-1.1.2-0.11.0-all.JAR

这是成功的。然后,我创建了我的外部表,然后选择一些字段,以确保它在CLI配置单元环境中正常工作

然后,我从Ambari中返回到配置单元视图,当我在表上运行任何类型的操作时,我得到:

H110无法提交对账单。编译语句时出错: 失败:运行时异常 MetaException(消息:java.lang.ClassNotFoundException类 未找到com.bizo.hive.serde.csv.CSVSerde)[错误状态]

当我试图通过ODBC驱动器从MS SQL查询时,我也会得到相同的错误

我在这个论坛上看到了多篇关于添加某某.jar和该等内容的帖子:

/usr/lib/hive


在我的集群上,无论是在基本操作系统级别还是在HDFS文件系统中,该目录都不存在。我应该将.jar文件放在何处以及如何放置,以便在hive CLI之外查询我的表?

您需要将jar放在HDFS中的某个位置。许多人在HDFS中使用/tmp,就像您使用本地FS一样。例如:

hdfs dfs -put /tmp/csv-serde-1.1.2-0.11.0-all.jar /tmp
然后,当您在蜂巢视图中时,您将

ADD JAR hdfs://$HOSTNAME:$PORTNUM/tmp/csv-serde-1.1.2-0.11.0-all.jar;

这将起作用并允许您查询数据。

请尝试完整路径,例如:

ADD JAR hdfs://<host>/<port>/tmp/csv-serde-1.1.2-0.11.0-all.jar;
addjarhdfs:////tmp/csv-serde-1.1.2-0.11.0-all.jar;
如果出于某种原因,Ambari viewer中正在使用的配置不同,并且没有定义默认FS,那么这可能会起作用

您提到的另一个选项—我相信您将jar放在哪个目录并不重要,只要它位于运行hive服务器的同一台主机上,并且hive-site.xml指向它。选择文件系统上的任意位置(例如,/home/myname/jars)在配置单元服务器计算机上编辑hive-site.xml

<property>
  <name>hive.aux.jars.path</name>
  <value>/home/myname/jars</value>
</property>

hive.aux.jars.path
/home/myname/jars
并将csv-serde-1.1.2-0.11.0-all.jar复制到/home/myname/jars(在本地fs上,而不是在hdfs上)。重新启动配置单元并重试。在这个方法中,您根本不需要使用addjar——JAR将自动包含在配置单元服务器类路径中

我读过但从未尝试过的另一个选项是将jar放在hivelib目录中。您也可以尝试,但请确保首先重新启动hive


关于addjar的注意事项:addjar命令和稍后使用它的查询必须在同一会话中执行。Hive CLI中的命令位于单个会话中,因此可以正常工作。我不知道Ambari Hive view如何管理会话。

如果HDFS中存在jar,示例:

hive>add jar hdfs:///tmp/csv-serde-1.1.2-0.11.0-all.jar;
你回来了吗

converting to local hdfs:///tmp/csv-serde-1.1.2-0.11.0-all.jar
Added [/tmp/d6528831-4f3c-41e4-a4cf-121a63796a0f_resources/csv-serde-1.1.2-0.11.0-all.jar] to class path
Added resources: [hdfs:///tmp/csv-serde-1.1.2-0.11.0-all.jar]
本地文件系统中是否存在jar示例

hive>add jar file:///tmp/csv-serde-1.1.2-0.11.0-all.jar;