티스토리 뷰

728x90

 

하둡 파일시스템

하둡은 파일시스템의 추상화 개념을 가지고 있고, HDFS는 그 구현체 중 하나이다. FTP, S3, Azure 등 여러 구현체가 존재한다. 위에서 살펴본 명령어는 모든 파일시스템에서 잘 동작한다. 하지만 대용량 데이터를 처리할 때는 HDFS와 같이 데이터 지역성 최적화가 가능한 분산 파일시스템을 선택하는 것이 좋다.

 

인터페이스

하둡은 파일시스템의 추상화 개념을 가지고 있고, 다음은 그 구현체의 목록이다. 맵리듀스 프로그램은 어떠한 파일시스템도 쉽게 실행할 수 있지만 대용량 데이터를 처리할 때는 HDFS처럼 데이터 지역성 최적화가 가능한 분산 파일시스템을 선택하는 것이 좋다. 파일시스템의 인스턴스에 접근할 때는 주로 URI 스킴을 사용한다. 

파일시스템 URI 스킴 자바 구현체 (org.apache.hadoop.) 설명
Local file fs.LocalFileSystem 클라이언트 측 체크섬을 사용하는 로컬 디스크를 위한 파일시스템
HDFS hdfs hdfs.DistributedFileSystem 맵리듀스와 효율적으로 연동하기 위한 파일시스템
WebHDFS webhdfs hdfs.web.WebHdfsFileSystem HTTP를 통해 HDFS에 접근할 수 있는 파일시스템
SecureWebHDFS swebhdfs hdfs.web.SWebHdfsFileSystem WebHDFS의 HTTPS 버전
HAR har fs.HarFileSystem 아카이브 파일을 위한 파일시스템
View viewfs viewfs.ViewFileSystem 다른 하둡 파일시스템을 위한 클라리언트 측 마운트 테이블
FTP ftp fs.ftp.FTPFileSystem FTP 서버를 지원하는 파일시스템
S3 s3a fs.s3a.S3AFileSystem 아마존 S3를 지원하는 파일시스템
Azure wasb fs.azure.NativeAzureFileSystem 마이크로소프트의 Azure를 지원하는 파일시스템
Swift swift fs.swift.snative.SwiftNativeFileSystem 오픈스택 Swift르르 지원하는 파일시스템

 

자바 인터페이스

FileSystem 클래스는 데이터를 읽고 쓰는 것 외에도 디렉터리, 파일시스템 질의, 파일 목록 조회, 파일 패턴, PathFilter, 데이터 삭제를 위한 다양한 메소드를 지원한다. 각 메소드에 대한 자세한 내용은 하둡 문서에 설명되어 있다.

예제 코드 실행

# 다운로드한 예제 코드 폴더로 이동
$ cd ~/hadoop-book/ch03-hdfs

# 빌드 (maven은 미리 설치)
$ mvn install

# 하둡 디렉터리로 복사 (examples 디렉터리는 미리 생성)
$ cp target/ch03-hdfs-4.0.jar $HADOOP_HOME/examples

# 실행
$ hadoop jar $HADOOP_HOME/examples/ch03.jar URLCat hdfs://localhost/user/$USER/sample.txt

 

728x90
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
공지사항
링크
Total
Today
Yesterday