我正在尝试将目录从hdfs备份到本地目录。我有一个hadoop/hbase集群在ec2上运行。我设法做了我想在我的本地机器上以伪分布式运行的事情,但是现在我完全分布式了,同样的步骤也失败了。以下是对伪分布式系统有效的方法
hadoop distcp hdfs://localhost:8020/hbase file:///Users/robocode/Desktop/
下面是我在ec2上尝试的hadoop namenode(hbase master)
ec2-user@ip-10-35-53-16:~$ hadoop distcp hdfs://10.35.53.16:8020/hbase file:///~/hbase
我得到的错误如下
13/04/19 09:07:40 INFO tools.DistCp: srcPaths=[hdfs://10.35.53.16:8020/hbase]
13/04/19 09:07:40 INFO tools.DistCp: destPath=file:/~/hbase
13/04/19 09:07:41 INFO tools.DistCp: file:/~/hbase does not exist.
With failures, global counters are inaccurate; consider running with -i
Copy failed: java.io.IOException: Failed to createfile:/~/hbase
at org.apache.hadoop.tools.DistCp.setup(DistCp.java:1171)
at org.apache.hadoop.tools.DistCp.copy(DistCp.java:666)
at org.apache.hadoop.tools.DistCp.run(DistCp.java:881)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
at org.apache.hadoop.tools.DistCp.main(DistCp.java:908)
1条答案
按热度按时间axr492tv1#
在java中不能使用~字符来表示当前主目录,因此请更改为完全限定的路径,例如:
但是我认为在完全分布式的环境中,当distcp命令运行map reduce作业时,您将遇到问题,因此目标路径将被解释为每个集群节点的本地路径。
如果要将数据从hdfs下拉到本地目录,则需要使用-get或-copytolocal开关来
hadoop fs
命令