Hiveクエリを送信すると、Hiveはクエリを1つ以上の段階に変換します。ステージは、MapReduceステージ、サンプリングステージ、マージステージ、リミットステージ、またはHiveが行う必要のある他の可能なタスクです。
select * from table_name;
このクエリは、単にそのため、コンソール上の異なるログ出力を参照して、テーブル全体をスキャンし、画面に出力をダンプします。
select count(*) from table_name
はHiveメタ情報をスキャンし、その結果を自分自身から入力します。また、MapReduceジョブは実行されません。
Hiveコンソールで以下のコマンドを実行すると、情報全体を見ることができます。
hive> describe formatted table_name
;
表パラメータ:Hadoopので
COLUMN_STATS_ACCURATE true
numFiles xx
numRows xxxxxxxx
、凝集/条件/算術演算などは、結果を処理し、実行する処理エンジンを必要とし、あなたが仕事のこのタイプを提出するたびので、それは内部に変換されますMapReduceプログラムでは、MapReduceプログラムがクエリの代わりに実行され、その結果が画面上のハイブとハイブに表示されるため、別の結果が表示されます。
クエリの前にEXPLAIN
というキーワードを付けると、クエリプランなどの情報を表示できます。
Hive EXPLAIN
の機能の詳細については、Programming Hadoop Book、第10章を参照してください。
あなたと同じ質問があります:https://stackoverflow.com/questions/7466454/how-does-hive-decide-when-to-use-map-reduce-and-when-not-toそしてそこに受け入れられている答えが存在します。 – maxteneff