73

私は得ています:

FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask

ハイブコンソールのコマンドを使用してパーティションテーブルのコピーを作成しようとしているとき:

CREATE TABLE copy_table_name LIKE table_name;
INSERT OVERWRITE TABLE copy_table_name PARTITION(day) SELECT * FROM table_name;

最初にいくつかのセマンティック分析エラーが発生し、次のように設定する必要がありました。

set hive.exec.dynamic.partition=true
set hive.exec.dynamic.partition.mode=nonstrict

上記のプロパティが何をするのかわかりませんが?

ハイブコンソールからの完全な出力:

Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 1
In order to change the average load for a reducer (in bytes):
  set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
  set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
  set mapred.reduce.tasks=<number>
Starting Job = job_201206191101_4557, Tracking URL = http://jobtracker:50030/jobdetails.jsp?jobid=job_201206191101_4557
Kill Command = /usr/lib/hadoop/bin/hadoop job  -Dmapred.job.tracker=master:8021 -kill job_201206191101_4557
2012-06-25 09:53:05,826 Stage-1 map = 0%,  reduce = 0%
2012-06-25 09:53:53,044 Stage-1 map = 100%,  reduce = 100%
Ended Job = job_201206191101_4557 with errors
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask
4

10 に答える 10

124

これは本当のエラーではありません。それを見つける方法は次のとおりです。

hadoop jobtracker Webダッシュボードに移動し、失敗したハイブmapreduceジョブを見つけて、失敗したタスクのログを確認します。それはあなたに本当のエラーを示します。

コンソールの出力エラーは役に立ちません。これは主に、実際のエラーをプルするための個々のジョブ/タスクのビューがないためです(複数のタスクでエラーが発生する可能性があります)

お役に立てば幸いです。

于 2012-06-28T16:07:18.853 に答える
20

私はこのスレッドで3年遅れていることを知っていますが、それでも将来同様のケースに2セントを提供します。

最近、クラスターで同じ問題/エラーに直面しました。JOBは常に約80%以上の削減になり、同じエラーで失敗し、実行ログにも何も表示されません。何度も繰り返して調べたところ、読み込まれる多数のファイルの中には、ベーステーブル(パーティションテーブルにデータを挿入するために使用されるテーブル)に提供される構造に準拠していないものがあることがわかりました。

ここで注意すべき点は、パーティショニング列の特定の値に対してselectクエリを実行したり、静的パーティションを作成したりすると、エラーレコードがスキップされたため、正常に機能したことです。

TL; DR:HIVEはSchema-On-Readの哲学に従っているため、受信データ/ファイルの構造化に矛盾がないかどうかを確認してください。

于 2015-04-07T19:14:08.423 に答える
4

ここにいくつかの情報を追加します。HDInsight(AzureのHadoop)でHadoopジョブトラッカーのWebダッシュボードを見つけるのに時間がかかり、同僚がついにそれがどこにあるかを教えてくれました。「HadoopYarnStatus」と呼ばれるヘッドノードにショートカットがあります。これは、ローカルhttpページ(私の場合はhttp:// headnodehost:9014 / cluster)への単なるリンクです。ダッシュボードを開くと、次のようになりました。

ここに画像の説明を入力してください

そのダッシュボードで失敗したアプリケーションを見つけることができ、それをクリックした後、個々のマップのログを見て、ジョブを減らすことができます。

私の場合、構成内のメモリをすでにクランキングしたにもかかわらず、レデューサーのメモリがまだ不足しているように見えました。何らかの理由で、以前に発生した「javaoutofmemory」エラーが発生していませんでした。

于 2015-09-09T08:56:17.453 に答える
2

S3のEMR出力パスから_SUCCESSファイルを削除しましたが、正常に機能しました。

于 2015-04-10T10:55:05.620 に答える
2

一番の答えは正しいです、エラーコードはあなたに多くの情報を与えないということです。このエラーコードについてチームで見られた一般的な原因の1つは、クエリが適切に最適化されていない場合でした。既知の理由は、左側のテーブルの大きさが右側のテーブルよりも大きい内部結合を行う場合でした。これらのテーブルを交換すると、通常、このような場合にうまくいきます。

于 2017-09-14T06:58:26.753 に答える
2

Elasticsearchclusterを指しているHIVE外部テーブルにデータを挿入しているときにも同じエラーに直面していました。

古いJARelasticsearch-hadoop-2.0.0.RC1.jarをに置き換えましたがelasticsearch-hadoop-5.6.0.jar、すべて正常に機能しました。

私の提案は、ElasticSearchバージョンに従って特定のJARを使用することです。新しいバージョンのElasticSearchを使用している場合は、古いJARを使用しないでください。

この投稿に感謝しますHive-Elasticsearch書き込み操作#409

于 2017-09-15T08:43:17.727 に答える
1

私も同じ問題に直面しました-ダッシュボードでチェックしたとき、私は次のエラーを見つけました。データがFlumeを経由していて、その間に中断されたため、いくつかのファイルに不整合があった可能性があります。

Caused by: org.apache.hadoop.hive.serde2.SerDeException: org.codehaus.jackson.JsonParseException: Unexpected end-of-input within/between OBJECT entries

それが機能したより少ないファイルで実行します。私の場合、フォーマットの一貫性が理由でした。

于 2016-03-29T15:02:19.177 に答える
1

しようとしたデータベースを照会する権限がなかったため、同じ問題に直面しました。

テーブル/データベースにクエリを実行する権限がない場合は、Return Code 2 from org.apache.hadoop.hive.ql.exec.MapRedTaskエラーのほかに、ClouderaManagerでクエリが登録されていないことがわかります。

于 2020-05-07T20:33:15.690 に答える
0

2つのテーブルを結合するときにこのエラーを受け取りました。また、1つのテーブルはサイズが大きく、別のテーブルは小さいため、ディスクメモリに収まります。このような場合は、

set hive.auto.convert.join = false

これは、上記のエラーを取り除くのに役立つ場合があります。この問題の詳細については、以下のスレッドを参照してください

  1. ハイブマップ-構成の謎に参加する
  2. Hive.auto.convert.join = trueこれの重要性は何ですか?
于 2021-06-15T12:57:30.097 に答える
0

beelineでハイブテーブルを作成しているときに同じエラーが発生し、実際のエラーをスローするスパークシェルを介して作成しようとしました。私の場合、エラーはhdfsディレクトリのディスク容量の割り当てにありました。

org.apache.hadoop.ipc.RemoteException:/user/hive/warehouse/XXX_XX.dbのDiskSpaceクォータを超えています:quota = 6597069766656 B = 6 TBですが、消費されたディスクスペース= 6597493381629 B = 6.00 TB

于 2022-01-05T11:09:21.450 に答える