在Eclipse中提交作业至远程的Hadoop集群上执行

http://www.cnblogs.com/elleniou/archive/2014/02/28/3573931.html主函数中加入:

  Configuration conf = new Configuration();       
  conf.set("fs.defaultFS","hdfs://hadoop0:9000");
  conf.set("yarn.resourcemanager.hostname", "hadoop0");
  conf.set("mapred.jobtracker.address", "hadoop0:9001");
  conf.set("mapreduce.framework.name", "yarn");
  conf.set("mapreduce.app-submission.cross-platform", "true");
  conf.set("mapred.jar", "F:\\myMRjar\\xxxxx.jar");

执行的时候run on configuration中写好输入输出参数。然后run on hadoop.

HDFS客户端的权限错误:Permission denied
错误的详细描述如下:
org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security .AccessControlException: Permission denied: user=Administrator, access=WRITE, inode=”hadoop”: hadoop:supergroup:rwxr-xr-x
参考解决方案: http://www.huqiwen.com/2013/07/18/hdfs-permission-denied/
总结下来解决办法大概有三种:
1、在系统的环境变量或java JVM变量里面添加HADOOP_USER_NAME,这个值具体等于多少看自己的情况,以后会运行HADOOP上的Linux的用户名。(修改完重启eclipse,不然可能不生效)
2、将当前系统的帐号修改为hadoop
3、使用HDFS的命令行接口修改相应目录的权限,hadoop fs -chmod 777 /user,后面的/user是要上传文件的路径,不同的情况可能不一样,比如要上传的文件路径为hdfs://namenode/user/xxx.doc,则这样的修改可以,如果要上传的文件路径为hdfs://namenode/java/xxx.doc,则要修改的为hadoop fs -chmod 777 /java或者hadoop fs -chmod 777 /,java的那个需要先在HDFS里面建立Java目录,后面的这个是为根目录调整权限。

阅读更多
换一批

没有更多推荐了,返回首页