安全な偽装機能http://hadoop.apache.org/common/docs/stable/Secure_Impersonation.htmlを使用して、同様の問題を解決できました
このコードスニペットに従う
UserGroupInformation ugi =
UserGroupInformation.createProxyUser("hduser", UserGroupInformation.getLoginUser());
ugi.doAs(new PrivilegedExceptionAction<Void>() {
public Void run() throws Exception {
Configuration jobconf = new Configuration();
jobconf.set("fs.default.name", "hdfs://server:hdfsport");
jobconf.set("hadoop.job.ugi", "hduser");
jobconf.set("mapred.job.tracker", "server:jobtracker port");
String[] args = new String[] { "data/input", "data/output" };
ToolRunner.run(jobconf, WordCount.class.newInstance(), args);
return null;
}
});
URLcore-site.xml
に記載されているように、リモート(私の場合はWindowsデスクトップホスト)のログインユーザーIDを追加する必要があります