Hadoop 是否将hdfs目录从完全分布式备份到本地目录?

Hadoop 是否将hdfs目录从完全分布式备份到本地目录?,hadoop,amazon-web-services,amazon-ec2,hbase,Hadoop,Amazon Web Services,Amazon Ec2,Hbase,我正在尝试将目录从hdfs备份到本地目录。我有一个hadoop/hbase集群在ec2上运行。我设法在本地机器上以伪分布式运行我想要做的事情,但是现在我完全分布式了,同样的步骤失败了。以下是对伪分布式系统有效的方法 hadoop distcp hdfs://localhost:8020/hbase file:///Users/robocode/Desktop/ 下面是我在ec2上的hadoop namenode(hbase主机)上尝试的内容 下面是我得到的错误 13/04/19 09:07:4

我正在尝试将目录从hdfs备份到本地目录。我有一个hadoop/hbase集群在ec2上运行。我设法在本地机器上以伪分布式运行我想要做的事情,但是现在我完全分布式了,同样的步骤失败了。以下是对伪分布式系统有效的方法

hadoop distcp hdfs://localhost:8020/hbase file:///Users/robocode/Desktop/
下面是我在ec2上的hadoop namenode(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)

在Java中不能使用~字符表示当前主目录,因此请更改为完全限定路径,例如:

file:///home/user1/hbase
但我认为在完全分布式的环境中,distcp命令运行map reduce作业时会遇到问题,因此目标路径将被解释为每个集群节点的本地路径


如果要将数据从HDFS下拉到本地目录,则需要使用-get或-copyToLocal开关切换到
hadoop fs
命令

再次感谢Chris,
get
看起来正是我需要的。
get
put
对目录和文件都有效吗?我想是的,我已经验证过了,他们对目录也有效,谢谢克里斯!
file:///home/user1/hbase