Hadoop HDFS over HTTP - 문서 세트

Hadoop HDFS over HTTP - 문서 세트

HttpFS는 모든 HDFS 파일시스템 연산(읽기와 쓰기)을 지원하는 REST HTTP 게이트웨이를 제공하는 서버예요. 그리고 webhdfs REST HTTP API와 상호운용(interoperable)이 가능해요.

출처: 문서

본문

HttpFS는 다음과 같은 용도로 사용할 수 있어요.

  • 서로 다른 Hadoop 버전을 실행하는 클러스터 간 데이터 전송 (Hadoop DistCP를 사용하는 경우처럼 RPC 버전 호환성 문제를 극복)
  • 방화벽 뒤에 있는 클러스터의 HDFS 데이터 접근 (HttpFS 서버가 게이트웨이 역할을 하며 방화벽을 넘어 클러스터로 진입할 수 있는 유일한 시스템)
  • Java가 아닌 다른 언어에서 HTTP 유틸리티(예: curl, wget)와 HTTP 라이브러리(예: Perl)를 이용한 HDFS 데이터 접근

webhdfs 클라이언트 FileSystem 구현을 사용하면 Hadoop 파일시스템 명령줄 도구(hadoop fs)와 Java 애플리케이션의 Hadoop FileSystem Java API를 통해 HttpFS에 접근할 수 있어요.

HttpFS에는 Hadoop 의사(pseudo) 인증, HTTP SPNEGO Kerberos, 그리고 다른 플러그형 인증 메커니즘을 지원하는 내장 보안이 있고, Hadoop 프록시 사용자(proxy user) 지원도 제공해요.

HttpFS는 어떻게 동작하나요? (How Does HttpFS Works?)

HttpFS는 Hadoop NameNode와는 별개의 서비스예요. HttpFS 자체는 Java Jetty 웹 애플리케이션입니다. HttpFS HTTP 웹-서비스 API 호출은 HDFS 파일시스템 연산에 매핑되는 HTTP REST 호출이에요.

예를 들어 curl Unix 명령을 사용하면:

$ curl 'http://httpfs-host:14000/webhdfs/v1/user/foo/README.txt?op=OPEN&user.name=foo'

HDFS /user/foo/README.txt 파일의 내용을 반환해요.

$ curl 'http://httpfs-host:14000/webhdfs/v1/user/foo?op=LISTSTATUS&user.name=foo'

HDFS /user/foo 디렉터리의 내용을 JSON 형식으로 반환해요.

$ curl 'http://httpfs-host:14000/webhdfs/v1/user/foo?op=GETTRASHROOT&user.name=foo'

/가 암호화 존(encrypted zone)이 아니라면 /user/foo/.Trash 경로를 반환하고, 암호화 존이라면 /.Trash/foo 경로를 반환해요. 암호화 존의 trash 경로에 대한 자세한 내용은 관련 문서를 참고하세요.

$ curl -X PUT 'http://httpfs-host:14000/webhdfs/v1/user/foo/bar?op=MKDIRS&user.name=foo'

HDFS /user/foo/bar 디렉터리를 생성해요.

사용자·개발자 문서 (User and Developer Documentation)

  • HttpFS Server Setup
  • Using HTTP Tools

더 알아보기 (Learn more)