我在 5 台机器上安装了 Hive(Hive-0.8、Hadoop-1.0.3),每当我尝试加入两个表时,我都会收到以下异常:
java.lang.RuntimeException:从 org.apache.hadoop.hive.ql.exec 的 org.apache.hadoop.hive.ql.exec.errors.TaskLogProcessor.getErrors(TaskLogProcessor.java:130) 的任务日志 URL 读取时出错.JobDebugger.showJobFailDebugInfo(JobDebugger.java:211) at org.apache.hadoop.hive.ql.exec.JobDebugger.run(JobDebugger.java:81) at java.lang.Thread.run(Unknown Source) 原因:java .io.IOException:服务器返回 HTTP 响应代码:400 对于 URL:http://hadoop4:50060/tasklog?taskid=attempt_201210161122_0013_r_000001_4&start=-8193
url 可以指向不同的机器。
所以我通过谷歌搜索发现,如果我更改taskid
为attemptid
then 我可以看到实际问题,这就是这个异常:
FATAL ExecReducer: java.lang.IllegalArgumentException: nanos > 999999999 或 < 0 at java.sql.Timestamp.setNanos(Unknown Source) at org.apache.hadoop.hive.serde2.io.TimestampWritable.populateTimestamp(TimestampWritable.java:348)在 org.apache.hadoop.hive.serde2.io.TimestampWritable.toString(TimestampWritable.java:320) 在 org.apache.hadoop.hive.serde2.lazy.LazyTimestamp.writeUTF8(LazyTimestamp.java:95) 在 org.apache .hadoop.hive.serde2.lazy.LazyUtils.writePrimitiveUTF8(LazyUtils.java:232) 在 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) 在 org.apache.hadoop.hive.ql.exec .FileSinkOperator.processOp(FileSinkOperator.java:569) 在 org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471) 在 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.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:第471章.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471) 在 org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762) 在 org.apache.hadoop .hive.ql.exec.CommonJoinOperator.genAllOneUniqueJoinObject(CommonJoinOperator.java:749) 在 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) 在 org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:519) 在 org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:420) 在 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) 在 org.apache.hadoop.mapred.Child.main(Child.java:249)263)在 org.apache.hadoop.hive.ql.exec.ExecReducer.reduce(ExecReducer.java:198) 在 org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:519) 在 org.apache.hadoop .mapred.ReduceTask.run(ReduceTask.java:420) 在 org.apache.hadoop.mapred.Child$4.run(Child.java:255) 在 java.security.AccessController.doPrivileged(Native Method) 在 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)263)在 org.apache.hadoop.hive.ql.exec.ExecReducer.reduce(ExecReducer.java:198) 在 org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:519) 在 org.apache.hadoop .mapred.ReduceTask.run(ReduceTask.java:420) 在 org.apache.hadoop.mapred.Child$4.run(Child.java:255) 在 java.security.AccessController.doPrivileged(Native Method) 在 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)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)java:255) 在 java.security.AccessController.doPrivileged(Native Method) 在 javax.security.auth.Subject.doAs(Unknown Source) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121) 在org.apache.hadoop.mapred.Child.main(Child.java:249)
我不确定整个堆栈跟踪是否有帮助,但我从谷歌搜索中发现,异常是指向 IBM DB2 的 IBM 更新/修复的链接。我不知道这是否与任何 Hive 问题有关,即使有,我也不知道该怎么做。
谁能指出我正确的方向?
PS:我已经尝试过针对旧版本的 Hive/Hadoop 在线建议的解决方案,但它们都没有产生任何结果。另外,我也检查了NULL
值。