Josh Elser created ACCUMULO-4670:
------------------------------------

             Summary: RangeInputSplit drops sasl-enabled boolean
                 Key: ACCUMULO-4670
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-4670
             Project: Accumulo
          Issue Type: Bug
          Components: mapreduce
            Reporter: Josh Elser
            Assignee: Josh Elser
            Priority: Critical
             Fix For: 1.7.4, 1.8.2, 2.0.0


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).

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



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to