Hadoop集群工具distcp使用笔记
1. 环境描述
两个集群:rock 和 stone
rock无kerberos权限认证,stone有要求认证。
1. 从rock复制到stone,采用hdfs
Hadoop distcp -i hdfs://rock-nn:8020/user/cxz/input hdfs://stone-nn:8020/user/cxz/
运行在rock端,即源端
问题:报版本不对的问题(的确该如此)
猜测:版本要是一致,也能正常运行
2. 从rock复制到stone,采用hftp
hadoop distcp -i hftp://rock-nn:50070/user/cxz/input hdfs://stone-nn:8020/user/cxz/
运行于stone端,即目的端;
问题:no problem, it's ok!
3. 从stone复制到rock,采用hftp
hadoop distcp -i hftp://stone-nn:50070/user/cxz/input hdfs://rock-nn:8020/user/cxz/
运行于rock端,即目的端
问题:kerberos权限认证失败
在第2步中遇到一个问题:
org.apache.hadoop.security.AccessControlException: Permission denied: user=[user], access=WRITE, inode="mapred":root:supergroup:rwxr-xr-x
解决方案:将如下配置加入到mapred-site.xml
<configuration>
<property>
<name>mapreduce.jobtracker.staging.root.dir</name>
<value>/user</value>
</property>
</configuration>
重启mapreduce:stop-mapred.sh && start-mapred.sh
相关阅读: