본문 바로가기
빅데이터/hadoop

[hadoop] AWS 환경 밖에서 hadoop으로 s3의 데이터를 조회하는 방법

by hs_seo 2021. 1. 17.

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

 

Maven Repository: org.apache.hadoop » hadoop-aws » 2.10.0

 

mvnrepository.com

설정 추가

그리고 core-site.xml 파일에 설정을 추가합니다.

 

 

설정은 ls 명령을 이용할 때 추가해도 됩니다.

 

 

s3a 스킴으로 접근하는 방법

s3a 스킴으로 접근할 때는 s3a 용 옵션을 이용합니다.

 

다음 공식 문서를 참고하셔서 옵션을 확인할 수 있습니다.

 

https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html

 

Apache Hadoop Amazon Web Services support – Hadoop-AWS module: Integration with Amazon Web Services

<!--- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or a

hadoop.apache.org

s3a like 구현에서 처리

aws 가 아닌 3rd 파티에서 구현한 s3a와 연결할 때 버켓과 연결후 파일 정보를 가져올 때 연결이 안되는 경우에 다음 설정을 추가하면 연결 될 수 있습니다.

 

hadoop fs \
-Dfs.s3a.path.style.access=true \
-ls \
s3a://your-bucket/file
반응형