0

5台のマシンにHiveインストール(Hive-0.8、Hadoop-1.0.3)があり、2つのテーブルを結合しようとすると、次の例外が発生します。

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応答コードを返しました:URLに対して400:http:// hadoop4:50060 / tasklog?taskid = attempt_201210161122_0013_r_000001_4&start = -8193

URLは別のマシンを指すことができます。

だから私はグーグルでそれを変更taskidするとattemptid実際の問題を見ることができることを発見しました、それはこの例外です:

FATAL ExecReducer:java.lang.IllegalArgumentException:nanos>999999999または<0atjava.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)at org.apache.hadoop.hive.serde2.lazy.LazyTimestamp.writeUTF8(LazyTimestamp.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)at org.apache.hadoop.hive .serde2.lazy.LazySimpleSerDe.serializeField(LazySimpleSerDe.java:381)at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe.java:365)at org.apache.hadoop.hive.ql.exec 。FileSinkOperator.processOp(FileSinkOperator.java:569)at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)at org.apache.hadoop.hive.ql.exec.Operator.forward( Operator.java:762)org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:84)at 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.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 org.apache.hadoop.hive.ql.execの.hive.ql.exec.CommonJoinOperator.genAllOneUniqueJoinObject(CommonJoinOperator.java:749)。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 org.apache.hadoop.mapred.Child.main(Child.java:249)の.doAs(UserGroupInformation.java:1121)263)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)atjavax.security。 auth.Subject.doAs(不明なソース)(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)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)atjavax.security。 auth.Subject.doAs(不明なソース)(org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121))(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)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)

スタックトレース全体が役立つかどうかはわかりませんが、グーグルで見つけたのは、IBMDB2のIBMアップデート/修正へのリンクでした。それがHiveの問題に関連しているかどうかはわかりません。たとえ関連していても、どうしたらよいかわかりません。

誰かが私を正しい方向に向けることができますか?

PS:古いバージョンのHive / Hadoopに対してオンラインで提案されたソリューションを試しましたが、いずれも何も起こりませんでした。また、NULL値もチェックしました。

4

2 に答える 2

0

完全なSQLを提供する必要があります。いずれにせよ、以下は無効です。

nanos > 999999999 or < 0 

次のようにする必要があります。

(nanos > 999999999 or nanos < 0) 

したがって、「ビュー内」が正常に機能するとは限りません。ビューを作成する際に、その構文エラーを修正する必要がありました。IOW ビューがスタンドアロン クエリと一致しません。

于 2013-10-01T21:41:08.690 に答える