Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-4247

Filtering on a hbase row key duplicates results across multiple mappers

Log workAgile BoardRank to TopRank to BottomVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: 0.9.0
    • Fix Version/s: 0.13.0
    • Component/s: HBase Handler
    • Labels:
    • Environment:

      All Platforms


      Steps to reproduce
      1. Create a Hive external table with HiveHbaseHandler with enough data in the hbase table to spawn multiple mappers for the hive query.
      2. Write a query which has a filter (in the where clause) based on the hbase row key.
      3. Running the map reduce job leads to each mapper querying the entire data set. duplicating the data for each mapper. Each mapper processes the entire filtered range and the results get multiplied as the number of mappers run.

      Expected behavior:
      Each mapper should process a different part of the data and should not duplicate.

      The cause seems to be the convertFilter method in HiveHBaseTableInputFormat. convertFilter has this piece of code which rewrites the start and the stop row for each split which leads each mapper to process the entire range

      if (tableSplit != null)

      { tableSplit = new TableSplit( tableSplit.getTableName(), startRow, stopRow, tableSplit.getRegionLocation()); }

      The scan already has the start and stop row set when the splits are created. So this piece of code is probably redundant.


        1. HiveHBaseTableInputFormat.patch
          0.5 kB
          Karthik Kumara

        Issue Links


          $i18n.getText('security.level.explanation', $currentSelection) Viewable by All Users


            • Assignee:
              Unassigned Assign to me
              karthik_kumara Karthik Kumara


              • Created:

                Issue deployment