2013-04-19 2 views
3

hdfs에서 로컬 디렉토리로 디렉토리를 백업하려고합니다. ec2에서 실행중인 hadoop/hbase 클러스터가 있습니다. 로컬 컴퓨터에서 pseudo-distributed로 실행하고 싶은 것을 할 수 있었지만 지금은 똑같은 단계가 완벽하게 분산되어 있습니다. 여기에 내가지고있어 의사 분산 여기 hdfs 디렉토리를 전체 배포에서 로컬 디렉토리로 백업 하시겠습니까?

hadoop distcp hdfs://localhost:8020/hbase file:///Users/robocode/Desktop/ 

내가 EC2에서 하둡 네임 노드 (HBase를 마스터)에 노력하고있어 무엇

[email protected]:~$ 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) 

답변

6

Java에서 ~ 문자를 사용하여 현재 홈 디렉토리를 나타낼 수 없으므로 정규 경로 (예 :

)로 변경하십시오.
file:///home/user1/hbase 

하지만 distcp 명령이 맵 축소 작업을 실행하므로 대상 경로가 각 클러스터 노드에 로컬로 해석 될 수 있으므로 완전히 분산 된 환경에서 문제가 발생한다고 생각합니다.

로컬 디렉토리로 HDFS에서 아래로 데이터를 가져하려는 경우, 당신은 hadoop fs 명령에 -get 또는 -copyToLocal 스위치를 사용해야합니다은

+0

다시 한번 감사 크리스,'get'는 정확히처럼 보이는 I 필요한 것. 'get'과'put'은 디렉토리와 파일에 대해 작동합니까? –

+0

내 머리 꼭대기에서 벗어났다. 그렇다고 생각한다. –

+0

나는 그것을 확인했고, 그들은 디렉토리, 감사 크리스를 위해 일한다! –

관련 문제