Karen Coppage created HIVE-24001:
------------------------------------

             Summary: Don't cache MapWork in tez/ObjectCache during query-based 
compaction
                 Key: HIVE-24001
                 URL: https://issues.apache.org/jira/browse/HIVE-24001
             Project: Hive
          Issue Type: Bug
            Reporter: Karen Coppage
            Assignee: Karen Coppage


Query-based major compaction can fail intermittently with the following issue:

{code:java}
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: One writer is 
supposed to handle only one bucket. We saw these 2 different buckets: 1 and 6
  at 
org.apache.hadoop.hive.ql.udf.generic.GenericUDFValidateAcidSortOrder.evaluate(GenericUDFValidateAcidSortOrder.java:77)
{code}

This is consistently preceded in the application log with:

{code:java}
 [INFO] [TezChild] |tez.ObjectCache|: Found 
hive_20200804185133_f04cca69-fa30-4f1b-a5fe-80fc2d749f48_Map 1__MAP_PLAN__ in 
cache with value: org.apache.hadoop.hive.ql.plan.MapWork@74652101
{code}

Alternatively, when MapRecordProcessor doesn't find mapWork in tez/ObjectCache 
(but instead caches mapWork), major compaction succeeds.

The failure happens because, if MapWork is reused, 
GenericUDFValidateAcidSortOrder (which is called during compaction) is also 
reused on splits belonging to two different buckets, which produces an error.

Solution is to avoid storing MapWork in the ObjectCache during query-based 
compaction.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to