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데이터 레이크 스토리지메타데이터 가속데이터 마이그레이션 및 동기화HDFS 데이터를 메타데이터 가속 기능이 활성화된 버킷으로 마이그레이션하기

HDFS 데이터를 메타데이터 가속 기능이 활성화된 버킷으로 마이그레이션하기

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2024-12-27 10:28:06

소개

COS(Cloud Object Storage)는 메타데이터 가속화 기능을 제공하여 고성능 파일 시스템 기능을 제공합니다. 메타데이터 가속화는 기본 계층에서 Cloud HDFS(CHDFS)의 강력한 메타데이터 관리 기능을 활용하여 COS 액세스에 파일 시스템 시맨틱을 사용할 수 있도록 합니다. 설계된 시스템 메트릭은 최대 100GB/s의 대역폭, 10만개 이상의 QPS(초당 쿼리) 및 ms의 대기 시간에 도달할 수 있습니다. 메타데이터 가속이 활성화된 버킷은 빅 데이터, 고성능 컴퓨팅, 기계 학습 및 AI와 같은 시나리오에서 널리 사용될 수 있습니다. 메타데이터 가속에 대한 자세한 내용은 메타데이터 가속 개요를 참고하십시오.
COS는 메타데이터 가속 서비스를 통해 Hadoop 시맨틱을 제공합니다. 따라서 Hadoop Distcp 툴을 사용하여 COS와 다른 Hadoop 파일 시스템 간의 양방향 데이터 마이그레이션을 쉽게 구현할 수 있습니다. 이 문서에서는 Hadoop Distcp를 사용하여 로컬 HDFS의 파일을 COS의 메타데이터 가속 버킷으로 마이그레이션하는 방법을 설명합니다.

마이그레이션 환경 준비

마이그레이션 툴

1. 아래 나열된 툴의 jar 패키지를 다운로드하고 /data01/jars 와 같이 클러스터에서 마이그레이션 작업을 실행하는 노드의 로컬 디렉터리에 배치합니다.
EMR 환경
설치 설명
jar 파일 이름
설명
다운로드 주소
cos-distcp-1.12-3.1.0.jar
COSN에 데이터를 복사할 COSDistCp 패키지
COSDistCp 툴을 참고하십시오
chdfs_hadoop_plugin_network-2.8.jar
OFS 플러그인
자체 구축 Hadoop/CDH 등 환경
소프트웨어 종속성
Hadoop 2.6.0 이상 및 Hadoop-COS 8.1.5 이상이 필요합니다. cos_api-bundle 플러그인 버전은 COSN github releases 에 설명된 대로 Hadoop-COS 버전과 일치해야 합니다.
설치 설명
Hadoop 환경에 다음 플러그인을 설치합니다.
jar 파일 이름
설명
다운로드 주소
cos-distcp-1.12-3.1.0.jar
COSN에 데이터를 복사할 COSDistCp 패키지
COSDistCp 툴을 참고하십시오
chdfs_hadoop_plugin_network-2.8.jar
OFS 플러그인
Hadoop-COS
Version >= 8.1.5
Hadoop-COS 툴을 참고하십시오
cos_api-bundle
버전은 Hadoop-COS 버전과 일치해야 합니다
주의:
Hadoop-cos는 버전 8.1.5부터 cosn://bucketname-appid/ 형식의 메타데이터 가속 버킷에 대한 액세스 지원;
메타데이터 가속화 기능은 버킷 생성 중에만 활성화할 수 있으며 일단 활성화되면 비활성화할 수 없습니다. 따라서 비즈니스 조건에 따라 활성화할지 여부를 신중하게 고려하십시오. 또한 레거시 Hadoop-COS 패키지는 메타데이터 가속 버킷에 액세스할 수 없습니다.
2. HDFS 프로토콜을 사용하여 메타데이터 가속이 활성화된 버킷에 액세스의 ‘버킷 생성 및 HDFS 프로토콜 구성’의 지침에 따라 메타데이터 가속 버킷을 생성하고 이에 대한 HDFS 프로토콜을 구성합니다.
3. 마이그레이션 클러스터의 core-site.xml을 수정하고 구성을 모든 노드에 배포합니다. 데이터만 마이그레이션해야 하는 경우 빅 데이터 컴포넌트를 다시 시작할 필요가 없습니다.
key
value
구성 파일
설명
fs.cosn.trsf.fs.ofs.impl
com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter
core-site.xml
COSN 구현 클래스, 필수 입력
fs.cosn.trsf.fs.AbstractFileSystem.ofs.impl
com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter
core-site.xml
COSN 구현 클래스, 필수 입력
fs.cosn.trsf.fs.ofs.tmp.cache.dir
/data/emr/hdfs/tmp/ 형식
core-site.xml
임시 디렉터리로 필수 입력 항목입니다. 모든 MRS 노드에 생성됩니다. 충분한 공간과 권한이 있는지 확인해야 합니다.
fs.cosn.trsf.fs.ofs.user.appid
COS bucket의 appid
core-site.xml
필수
fs.cosn.trsf.fs.ofs.ranger.enable.flag
false
core-site.xml
필수 입력 항목입니다. 값이 false인지 확인해야 합니다.
fs.cosn.trsf.fs.ofs.bucket.region
bucket region
core-site.xml
필수 입력 항목입니다. 유효한 값: eu-frankfurt(프랑크푸르트), ap-chengdu(청두) 및 ap-singapore(싱가포르)
4. HDFS 프로토콜을 사용하여 메타데이터 가속이 활성화된 버킷에 액세스의 ‘COS에 액세스하도록 컴퓨팅 클러스터 구성’에 설명된 대로 사설망을 통해 메타데이터 가속 버킷에 액세스하여 마이그레이션을 확인할 수 있습니다. 마이그레이션 클러스터 제출자를 사용하여 COS에 성공적으로 액세스할 수 있는지 확인하십시오.

기존 데이터 마이그레이션

1. 마이그레이션할 디렉터리 결정

일반적으로 HDFS 스토리지 데이터가 먼저 마이그레이션됩니다. 원본 HDFS 클러스터에서 마이그레이션할 디렉터리가 선택되며 대상 경로는 원본 경로와 동일해야 합니다.
HDFS 디렉터리 hdfs:///data/user/targetcosn://{bucketname-appid}/data/user/target으로 마이그레이션해야 한다고 가정합니다.
원본 디렉터리의 파일이 마이그레이션 중에 변경되지 않도록 하기 위해 HDFS의 스냅샷 기능을 사용하여 원본 디렉터리의 스냅샷(현재 날짜로 명명됨)을 생성합니다.
hdfs dfsadmin -disallowSnapshot hdfs:///data/user/
hdfs dfsadmin -allowSnapshot hdfs:///data/user/target
hdfs dfs -deleteSnapshot hdfs:///data/user/target {현재 날짜}
hdfs dfs -createSnapshot hdfs:///data/user/target {현재 날짜}
성공 예시 참고:


스냅샷을 생성하지 않으려면 원본 디렉터리에서 target 파일을 직접 마이그레이션할 수 있습니다.

2. 마이그레이션에 COSDistCp 사용

COSDistCp 작업을 시작하여 원본 HDFS에서 대상 COS 버킷으로 파일을 복사합니다.
COSDistCp 작업은 본질적으로 MapReduce 작업입니다. 인쇄된 MapReduce 작업 로그에는 MR 작업이 성공적으로 실행되었는지 여부가 표시됩니다. 작업이 실패하면 YARN 페이지를 보고 문제 해결을 위해 로그 또는 예외 정보를 COS 팀에 제출할 수 있습니다. COSDistCp를 사용하여 다음 단계에서 마이그레이션 작업을 실행할 수 있습니다. (1) 임시 디렉터리 생성 (2) COSDistCp 작업 실행 (3) 실패한 파일을 다시 마이그레이션

(1) 임시 디렉터리 생성

hadoop fs -libjars /data01/jars/chdfs_hadoop_plugin_network-2.8.jar -mkdir cosn://bucket-appid/distcp-tmp

(2) COSDistCp 작업 실행

nohup hadoop jar /data01/jars/cos-distcp-1.10-2.8.5.jar -libjars /data01/jars/chdfs_hadoop_plugin_network-2.8.jar --src=hdfs:///data/user/target/.snapshot/{현재 날짜} --dest=cosn://{bucket-appid}/data/user/target --temp=cosn://bucket-appid/distcp-tmp/ --preserveStatus=ugpt --skipMode=length-checksum --checkMode=length-checksum --cosChecksumType=CRC32C --taskNumber 6 --workerNumber 32 --bandWidth 200 >> ./distcp.log &
매개변수는 아래에 자세히 설명되어 있습니다. 필요에 따라 해당 값을 조정할 수 있습니다.
--taskNumber=VALUE: 복사 스레드 수. 예: --taskNumber=10.
--workerNumber=VALUE: 복사 스레드 수. COSDistCp는 이 값 세트를 기반으로 각 복사 프로세스에 대해 복사 스레드 풀을 생성합니다. 예: --workerNumber=4.
--bandWidth: 마이그레이션된 각 파일 읽기 최대 대역폭(MB/s). 기본값: -1, 읽기 대역폭에 제한이 없음을 나타냅니다. 예:--bandWidth=10.
--cosChecksumType=CRC32C: 기본적으로 CRC32C가 사용되지만 HDFS 클러스터는 COMPOSITE_CRC32를 확인할 수 있어야 합니다. Hadoop 버전은 3.1.1+이어야 합니다. 그렇지 않으면 이 매개변수를 --cosChecksumType=CRC64로 변경해야 합니다.
주의:
COSDistCp 마이그레이션의 총 대역폭 제한을 계산하는 공식은 taskNumber x workerNumber x bandWidth입니다. workerNumber를 1로 설정하고 taskNumber 매개변수를 사용하여 동시 마이그레이션 수를 제어하고 bandWidth 매개변수를 사용하여 단일 동시 마이그레이션의 대역폭을 제어할 수 있습니다.
복사 작업이 끝나면 작업 로그는 복사본에 대한 통계를 출력합니다. 카운터는 다음과 같습니다. 여기서 FILES_FAILED는 실패한 파일의 수를 나타냅니다. FILES_FAILED 카운터가 없으면 모든 파일이 성공적으로 마이그레이션된 것입니다.
CosDistCp Counters
BYTES_EXPECTED=10198247
BYTES_SKIPPED=10196880
FILES_COPIED=1
FILES_EXPECTED=7
FILES_FAILED=1
FILES_SKIPPED=5

출력 결과의 구체적인 통계 항목은 아래와 같습니다.
통계 항목
설명
BYTES_EXPECTED
원본 디렉터리 통계에 따라 복사할 파일의 총 크기, 단위: 바이트
FILES_EXPECTED
원본 디렉터리 통계에 따라 복사할 파일 수. 디렉터리 파일 포함
BYTES_SKIPPED
스킵할 수 있는 파일의 총 크기(바이트)(동일한 길이 또는 체크섬 값)
FILES_SKIPPED
스킵할 수 있는 원본 파일 수(동일한 길이 또는 체크섬 값)
FILES_COPIED
복사 성공한 원본 파일 수
FILES_FAILED
복사 실패한 원본 파일 수
FOLDERS_COPIED
복사 완료한 디렉터리 수
FOLDERS_SKIPPED
스킵한 디렉터리 수

(3) 실패한 파일을 다시 마이그레이션

COSDistCp는 비효율적인 파일 마이그레이션의 대부분의 문제를 해결할 뿐만 아니라 --delete 매개변수를 사용하여 HDFS와 COS 데이터 간의 완전한 일관성을 보장할 수 있습니다.
--delete 매개변수를 사용할 때 --deleteOutput=/xxx(사용자 지정) 매개변수를 추가해야 하지만 --diffMode 매개변수는 추가하지 않아야 합니다.
nohup hadoop jar /data01/jars/cos-distcp-1.10-2.8.5.jar -libjars /data01/jars/chdfs_hadoop_plugin_network-2.8.jar --src=--src=hdfs:///data/user/target/.snapshot/{현재 날짜} --dest=cosn://{bucket-appid}/data/user/target --temp=cosn://bucket-appid/distcp-tmp/ --preserveStatus=ugpt --skipMode=length-checksum --checkMode=length-checksum --cosChecksumType=CRC32C --taskNumber 6 --workerNumber 32 --bandWidth 200 --delete --deleteOutput=/dele-xx >> ./distcp.log &
실행 후 HDFS와 COS 사이의 다른 데이터는 trash 디렉터리로 이동되고 이동된 파일 목록은 /xxx/failed 디렉터리에 생성됩니다. hadoop fs -rm URL 또는 hadoop fs -rmr URL을 실행하여 trash 디렉터리의 데이터를 삭제할 수 있습니다.

증분 마이그레이션

나중에 증분 데이터를 마이그레이션해야 하는 경우 모든 데이터가 마이그레이션될 때까지 전체 마이그레이션 단계를 반복하기만 하면 됩니다.

도움말 및 지원

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

피드백