2014-10-10 8 views
0

저는 CDH5 HDFS를 설정 한 Eucalyptus 사설 클라우드를 사용하고 있습니다. HDFS를 Eucalyptus S3에 백업하고 싶습니다. 여기에 제안 된대로 distcp를 사용하는 전형적인 방법은 http://wiki.apache.org/hadoop/AmazonS3, 즉 hadoop distp hdfs://namenode:9000/user/foo/data/fil1 s3://$AWS_ACCESS_KEY:[email protected]/key이 작동하지 않습니다.다른 S3 대상을 사용하는 Hadoop distcp 명령

아마존에서 S3 위치로 hadoop이 미리 설정되어 있고 이것이 유칼립투스에서 실행되는 S3 서비스의 IP 주소로 변경하기 위해이 구성이 어디에 있는지 찾을 수 없습니다. hdfs : // 접두사를 사용할 때 NameNode URI를 변경할 수있는 것과 같은 방법으로 S3의 URI를 변경할 수있을 것으로 기대합니다. 그러나 이것이 가능하지 않은 것 같습니다 ... 어떤 통찰력?

데이터 전송에 대한 해결 방법을 이미 발견했습니다. 특히 s3cmd 도구는 다음과 같습니다. https://github.com/eucalyptus/eucalyptus/wiki/HowTo-use-s3cmd-with-Eucalyptus 및 s3curl 스크립트는 aws.amazon.com/developertools/Amazon-S3/2880343845151917에서 잘 작동하지만 distcp 명령으로 map-reduce를 사용하여 데이터를 전송할 수 있으면 더 좋습니다.

답변

0

hadoop이 S3 액세스에 jets3t 라이브러리를 사용하고있는 것처럼 보입니다. in this blog에 설명 된 구성을 사용하여 유칼립투스에 액세스 할 수 있지만 버전 4 이상에서는 "/ services/Walrus"가 아니라 "/ services/objectstorage"라는 경로가 있음에 유의하십시오.

+0

답변 해 주셔서 감사합니다. 나는 그것을 완벽하게 작동시키지 못했지만 당신의 대답은 내가 조금 더 나아갈 수있게 도와주었습니다. 내 경우에는 distcp가 s3n : //과 함께 작동하지만 s3 : //을 사용하지 않는 것 같습니다. 나중의 경우 404 오류 "특정 엔티티를 찾을 수 없습니다"를 얻었는데 아직 해결 방법을 모르겠습니다. core-site.xml에 구성을 추가하고 jets3t에서 찾은 링크 및 기타 관련 링크에 제안 된대로 jets3t.properties 파일을 만들었습니다. – Geeky