Configuring Impersonation and Chaining
Impersonation allows a service to act on behalf of a client while performing the action requested by the client. Chaining is a system-wide setting that applies to all views. Currently, Drill does not provide an option to allow different chain lengths for different views.
Complete the following steps on each Drillbit node to enable user impersonation, and set the
maximum number of chained user hops that Drill allows:
- Navigate to
<drill_installation_directory>/conf/
and editdrill-override.conf
. - Under
drill.exec
, add the following:drill.exec.impersonation: { enabled: true, max_chained_user_hops: 3 }
Alternatively, you can nest impersonation within thedrill.exec
block, as shown in the following example:drill.exec: { cluster-id: "cluster_name", zk.connect: "<hostname>:<port>,<hostname>:<port>,<hostname>:<port>", sys.store.provider.zk.blobroot: "hdfs://", impersonation: { enabled: true, max_chained_user_hops: 3 } }
- Set the maximum number of chained user hops.
- In
<drill_installation_directory>/conf/drill-env.sh
, add one of the following lines:- If the underlying filesystem has security enabled,
add the following line:
export MAPR_TICKETFILE_LOCATION=/opt/mapr/conf/mapruserticket
- If the underlying filesystem is not secure, add the following line:
export MAPR_IMPERSONATION_ENABLED=true
- If the underlying filesystem has security enabled,
add the following line:
- Restart the Drillbit process on each Drill
node.
maprcli node services -name drill-bits -action restart -nodes <node-hostnames-separated-by-a-space> -f