Hadoop mapreduce ジョブの実行について質問があります。参加日で分割されたテーブルスタッフがあります。次のようなステートメントを作成します。
テーブル スタッフ (id int, age int) を (join_date 文字列) で分割し、'\;' で終了する行形式で区切られたフィールドを作成します。
一部のデータをパーティション '20130921' に配置し、次のステートメントを実行すると、結果は問題ありません。
select count(*) from staff where join_date='20130921';**
しかし、パーティション '20130922' (データのないパーティション) で実行すると、map reduce ジョブの保留時間が長すぎて、永久に実行されているように見えます:
hive> select count(*) from staff where join_date='20130922';**
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_201309231116_0131, Tracking URL = ....jobid=job_201309231116_0131`
**Kill Command** = `/u01/hadoop-0.20.203.0/bin/../bin/hadoop job -kill job_201309231116_0131`
Hadoop job information for Stage-1: number of mappers: 0; number of reducers: 1
2013-09-23 17:19:07,182 Stage-1 map = 0%, reduce = 0%
2013-09-23 17:19:07,182 Stage-1 map = 0%, reduce = 0%
2013-09-23 17:19:07,182 Stage-1 map = 0%, reduce = 0%
ジョブトラッカーは保留中のタスクを減らすことを示しており、このジョブは終了できないようです。
Hadoop-0.20.203.0 と hive-0.10.0 を使用しています。私は一日中グーグルで検索しましたが、同じ問題を抱えているトピックは見つかりませんでした。助けてください。
よろしくお願いします。