Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
Added config setting hive.counters.group.name: counter group name for counters used during query execution.
Description
Queries of the form:
from foo
insert overwrite table bar partition (p) select ...
insert overwrite table bar partition (p) select ...
insert overwrite table bar partition (p) select ...
Generate a huge amount of counters. The reason is that task.progress is turned on for dynamic partitioning queries.
The counters not only make queries slower than necessary (up to 50%) you will also eventually run out. That's because we're wrapping them in enum values to comply with hadoop 0.17.
The real reason we turn task.progress on is that we need CREATED_FILES and FATAL counters to ensure dynamic partitioning queries don't go haywire.
The counters have counter-intuitive names like C1 through C1000 and don't seem really useful by themselves.
With hadoop 20+ you don't need to wrap the counters anymore, each operator can simply create and increment counters. That should simplify the code a lot.