티스토리 뷰
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
'Big Data > Hadoop' 카테고리의 다른 글
[하둡 완벽 가이드] Chapter 03. 하둡 분산 파일시스템(4) (1) | 2022.09.10 |
---|---|
[하둡 완벽 가이드] Chapter 03. 하둡 분산 파일시스템(2) (0) | 2022.09.09 |
하둡 실행하기 (의사 분산 모드) (0) | 2022.09.09 |
[하둡 완벽 가이드] Chapter 03. 하둡 분산 파일시스템(1) (0) | 2022.09.07 |
하둡 설치하기 (0) | 2022.08.26 |