2

Windows Server 2008 R2 で HDP 1.1 を使用しています。
Hive テーブルに Web ログインをロードしました。テーブル ステートメントを作成します。

create table logtable (datenonQuery string , hours string, minutes string, seconds string, TimeTaken string, Method string, UriQuery string, ProtocolStatus string) row format serde 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' with serdeproperties( "input.regex" = "(\\S+)\\t(\\d+):(\\d+):(\\d+)\\t(\\S+)\\t(\\S+)\\t(\\S+)\\t(\\S+)", "output.format.string" = "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s") stored as textfile; 

負荷ステートメント:

load data local inpath 'D:\Logfiles\' into table logtable;

ステートメントを選択:

Select * from logtable;

これまでのところ、すべて正常に動作しています。

次のステートメントは失敗します。

Select count(*) from logtable;

例外:

失敗: 実行エラー、org.apache.hadoop.hive.ql.exec.MapRedTask からの戻りコード 2

編集1:

失敗したジョブ テーブルの診断情報には、次の情報が表示されます。

「失敗したマップ タスクの数が、許可されている制限を超えました。FailedCount: 1. LastFailedTask: task_201306251711_0010_m_000000'

4

3 に答える 3

0

これは、ハイブというよりはむしろ Hadoop 関連のものです。SELECT * が機能し、SELECT COUNT(*) が機能しない理由は、後者が MR ジョブに関係しているためです。あなたのデータサイズは?

mapred.job.map.memory.mbプロパティをより高い値に設定して、マッパーのヒープサイズを増やしてみてください。また、分割サイズを小さくしてマッパーの数を増やしてみて、mapred.min.split.size違いが生じるかどうかを確認してください。

于 2013-07-10T09:22:13.980 に答える