2017-12-28 41 views
0

내가 우리 CDH의 하둡 클러스터 우리는
를 실행하는 EMR 클러스터가)
2 S3에 백업 할
1) 내 문제를 상태로 S3하기 3) em3 클러스터에서 s3distcp를 실행하려고합니다. src를 cd3 원격 클러스터 및 대상의 hdfs URL로 제공합니다.권한 문제는

가 다음 오류 갖는 org.apache.hadoop.ipc.RemoteException (org.apache.hadoop.security.AccessControlException) : 에 의한 권한이 거부 : 사용 = mapred 액세스 = AD_EXECUTE RE, 아이 노드 = "/ TMP/하둡 - mapred/mapred/준비 "다음

이 행할 수)

1

http://docs.aws.amazon.com/emr/latest/ReleaseGuide/UsingEMR_s3distcp.html 여기 문서를 거쳐 내 질문입니다. s3distcp 문서에서 hdfs url을 얻을 수 있음을 알 수 있습니다. 하지만 외부 클러스터의 경우 어떻게 작동하는지에 대한 문서는 찾을 수 없습니다.

2) 준비 디렉토리 (s3distcp가 s3에 복사하기 전에이 디렉토리에 데이터를 복사한다고 언급 했음)를 알고 싶습니다. 설명서에 언급 된 내용이 원격 클러스터 또는 emr 클러스터에 생성되었습니다.

답변

0

확실히 가능합니다. distcp 명령을 보지 않고도 말하기는 어렵습니다. 다음은 몇 가지 일반적인 정보입니다 ...

우리는 S3에 CDH 클러스터를 백업 한 상당히 정교한 프로세스를 구축합니다. 스테이징 디렉토리를 처리하기 위해 특별한 작업을 수행 할 필요가 없었습니다. 우리는 CDH 배포판에 포함 된 distcp를 사용했는데 제대로 작동합니다.

이 모든 것은 쉘 스크립트에서 실행됩니다. 우리가 일 주요 명령은 먼저 설정이 변수로

hadoop distcp $distcp_opts -m 20 -numListstatusThreads 15 -strategy dynamic -update -delete $distcp_source $distcp_target 

입니다 :

distcp_opts="-Dfs.s3a.multipart.uploads.enabled=false -Dmapreduce.map.memory.mb=5000 -Dmapreduce.task.timeout=2400000 -Dmapreduce.map.maxattempts=8 -Dmapreduce.reduce.maxattempts=8 -Dfs.s3a.access.key=$AWS_ACCESS_KEY_ID -Dfs.s3a.secret.key=$AWS_SECRET_ACCESS_KEY" 

distcp_source="hdfs://nameservice1/foo/$table/" 
distcp_target="s3a://my-aws-bucket/foo/$table" 

distcp_opts 우리가 우리를 위해 결국 신뢰할 수있는 것을 알았다 단지 무엇인가.

이제 EMR 프로세스로 이동했으며 CDH에 대한 프로세스는 거의 없습니다. 그러나 여전히 잘 작동합니다. EMR 클러스터 내에서는 AWS s3-dist-cp 명령을 사용하며 우리가 사용하는 Apache 버전보다 강력하고 성능이 좋습니다. 그것은 아마 당신의 클러스터에서 사용 가능하게 만들고 시험할만한 가치가 있습니다.

0

Distcp는 점점 퍼져 나가는 클러스터에서 작업하기를 좋아합니다. 클러스터 중 하나에 kerberos가 있으면 해당 클러스터에서 kerberos를 실행해야합니다.

작업을 수행 할 때 EMR 클러스터가 다른 VPN을 볼 수 있도록 VPN이 없으면 액세스 할 수 없습니다. 권한을 부여 받으면 나는 kerberos 또는 다른 인증보다는 연결 가능성을 의심합니다.