Hive 0.12 和 Hadoop 2.2.0-cdh5.0.0-beta2 的 SerDe 问题

2023-12-01

标题有点奇怪,因为我很难缩小问题范围。我在 Hadoop 2.0.0-cdh4.4.0 和 hive 0.10 上使用我的解决方案,没有出现任何问题。

  • 我无法使用此 SerDe 创建表:https://github.com/rcongiu/Hive-JSON-Serde

第一次尝试:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop.hive.serde2.objectinspector.primitive.AbstractPrimitiveJavaObjectInspector.<init>(Lorg/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorUtils$PrimitiveTypeEntry;)V

第二次尝试:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Could not initialize class org.openx.data.jsonserde.objectinspector.JsonObjectInspectorFactory
  • 我可以用这个 SerDe 创建一个表:https://github.com/cloudera/cdh-twitter-example

  • 我使用来自水槽的推文创建了一个外部表。我无法执行“从推文中选择*;”

    失败:RuntimeException org.apache.hadoop.hive.ql.metadata.HiveException:失败,异常 java.lang.ClassNotFoundException:com.cloudera.hive.serde.JSONSerDejava.lang.RuntimeException:java.lang.ClassNotFoundException:com.cloudera。 hive.serde.JSONSerDe

  • 我可以从推文中选择 id、文本;

  • 我可以执行 SELECT COUNT(*) FROM tweets;
  • 我无法自行加入该表:

    执行日志位于:/tmp/jochen.debie/jochen.debie_20140311121313_164611a9-b0d8-4e53-9bda-f9f7ac342aaf.log 2014-03-11 12:13:30 开始启动本地任务来处理映射加入;最大内存 = 257294336 执行失败,退出状态:2 获取错误信息

    任务失败! 任务编号: 第五阶段

提到的执行日志:

2014-03-11 12:13:30,331 ERROR mr.MapredLocalTask (MapredLocalTask.java:executeFromChildJVM(324)) - Hive Runtime Error: Map local work failed
org.apache.hadoop.hive.ql.metadata.HiveException: Failed with exception java.lang.ClassNotFoundException: com.cloudera.hive.serde.JSONSerDejava.lang.RuntimeException: java.lang.ClassNotFoundException: com.cloudera.hive.serde.JSONSerDe

有谁知道如何解决这个问题,或者至少告诉我问题出在哪里?

编辑:我在 Hadoop 2.0.0-cdh4.4.0 和 hive 0.10 上构建 serde 会是一个问题吗?


据我所知,Hive-.11+ 在与自定义 SerDe 连接时存在错误。

https://github.com/Esri/gis-tools-for-hadoop/issues/9

您可以尝试将包含 SerDe 类的 JAR 文件复制到 $HIVE_HOME/lib 的解决方法。

(我在你的问题中看到你在 join 和其他情况下都遇到了 ClassNotFoundException ;到目前为止,我遇到的都是在 join 中遇到的。)

[编辑] 另一种解决方法是使用 HADOOP_CLASSPATH:

env HADOOP_CLASSPATH=some.jar:other.jar hive ...

[编辑] 解决方法适用于 Hive 版本 0.11 和 0.12;那么 0.13 及更高版本包含以下修复HIVE-6670.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive 0.12 和 Hadoop 2.2.0-cdh5.0.0-beta2 的 SerDe 问题 的相关文章

随机推荐