Cloud Storage 커넥터는 Cloud Storage의 데이터에서 직접 Apache Hadoop 또는 Apache Spark 작업을 실행할 수 있는 오픈소스 Java 라이브러리로, Hadoop 분산 파일 시스템(HDFS)을 선택하는 것보다 많은 이점을 제공합니다.
Cloud Storage 커넥터의 이점
- 직접 데이터 액세스 – Cloud Storage에 데이터를 저장하고 직접 액세스합니다. 데이터를 HDFS로 먼저 전송할 필요가 없습니다.
- HDFS 호환성 –
hdfs://
대신gs://
프리픽스를 사용하여 Cloud Storage의 데이터에 쉽게 액세스할 수 있습니다. - 상호 운용성 – Cloud Storage에 데이터를 저장하면 Spark, Hadoop, Google 서비스 간에 원활한 상호 운용이 가능합니다.
- 데이터 접근성 – HDFS와 달리 Hadoop 클러스터를 종료하면 Cloud Storage의 데이터에 계속 액세스할 수 있습니다.
- 높은 데이터 가용성 – Cloud Storage에 저장된 데이터는 가용성이 높고 성능 저하 없이 글로벌 단위로 복제됩니다.
- 스토리지 관리 오버헤드 없음 - HDFS와 달리 Cloud Storage는 파일 시스템 확인, 파일 시스템 업그레이드, 이전 버전의 파일 시스템으로 롤백 등과 같은 일상적인 유지보수가 필요하지 않습니다.
- 빠른 시작 – HDFS에서는
NameNode
가 안전 모드에서 벗어나야 맵리듀스 작업을 시작할 수 있으며, 이 프로세스는 데이터 규모와 상태에 따라 몇 초에서 몇 분이 소요될 수 있습니다. 그러나 Cloud Storage에서는 작업 노드가 시작되면 바로 작업을 시작할 수 있으므로 시간 경과에 따라 상당한 비용 절감 효과를 볼 수 있습니다.
Dataproc 클러스터 Cloud Storage 커넥터 설정
Cloud Storage 커넥터는 기본적으로 /usr/local/share/google/dataproc/lib/
디렉터리의 모든 Dataproc 클러스터 노드에 설치됩니다.
다음 섹션에서는 Dataproc 클러스터에서 커넥터를 성공적으로 설정하기 위해 취할 수 있는 단계를 설명합니다.
서비스 계정 권한
Dataproc 클러스터를 포함하여 Compute Engine VM 내에서 커넥터를 실행할 때 google.cloud.auth.service.account.enable
속성은 기본적으로 false
로 설정되어 있습니다. 즉, 커넥터에 대한 서비스 계정을 수동으로 구성할 필요가 없습니다. VM 메타데이터 서버에서 서비스 계정 사용자 인증 정보를 가져옵니다.
기본이 아닌 커넥터 버전
Dataproc 클러스터에 설치된 최신 이미지에 사용되는 기본 Cloud Storage 커넥터 버전은 클러스터 이미지 버전 페이지에 나열됩니다(지원되는 Dataproc 버전 참조). 애플리케이션이 클러스터에 배포된 기본이 아닌 커넥터 버전에 따라 달라지는 경우 다음 중 하나를 수행해야 합니다.
- 클러스터에서 실행되는 애플리케이션에서 사용하는 커넥터를 지정된 커넥터 버전으로 업데이트하는
--metadata=GCS_CONNECTOR_VERSION=x.y.z
플래그로 클러스터 만들기, 또는 - 사용 중인 버전의 커넥터 등급 및 커넥터 종속 항목을 애플리케이션 JAR에 포함하고 재배치. 배포된 커넥터 버전과 Dataproc 클러스터에 설치된 기본 커넥터 버전 간의 충돌을 방지하기 위해 재배치가 필요합니다(Maven 종속 항목 재배치 예시 참조).
Dataproc 이외의 클러스터
커넥터를 다운로드합니다.
Hadoop용 Cloud Storage 커넥터를 다운로드하려면 다음 안내를 따르세요.
- Cloud Storage 버킷에 있는 최신 버전(프로덕션에는 사용하지 않는 것이 좋음):
gcs-connector-HADOOP_VERSION-CONNECTOR_VERSION.jar
이름 패턴에서 Hadoop 및 Cloud Storage 커넥터 버전을 대체하여 Cloud Storage 버킷의 특정 버전:- 예:
gs://hadoop-lib/gcs/gcs-connector-hadoop2-2.1.1.jar
- 예:
- Apache Maven 저장소의 특정 버전(이름에
-shaded
서픽스가 있는 음영 처리된 jar 다운로드)
커넥터를 설치합니다.
Cloud Storage 커넥터를 설치, 구성, 테스트하려면 GitHub에서 커넥터 설치를 참조하세요.
커넥터 사용
Cloud Storage에 저장된 데이터에 액세스하는 방법은 다양합니다.
- Spark(또는 PySpark) 또는 Hadoop 애플리케이션에서
gs://
프리픽스 사용 - hadoop 셸:
hadoop fs -ls gs://bucket/dir/file
- Google Cloud 콘솔 Cloud Storage 브라우저
gcloud storage cp
또는gcloud storage rsync
명령어 사용
리소스
자바 버전
Cloud Storage 커넥터는 자바 8이 필요합니다.
Apache Maven 종속 항목 정보
<dependency> <groupId>com.google.cloud.bigdataoss</groupId> <artifactId>gcs-connector</artifactId> <version>insert "hadoopX-X.X.X" connector version number here</version> <scope>provided</scope> </dependency>
또는 음영 처리된 버전의 경우에는 다음과 같습니다.
<dependency> <groupId>com.google.cloud.bigdataoss</groupId> <artifactId>gcs-connector</artifactId> <version>insert "hadoopX-X.X.X" connector version number here</version> <scope>provided</scope> <classifier>shaded</classifier> </dependency>
자세한 내용은 Cloud Storage 커넥터 출시 노트 및 Javadoc 참조 자료를 참조하세요.
다음 단계
- Cloud Storage 자세히 알아보기