AWS 환경에서는 하둡으로 S3의 데이터를 직접 조회할 수 있습니다. AWS가 아닌 환경, 직접 구성한 클러스터 에서는 S3 데이터를 조회하기 위해서 라이브러리를 추가해야 합니다. 작업을 진행하기 전에 AWS S3 버켓의 접근 가능 여부를 먼저 확인해야 합니다.
라이브러리 설정
aws 연결을 위한 라이브러리는 기본적으로 하둡 배포판에 제공됩니다.
하둡을 설치한 디렉토리의 아라의 위치를 확인하면 aws 관련 라이브러리가 존재하는 것을 알 수 있습니다.
이 라이브러리 위치를 hadoop-env.sh 의 HADOOP_CLASSPATH 에 추가하거나, 명령어 실행 시점에 추가 해주 면 됩니다.
# 하둡 라이브러리 확인
$ ls share/hadoop/tools/lib/hadoop-aws-2.10.0.jar
share/hadoop/tools/lib/hadoop-aws-2.10.0.jar
# 클래스패스 설정
export HADOOP_CLASSPATH="${HADOOP_CLASSPATH}:/usr/hadoop/share/hadoop/tools/lib/*"
해당 위치에 라이브러리가 없으면 hadoop-aws 라이브러리를 받아서 hadoop/share/hadoop/hdfs/ 에 복사합니다.
mvnrepository.com/artifact/org.apache.hadoop/hadoop-aws/2.10.0
설정 추가
그리고 core-site.xml 파일에 설정을 추가합니다.
설정은 ls 명령을 이용할 때 추가해도 됩니다.
s3a 스킴으로 접근하는 방법
s3a 스킴으로 접근할 때는 s3a 용 옵션을 이용합니다.
다음 공식 문서를 참고하셔서 옵션을 확인할 수 있습니다.
https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html
s3a like 구현에서 처리
aws 가 아닌 3rd 파티에서 구현한 s3a와 연결할 때 버켓과 연결후 파일 정보를 가져올 때 연결이 안되는 경우에 다음 설정을 추가하면 연결 될 수 있습니다.
hadoop fs \
-Dfs.s3a.path.style.access=true \
-ls \
s3a://your-bucket/file
'빅데이터 > hadoop' 카테고리의 다른 글
[hadoop] distcp 중 java.io.IOException: Error writing request body to server 오류 해결 방법 (0) | 2021.03.04 |
---|---|
[hadoop] 보안하둡에서 일반하둡으로의 데이터 조회(ls command) (0) | 2021.01.31 |
[hadoop] 보안하둡, 일반하둡간 DistCp 처리 (0) | 2021.01.10 |
[HDFS] Stale Stroage가 발생했을 때 처리 방법 (0) | 2020.12.28 |
[hadoop] hadoop fs 명령에서 로그를 출력하는 방법 (0) | 2020.11.04 |