20

VirtualBox Sandboxハイブでクエリを実行しているとき。Select count(*)よりも遅すぎると感じSelect *ます。

背後で何が起こっているのか誰か説明できますか?

そして、なぜこの遅延が起こっているのですか?

4

3 に答える 3

13
select * from table

マップのみのジョブでもかまいませんが、

Select Count(*) from table 

Map and Reduce ジョブの場合があります

お役に立てれば。

于 2013-06-12T10:12:24.537 に答える
4

ハイブ クエリで実行できる操作には 3 種類あります。

ここでは、最も安価で高速なものから、より高価で遅いものの順に並べています。

Hive クエリは、メタデータのみの要求にすることができます。

Show tables、describe table は例です。これらのクエリでは、Hive プロセスがメタデータ サーバーでルックアップを実行します。メタデータ サーバーは SQL データベース (おそらく MySQL) ですが、実際の DB は構成可能です。

Hive クエリは、hdfs get 要求にすることができます。テーブルから * を選択すると、例になります。この場合、Hive は hdfs 操作を実行して結果を返すことができます。hadoop fs -get、多かれ少なかれ。

Hive クエリは Map Reduce ジョブにすることができます。

Hive は jar を hdfs に送信する必要があり、jobtracker はタスクをキューに入れ、tasktracker はタスクを実行し、最終データを hdfs に入れるかクライアントに送信します。

Map Reduce ジョブにもさまざまな可能性があります。

マップのみのジョブである可能性があります。Select * from table where id > 100 、たとえば、そのすべてのロジックをマッパーに適用できます。

これは Map and Reduce ジョブで、表から min(id) を選択します。Select * from table order by id ;

また、複数の map Reduce パスにつながる可能性もありますが、上記はいくつかの動作を要約していると思います。

于 2013-12-06T10:38:18.170 に答える