2014-05-08 6 views
-1

Hadoop (Spark를 통해)을 사용 중이며 요청자가 지불하는 S3N 콘텐츠에 액세스해야합니다. 일반적으로 jets3t.properties에서 httpclient.requester-pays-buckets-enabled = true을 활성화하면됩니다. 그러나 이것을 설정하고 Spark/Hadoop은이를 무시하고 있습니다. 아마도 jets3t.properties을 잘못된 위치 (/usr/share/spark/conf/)에 넣을 것입니다. Hadoop/Spark/JetS3t에서 요청자가 지불하는 버킷에 액세스하려면 어떻게해야합니까?S3 요청자 지불을 사용하도록 Hadoop 구성

업데이트 : 이것은 Amazon EC2 외부에있는 경우 필요합니다. EC2 내에서 Amazon은 요청자 지불을 요구하지 않습니다. 따라서 EC2가 부족한 해결 방법입니다.

답변

0

환경 변수와 작동하지 않았다 설정 파일하지만, 일부 수동 코드했다 : sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "PUTTHEKEYHERE")

0

스파크 시스템은 여러 개의 JVM (응용 프로그램, 마스터, 작업자, 실행자)으로 구성되어 있으므로 설정 속성이 까다로울 수 있습니다. 파일 작업 전에 System.getProperty()을 사용하여 코드가 실행되는 JVM이 올바른 구성을로드했는지 확인할 수 있습니다. System.setProperty()을 사용하여 설정 파일을 알아내는 대신 그 시점에서 직접 설정할 수도 있습니다.

+0

'System.setProperty 에의()'JetS3t를 이미 자체가 너무 늦게 코드 내에서 구성 때문에 사용하지 않는? – SRobertJames

+0

사실, 제 제안은 Spark에서 몇 가지 속성을 설정하려는 저의 투쟁을 토대로 한 것입니다. JetS3t의 경우 아마도'setRequesterPaysBucket()'을 사용할 수 있습니다 : https://bitbucket.org/jmurty/jets3t/src/e9ca56dabe58b2a8ae35494b44f12a5f1baa83bd/src/org/jets3t/samples/CodeSamples.java?at=default#cl-902 –