Acessando o HDFS no Cloudera com Java e Kerberos Keytab no Windows
Estou tentando me conectar à minha instância do HDFS em execução no Cloudera. Meu primeiro passo foi habilitar o Kerberos e criar Keytabs (como mostradoaqui)
Na próxima etapa, eu gostaria de me autenticar com um keytab.
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://cloudera:8020");
conf.set("hadoop.security.authentication", "kerberos");
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab("hdfs@CLOUDERA", "/etc/hadoop/conf/hdfs.keytab");
FileSystem fs = FileSystem.get(conf);
FileStatus[] fsStatus = fs.listStatus(new Path("/"));
for (int i = 0; i < fsStatus.length; i++) {
System.out.println(fsStatus[i].getPath().toString());
}
Falha com o seguinte erro
java.io.IOException: falha de logon para hdfs @ CLOUDERA do keytab /etc/hadoop/conf/hdfs.keytab: javax.security.auth.login.LoginException: não é possível obter a senha do usuário
A questão é: como faço para lidar corretamente com o keytab? Preciso copiá-lo para minha máquina local?