windows下开发mr程序,经常会出现一些乱七八糟的问题
1.身份问题,UserGroupInformation中会处理身份问题.而且取的是系统当前登录用户,也就是你win7的用户,以这个身份进入hadoop集群.会导致hadoop拒绝执行任务
解决办法:
(1).在win7的环境变量中添加HADOOP_USER_NAME=hadoop
HADOOP_PROXY_USER=hadoop
(2)代码
UserGroupInformation ugi = UserGroupInformation.getBestUGI("/", "hadoop");
try {
ugi.doAs(new PrivilegedExceptionAction() {
public String run() throws Exception {
return null;
}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
上述两个方法都可以实现,推荐使用第一种