Elastic Map Reduce 작업 흐름의 입력 데이터로 S3 버킷을 사용하려고합니다. S3 버킷은 EMR 작업 흐름과 동일한 계정에 속하지 않습니다. 각 S3 버킷에 액세스하기 위해 S3 버킷 자격 증명을 지정하는 방법과 장소. 나는 다음과 같은 형식으로 시도 :EMR 작업 흐름에 다른 사용자 소유 S3 버킷 지정
s3n://<Access Key>:<Secret Key>@<BUCKET>
를하지만 나에게 다음과 같은 오류 제공 : 나도 같은 지정에 대한 이동 어떻게
Exception in thread "main" java.lang.IllegalArgumentException: The bucket name parameter must be specified when listing objects in a bucket
at com.amazonaws.services.s3.AmazonS3Client.assertParameterNotNull(AmazonS3Client.java:2381)
at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:444)
at com.amazonaws.services.s3.AmazonS3Client.doesBucketExist(AmazonS3Client.java:785)
at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.ensureBucketExists(Jets3tNativeFileSystemStore.java:80)
at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.initialize(Jets3tNativeFileSystemStore.java:71)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:83)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
at org.apache.hadoop.fs.s3native.$Proxy1.initialize(Unknown Source)
at org.apache.hadoop.fs.s3native.NativeS3FileSystem.initialize(NativeS3FileSystem.java:512)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1413)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:68)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1431)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:256)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:187)
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.setInputPaths(FileInputFormat.java:352)
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.setInputPaths(FileInputFormat.java:321)
at com.inmobi.appengage.emr.mapreduce.TestSession.main(TestSession.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:187)
를?
나를 위해 args 방식으로 작동하지 않았다. 부트 스트 래퍼 로그에서/mnt/var/lib/bootstrap-actions/2/configure-hadoop -args -c, fs.s3n.awsAccessKeyId =, -c, fs.s3n.awsSecretAccessKey = 을 실행하려고합니다. 다음 오류와 함께 실패합니다. 2013-08-26T08 : 47 : 22.715Z 정보 실행이 ret val 255로 끝났습니다. 2013-08-26T08 : 47 : 22.716Z 오류 코드 '255'로 실행하지 못했습니다. 한 가지 더 JobFlow GUI에서 부트 스트랩 작업을 구성 할 때 "선택적 인수"에 S3 키 옵션을 설정하고 있습니다. 이것이 다른 방법으로 일할 수 있습니까? –
슬레이브 노드에 로그인하여 거기에 core-site.xml 파일에 이러한 변경 사항이 있는지 확인하십시오. 또한 Amazon에서 제공하는 ruby cli를 사용하여 클러스터를 시작하십시오. – Amar
ruby cli를 사용할 수 있었지만 위에서 제안한대로 실행했지만 이제는 새로운 오류가 발생합니다. 상태 코드 : 403, AWS 서비스 : Amazon S3, AWS 요청 ID : 0504CE5FDBFC1D8B, AWS 오류 코드 : null, AWS 오류 메시지 : 금지됨, S3 확장 요청 ID :. 도울 수 있니? –