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

[hadoop] 하둡에서 S3를 파일시스템으로 이용하기 위한 방법

by hs_seo 2019. 11. 6.

하둡은 데이터를 저장할 때 HadoopFileSystem API를 이용하여 파일 시스템에 데이터를 저장합니다. 이 API를 이용하여 HDFS나 S3에 데이터를 저장할 수 있습니다.

HDFS

  • 분산 파일 시스템
  • 대량의 데이터 처리에 유리
  • 큰 사이즈의 파일에 최적화
  • 네임노드가 메타데이터를 관리하고, 데이타노드가 데이터를 블록단위로 저장
  • 하둡 3.x에서는 이레이져 코딩, 라우터 기반 연합, ozone 도입
  • Hadoop FileSystem API, 하둡 fs 커맨드, 웹 UI로 접근

S3

  • AWS에서 제공하는 객체 저장 시스템
  • 확장성, 고가용성, 내구성, 보안, 성능 등의 특징을 가짐
  • 저장용량과 요청 횟수에 따라 과금
  • 키 기반으로 데이터가 저장됨. 디렉토리 시스템 아님. 파일 시스템 아님
  • REST API, AWS CLI, AWS SDK, S3 콘솔로 접근

S3를 이용하기 위한 파일 시스템 API

S3에 접근하기 위한 파일 시스템은 다음과 같습니다. 이중에서 EMRFS는 AWS의 EMR에서만 사용가능합니다.

S3 접근 설정

하둡에서 AWS의 S3에 접근하기 위해서는 core-site.xml 에 다음과 같이 설정합니다. 다음은 s3 스키마에 접근하기 위한 설정이며 s3n, s3bfs로 접근하기 위해서는 주간의 스키마명을 바뀌주면 됩니다. (ex: fs.f3n.impl)

  <!-- s3 타입 설정 -->
  <property>
    <name>fs.s3.impl</name>
    <value>com.amazon.ws.emr.hadoop.fs.S3FileSystem</value>
  </property>

  <property> 
    <name>fs.s3.awsAccessKeyId</name> 
    <value>액세스키</value> 
  </property>

  <property>
    <name>fs.s3.awsSecretAccessKey</name>
    <value>시크릿키</value>
  </property>
  
  
  <!-- s3a 타입 설정 -->
  <property> 
    <name>fs.s3a.access.key</name> 
    <value>액세스키</value> 
  </property>

  <property>
    <name>fs.s3a.secret.key</name>
    <value>시크릿키</value>
  </property>

EMR에서의 설정

EMR에서는 EMRFS 를 이용합니다.

  <property>
    <name>fs.s3.impl</name>
    <value>com.amazon.ws.emr.hadoop.fs.EmrFileSystem</value>
  </property>

 

 

참고

반응형