我有一个蜂巢安装(蜂房0.8,Hadoop的1.0.3)在5台机器,每当我尝试加入两个表,我得到以下异常:HIVE加入问题
了java.lang.RuntimeException :从org.apache.hadoop.hive.ql.exec.errors.TaskLogProcessor.getErrors(TaskLogProcessor.java:130) (位于org.apache.hadoop.hive.ql.exec.JobDebugger)处从任务日志url 读取时出错。 showJobFailDebugInfo(JobDebugger.java:211) at org.apache.hadoop.hive.ql.exec.JobDebugger.run(JobDebugger.java:81) at java.lang.Thread.run(Unknown Source) 由java导致:java .io.IOException:服务器返回的HTTP响应c ODE:400的URL:http:// hadoop4:50060 /任务日志的taskid = attempt_201210161122_0013_r_000001_4 &开始= -8193
URL可以指向不同的机器。
所以,我发现谷歌搜索,如果我改变taskid
到attemptid
话,我可以看到实际的问题,这是此异常:
FATAL ExecReducer:java.lang.IllegalArgumentException异常:毫微> 999999999或 at java.sql.Timestamp.setNanos(Unknown Source) at org.apache.hadoop.hive.serde2.io.TimestampWritable.populateTimestamp(TimestampWritable.java:348) at org.apache.hadoop.hive.serde2.io .TimestampWritable.toString(TimestampWritable.java:320) at org.apache.hadoop.hive.serde2.lazy.LazyTimestamp.writeUTF8(LazyT imestamp.java:95) at org.apache.hadoop.hive.serde2.lazy.LazyUtils.writePrimitiveUTF8(LazyUtils.java:232) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe。 Java的:427) 在org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serializeField(LazySimpleSerDe.java:381) 在org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe.java: 365) at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)org.apache.hadoop.hive.ql.exec.FileSinkOperator.processOp(FileSinkOperator.java:569) at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762) at org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:84) at org.apach e.hadoop.hive.ql.exec.Operator.process(Operator.java:471) (位于org.apache的org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762) )。 hadoop.hive.ql.exec.FilterOperator.processOp(FilterOperator.java:132) at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471) at org.apache.hadoop。 hive.ql.exec.Operator.forward(Operator.java:762) at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.genAllOneUniqueJoinObject(CommonJoinOperator.java:749) at org.apache.hadoop.hive。 ql.exec.CommonJoinOperator.checkAndGenObject(CommonJoinOperator.java:836) at org.apache.hadoop.hive.ql.exec.JoinOperator.endGroup(JoinOperator.java:263) at org.apache.hadoop.hive.ql。 exec.ExecReducer.reduce(ExecReducer.java:198) at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:519) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:420) at org.apache.hadoop.mapred。 Child $ 4.run(Child.java:255) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Unknown Source) at org.apache.hadoop.security.UserGroupInformation .doAs(UserGroupInformation.java:1121) at org.apache.hadoop.mapred.Child。main(Child.java:249)
我不确定整个堆栈跟踪是否有帮助,但是我发现从Google搜索中找到的异常是指向IBM DB2更新/修复程序的链接。我不知道这是否与任何Hive问题有关,即使这样做,我也不知道该怎么做。
任何人都可以指出我正确的方向吗? PS:我已经尝试过为Hive/Hadoop的旧版本在线提出的解决方案,但是它们都没有产生任何结果。另外,我也检查了NULL
的值。
我该如何使用配置单元日期列来检查hdfs? btw。我通过使用视图找出了解决我的问题的临时解决方案。出于某种原因,如果我把查询放入视图中,那么我可以在视图上做任何我想做的事情,并且异常不会被抛出。 – user1676389