Uploaded image for project: 'Crunch'
  1. Crunch
  2. CRUNCH-536

crunch jobs fail to use hbase api of secured hbase

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.13.0
    • Component/s: None
    • Labels:
      None

      Description

      When accessing a secured hbase from within a mapreduce job, it is required that the hbase credentials are initialized on the job before it was submitted. This can be done with TableMapReduceUtil.initCredentials(job).

      In case the job is the consequence of using HBaseSourceTarget, crunch-hbase can take care of it, see CRUNCH-535.

      However, it is also possible to write DoFn's that use the HBase api directly, without using hbase input/output format. As an example use case, consider a job that bulk writes data to hbase by writing HFiles on HDFS which are later to be loaded into HBase. Such a job doesn't read or write from/to hbase using an input/output format directly, but it might still require access to other tables in HBase, for example auxiliary tables with metadata specific to the application.

      We can of course not expect crunch-core to call initCredentials (which is HBase specific) on all jobs, just in case, but it would be nice to be able to register a callback on the MRPipeline which is applied to every job before it is submitted, to cover this use case.

      I will provide a patch which will help to explain what I am suggesting here.

        Attachments

        1. CRUNCH-536.patch
          5 kB
          Jan Van Besien
        2. CRUNCH-536b.patch
          12 kB
          Josh Wills

          Activity

            People

            • Assignee:
              jwills Josh Wills
              Reporter:
              janvanbesien Jan Van Besien
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: