【发布时间】:2014-04-14 23:15:48
【问题描述】:
标题有点奇怪,因为我很难缩小问题范围。我在 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
-
我用来自 Flume 的推文创建了一个外部表。我不能做“SELECT * FROM tweets;”
失败: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
我可以做 SELECT id, text FROM tweets;
- 我可以从推文中执行 SELECT COUNT(*);
-
我无法自行加入此表:
执行日志位于:/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 会不会是个问题?
【问题讨论】: