tencent cloud

Cloud Object Storage

동향 및 공지
릴리스 노트
제품 공지
제품 소개
제품 개요
기능 개요
적용 시나리오
제품 장점
기본 개념
리전 및 액세스 도메인
규격 및 제한
제품 요금
과금 개요
과금 방식
과금 항목
프리 티어
과금 예시
청구서 보기 및 다운로드
연체 안내
FAQ
빠른 시작
콘솔 시작하기
COSBrowser 시작하기
사용자 가이드
요청 생성
버킷
객체
데이터 관리
일괄 프로세스
글로벌 가속
모니터링 및 알람
운영 센터
데이터 처리
스마트 툴 박스 사용 가이드
데이터 워크플로
애플리케이션 통합
툴 가이드
툴 개요
환경 설치 및 설정
COSBrowser 툴
COSCLI 툴
COSCMD 툴
COS Migration 툴
FTP Server 툴
Hadoop 툴
COSDistCp 툴
HDFS TO COS 툴
온라인 도구 (Onrain Dogu)
자가 진단 도구
실습 튜토리얼
개요
액세스 제어 및 권한 관리
성능 최적화
AWS S3 SDK를 사용하여 COS에 액세스하기
데이터 재해 복구 백업
도메인 관리 사례
이미지 처리 사례
COS 오디오/비디오 플레이어 사례
데이터 다이렉트 업로드
데이터 보안
데이터 검증
빅 데이터 사례
COS 비용 최적화 솔루션
3rd party 애플리케이션에서 COS 사용
마이그레이션 가이드
로컬 데이터 COS로 마이그레이션
타사 클라우드 스토리지 데이터를 COS로 마이그레이션
URL이 소스 주소인 데이터를 COS로 마이그레이션
COS 간 데이터 마이그레이션
Hadoop 파일 시스템과 COS 간 데이터 마이그레이션
데이터 레이크 스토리지
클라우드 네이티브 데이터 레이크
메타데이터 가속
데이터 레이크 가속기 GooseFS
데이터 처리
데이터 처리 개요
이미지 처리
미디어 처리
콘텐츠 조정
파일 처리
문서 미리보기
장애 처리
RequestId 가져오기
공용 네트워크로 COS에 파일 업로드 시 속도가 느린 문제
COS 액세스 시 403 에러 코드 반환
리소스 액세스 오류
POST Object 자주 발생하는 오류
보안 및 컴플라이언스
데이터 재해 복구
데이터 보안
액세스 관리
자주 묻는 질문
인기 질문
일반 문제
과금
도메인 규정 준수 문제
버킷 설정 문제
도메인 및 CDN 문제
파일 작업 문제
로그 모니터링 문제
권한 관리
데이터 처리 문제
데이터 보안 문제
사전 서명 URL 관련 문제
SDK FAQ
툴 관련 문제
API 관련 문제
Agreements
Service Level Agreement
개인 정보 보호 정책
데이터 처리 및 보안 계약
연락처
용어집
문서Cloud Object Storage데이터 레이크 스토리지메타데이터 가속모범 사례CDH 클러스터에서 HDFS 프로토콜을 통해 COS에 액세스

CDH 클러스터에서 HDFS 프로토콜을 통해 COS에 액세스

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2025-10-27 17:44:14

소개

CDH(Cloudera's Distribution, including Apache Hadoop)는 업계에서 각광받는 Hadoop의 릴리스 버전입니다. 본 문서는 CDH 환경에서 HDFS 프로토콜을 통해 객체 스토리지(Cloud Object Storage, COS) 버킷에 액세스하는 방법을 소개합니다. 이 기능을 통해 빅 데이터 컴퓨팅과 스토리지를 분리하여 효율적인 저비용 빅 데이터 솔루션을 제공합니다.
주의:
HDFS 프로토콜을 통해 COS 버킷에 액세스하려면 먼저 메타데이터 가속 기능을 활성화해야 합니다.
빅 데이터 컴포넌트에 대한 현재 COS 지원은 다음과 같습니다.
모듈 이름
CHDFS 빅 데이터 모듈 지원 현황
서비스 모듈 재시작 필요 여부
Yarn
지원
NodeManager 재시작
Yarn
지원
NodeManager 재시작
Hive
지원
HiveServer 및 HiveMetastore 재시작
Spark
지원
NodeManager 재시작
Sqoop
지원
NodeManager 재시작
Presto
지원
HiveServer, HiveMetastore, Presto 재시작
Flink
지원
필요 없음
Impala
지원
필요 없음
EMR
지원
필요 없음
자체구축 모듈
향후 지원
없음
HBase
권장하지 않음
없음

버전 종속

본 문서에 종속된 모듈 버전은 다음과 같습니다.
CDH 5.16.1
Hadoop 2.6.0

사용 방법

스토리지 환경 설정

1. CDH 관리 페이지에 로그인합니다.
2. 시스템 메인 페이지에서 설정>서비스 범위>고급을 선택하여 코드 스니펫 고급 설정 페이지로 이동하면 다음 그림과 같이 표시됩니다.


3. Cluster-wide Advanced Configuration Snippet(Safety Valve) for core-site.xml 코드 창에 COS 빅 데이터 서비스 설정을 입력합니다.
<property>
<name>fs.AbstractFileSystem.ofs.impl</name>
<value>com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter</value>
</property>
<property>
<name>fs.ofs.impl</name>
<value>com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter</value>
</property>
<!--로컬 cache의 임시 디렉터리로, 데이터 읽기/쓰기의 경우 메모리 cache가 부족할 때는 로컬 디스크에 쓰기 하고 관련 경로가 없을 때는 자동 생성합니다.-->
<property>
<name>fs.ofs.tmp.cache.dir</name>
<value>/data/emr/hdfs/tmp/chdfs/</value>
</property>
<!--appId-->
<property>
<name>fs.ofs.user.appid</name>
<value>1250000000</value>
</property>
다음은 필수 설정 항목(core-site.xml에 추가 필요)입니다. 기타 설정 항목은 컴퓨팅 클러스터에 COS 버킷 마운트를 참고하십시오.
설정 항목
의미
fs.ofs.user.appid
1250000000
사용자 appid
fs.ofs.tmp.cache.dir
/data/emr/hdfs/tmp/chdfs/
로컬 cache용 임시 디렉터리
fs.ofs.impl
com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter
FileSystem용 chdfs 구현 클래스, com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter로 고정
fs.AbstractFileSystem.ofs.impl
com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter
AbstractFileSystem용 chdfs 구현 클래스, com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter로 고정
4. HDFS 서비스 작업을 진행하기 위해 클라이언트 배포 설정을 클릭하면 core-site.xml 설정이 클러스터 기기에 업데이트됩니다.
5. 최신 클라이언트 설치 패키지를 CDH HDFS 서비스의 jar 패키지 경로에 넣고 실제 값에 따라 교체하십시오. 예시는 다음과 같습니다.
cp chdfs_hadoop_plugin_network-2.0.jar /opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hadoop-hdfs/
주의:
클러스터의 기기마다 동일한 위치에 SDK 패키지를 설치해야 합니다.

데이터 마이그레이션

Hadoop Distcp 툴을 사용해 CDH HDFS 데이터를 COS 버킷에 마이그레이션합니다. 자세한 내용은 Hadoop 파일 시스템과 COS 간의 데이터 마이그레이션을 참고하십시오.

빅 데이터 세트로 CHDFS 사용

MapReduce

작업 단계
1. 데이터 마이그레이션 섹션에 따라 HDFS 관련 설정을 완료하고, COS의 클라이언트 설치 패키지를 HDFS의 해당 디렉터리에 넣습니다.
2. CDH 시스템 메인 페이지에서 YARN을 찾아 NodeManager 서비스를 재시작합니다. TeraGen 명령어는 재시작할 필요가 없으나 TeraSort는 비즈니스 내부 로직으로 인해 NodeManger를 재시작해야 하므로, NodeManager 서비스를 일괄 재시작할 것을 권장합니다.
예시
Hadoop 표준 테스트의 TeraGen 및 TeraSort입니다.
hadoop jar ./hadoop-mapreduce-examples-2.7.3.jar teragen -Dmapred.map.tasks=4 1099 ofs://examplebucket-1250000000/teragen_5/

hadoop jar ./hadoop-mapreduce-examples-2.7.3.jar terasort -Dmapred.map.tasks=4 ofs://examplebucket-1250000000/teragen_5/ ofs://examplebucket-1250000000/result14
설명:
ofs:// schema 뒷부분을 사용자 CHDFS의 마운트 포인트 경로로 변경하십시오.

Hive

MR 엔진
작업 단계
1. 데이터 마이그레이션 섹션에 따라 HDFS 관련 설정을 완료하고, COS의 클라이언트 설치 패키지를 HDFS의 해당 디렉터리에 넣습니다.
2. CDH 메인 페이지에서 HIVE 서비스를 찾아 Hiveserver2와 HiveMetastore 역할을 재시작합니다.
예시
사용자의 실제 작업 쿼리입니다. Hive 명령 라인을 실행하여 Location을 생성하고, 이를 CHDFS의 파티션 테이블로 사용하는 경우입니다.
CREATE TABLE `report.report_o2o_pid_credit_detail_grant_daily`(
`cal_dt` string,
`change_time` string,
`merchant_id` bigint,
`store_id` bigint,
`store_name` string,
`wid` string,
`member_id` bigint,
`meber_card` string,
`nickname` string,
`name` string,
`gender` string,
`birthday` string,
`city` string,
`mobile` string,
`credit_grant` bigint,
`change_reason` string,
`available_point` bigint,
`date_time` string,
`channel_type` bigint,
`point_flow_id` bigint)
PARTITIONED BY (
`topicdate` string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
'ofs://examplebucket-1250000000/user/hive/warehouse/report.db/report_o2o_pid_credit_detail_grant_daily'
TBLPROPERTIES (
'last_modified_by'='work',
'last_modified_time'='1589310646',
'transient_lastDdlTime'='1589310646')
SQL 쿼리 실행:
select count(1) from report.report_o2o_pid_credit_detail_grant_daily;
모니터링 결과는 다음과 같습니다.



Tez 엔진

Tez 엔진은 COS의 클라이언트 설치 패키지를 Tez의 압축 패키지 내로 가져와야 합니다. 다음은 apache-tez.0.8.5를 예시로 한 설명입니다.
작업 단계
1. CDH 클러스터에 설치한 tez 패키지를 찾은 후 압축을 해제합니다. /usr/local/service/tez/tez-0.8.5.tar.gz를 예로 들 수 있습니다.
2. 압축 해제된 디렉터리에 COS 클라이언트 설치 패키지를 넣고 다시 압축하여 압축된 패키지를 출력합니다.
3. 새로 생성한 압축 패키지를 tez.lib.uris에서 지정한 경로(경로가 이미 있는 경우 변경 가능)에 업로드합니다.
4. CDH 메인 페이지에서 HIVE를 찾아 hiveserver와 hivemetastore를 재시작합니다.

Spark

작업 단계
1. 데이터 마이그레이션 섹션에 따라 HDFS 관련 설정을 완료하고, COS의 클라이언트 설치 패키지를 HDFS의 해당 디렉터리에 넣습니다.
2. NodeManager 서비스를 재시작합니다.
예시
Spark example word count 테스트를 진행합니다.
spark-submit --class org.apache.spark.examples.JavaWordCount --executor-memory 4g --executor-cores 4 ./spark-examples-1.6.0-cdh5.16.1-hadoop2.6.0-cdh5.16.1.jar ofs://examplebucket-1250000000/wordcount
실행 결과는 다음과 같습니다.



Sqoop

작업 단계
1. 데이터 마이그레이션 섹션에 따라 HDFS 관련 설정을 완료하고, COS의 클라이언트 설치 패키지를 HDFS의 해당 디렉터리에 넣습니다.
2. COS의 클라이언트 설치 패키지를 sqoop 디렉터리에 넣어야 합니다(예시: /opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/sqoop/).
3. NodeManager 서비스를 재시작합니다.
예시
MYSQL 테이블을 COS에 내보냅니다. 관계형 데이터베이스 및 HDFS의 가져오기/내보내기 문서를 참고하여 테스트를 진행하십시오.
sqoop import --connect "jdbc:mysql://IP:PORT/mysql" --table sqoop_test --username root --password 123 --target-dir ofs://examplebucket-1250000000/sqoop_test
실행 결과는 다음과 같습니다.



Presto

작업 단계
1. 데이터 마이그레이션 섹션에 따라 HDFS 관련 설정을 완료하고, COS의 클라이언트 설치 패키지를 HDFS의 해당 디렉터리에 넣습니다.
2. COS의 클라이언트 설치 패키지를 presto 디렉터리에 넣어야 합니다(예시: /usr/local/services/cos_presto/plugin/hive-hadoop2).
3. presto는 hadoop common의 gson-2...jar를 로딩할 수 없으므로 gson-2...jar 또한 presto 디렉터리에 넣어야 합니다(예시: /usr/local/services/cos_presto/plugin/hive-hadoop2, COS만 gson에 종속됨).
4. HiveServer, HiveMetaStore, Presto 서비스를 재시작합니다.
예시
HIVE에서 Location이 COS인 테이블 쿼리 생성:
select * from chdfs_test_table where bucket is not null limit 1;
설명:
chdfs_test_table은 location이 ofs scheme인 테이블입니다.
쿼리 결과는 다음과 같습니다.



도움말 및 지원

문제 해결에 도움이 되었나요?

피드백