Uploaded image for project: 'Accumulo'
  1. Accumulo
  2. ACCUMULO-4670

RangeInputSplit drops sasl-enabled boolean

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Incomplete
    • None
    • None
    • mapreduce
    • None

    Description

      When creating the RecordReader for a RangeInputSplit, the Split should encapsulate all of the context of the configuration to invoke that Split (e.g. instance info, connector info, scan iterators, etc).

      However, the "useSasl" option is not preserved inside of the RangeInputSplit which results in the split always using useSasl=false. This obviously breaks Kerberos installations:

      Offending code: https://github.com/apache/accumulo/blob/f81a8ec7410e789d11941351d5899b8894c6a322/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java#L362-L376

      A workaround is to make sure that the Configuration present in the call to getRecordReader also has AccumuloInputFormat.setZooKeeperInstance invoked on it (push the ClientConfiguration into the Configuration which will result in it being merged with the details set on the input split).

            if (useSasl) {
              AccumuloInputFormat.setZooKeeperInstance(jobConf, instanceName, zookeepers, useSasl);
            }
      

      Attachments

        Issue Links

          Activity

            People

              elserj Josh Elser
              elserj Josh Elser
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: