NAVER Cloud

hadoop hdfs 데이터를 오브젝트스토리지로 마이그레이션 하기

한크크 2021. 2. 3. 18:42

on-premise hadoop 을 사용하다가 클라우드서비스를 이용하려고 할 때 hdfs 데이터 마이그레이션이 필요하다. 

클라우드 서비스에서 제공하는 hadoop을 이용할 경우 데이터 저장소로 오브젝트스토리지를 많이들 사용하기 때문에 hdfs 데이터를 오브젝트 스토리지로 마이그레이션하는 방법을 테스트 해보았다. 

 

1. hadoop hdfs로 마운트 된  /user/log 하위에 test, train_triplets.txt 라는 파일을 네이버클라우드 오브젝트스토리지의 user-data/hdfs 하위 버킷으로 마이그레이션하려고 한다. (test2 파일은 테스트 이후에 생성한 것이므로 무시)

2. distcp 수행

네이버클라우드의 오브젝트스토리지는 AWS S3 API 와 호환되기 때문에 S3 에서 사용할 수 있는 3rd party 도구들을 동일하게 사용할 수 있다.  ( 참고 : https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.1.5/bk_cloud-data-access/content/s3-third-party.html)

sudo hadoop distcp -D  fs.s3a.access.key={$Ncloud_Accesskey}\
-D fs.s3a.secret.key={$Ncloud_Secretkey}\
-D fs.s3a.bucket.endpoint=https://kr.object.ncloudstorage.com \
hdfs://{$namenode_host:9000}:{$port}/{$path}/ s3a://{$Ncloud_ObjectStorage_Bucket}

실제 커맨드 수행 예제를 보면 다음과 같다. 

sudo hadoop distcp -D  fs.s3a.access.key=42On5jYuTuDSzyGkxxIB\
-D fs.s3a.secret.key=fywnxV1oMuvfSgQWzRoSUY4lxxqNGmdI8ZWJoOml\
-D fs.s3a.bucket.endpoint=https://kr.object.ncloudstorage.com
hdfs://m-001-hdptest-66v-hd:8020/user/log/ s3a://user-bucket/hdfs/

네이버클라우드에서 사용하는 Access/Secret Key는 아래 링크 참고

https://www.ncloud.com/mypage/manage/authkey

 

3. 오브젝트스토리지에 data migration이 잘되었는지 확인 

user-data/hdfs 버킷에 test, train_triplets.txt 파일이 모두 잘 있는지 확인한다.

반응형