Spark AWS S3 접근시 400 에러 처리 방법
- aws api는 API Signagure 로 인해 버전이 존재한다.
- hadoop-aws에서의 S3 API를 V2 버전을 사용하는데 Seoul 리전은 V4 버전만 지원하기 때문에 생기는 문제점
설정
sc.sparkContext().hadoopConfiguration().set('fs.s3a.impl', 'org.apache.hadoop.fs.s3a.S3AFileSystem')
sc.sparkContext().hadoopConfiguration().set('com.amazonaws.services.s3.enableV4', 'true')
sc.sparkContext().hadoopConfiguration().set('fs.s3a.access.key', 'YOUR_AWS_ACCESS_KEY_ID'))
sc.sparkContext().hadoopConfiguration().set('fs.s3a.secret.key', 'YOUR_AWS_SECRET_ACCESS_KEY')
sc.sparkContext().hadoopConfiguration().set('fs.s3a.endpoint', 's3.(YOUR_SERVICE_S3_BUCKET_REGION).amazonaws.com')
- endpoint는 https://docs.aws.amazon.com/ko_kr/general/latest/gr/rande.html 에서 확인을 할수가 있다.
'빅데이터 처리 > Spark' 카테고리의 다른 글
Spark SQL join, group by and functions (0) | 2019.01.08 |
---|---|
Spark 간단하게 하나의 파일로 Write하는 법 (1) | 2019.01.07 |
Spark SQL, DataFrames, Datasets (0) | 2019.01.05 |
Spark Word Count Example (0) | 2017.08.07 |
Spark RDD (0) | 2017.07.21 |