Table of Contents |
---|
...
- Store this metadata in app metastore on its own and have additional handlers to allow the user to set/get these.
- Allow the user to define a custom 'preference' that will dictate this mapping. For instance, the user setting a 'user.principal' preference at the application level will make it so that the application will be run with the specified principal.
I am leaning towards option #1, because it keeps the configuration of principal and keytab location away from other user preferences (which are available as runtime arguments in programs).
Implementation Design
User-launched programs
Hadoop's UserGroupInformation class has the following method:
// Log a user in from a keytab file.
UserGroupInformation loginUserFromKeytabAndReturnUGI(String user, String path)
...