---
title: "Classic에서 VPC Cloud Hadoop 버전으로 마이그레이션"
slug: "hadoop-chadoop-3-7"
tags: ["cloud hadoop"]
updated: 2026-05-21T09:01:30Z
published: 2026-05-21T09:03:08Z
canonical: "guide-gov.ncloud-docs.com/hadoop-chadoop-3-7"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://guide-gov.ncloud-docs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Classic에서 VPC Cloud Hadoop 버전으로 마이그레이션

## 사전 작업 <a name="사전작업"></a>

VPC 플랫폼으로 마이그레이션 하기 위해서는 Cloud Hadoop(VPC) 1.3 이상 버전의 클러스터를 먼저 생성하는 작업이 필요합니다.

* Cloud Hadoop 클러스터 생성에 관한 자세한 설명은 [클러스터 생성](/docs/hadoop-chadoop-2-1-vpc#클러스터-생성)을 참고해 주십시오.

## 1. HDFS 데이터 마이그레이션  <a name="1HDFS데이터마이그레이션"></a>

1. HDFS 데이터를 마이그레이션 하기 위해 목적지 클러스터(VPC)의 Object Storage 접근 정보들을 확인해 주십시오. Object Storage 접근 정보를 확인하기 위한 방법은 다음과 같습니다.
* 생성한 Cloud Hadoop 클러스터를 선택한 후, **[Application 별 보기]** 를 클릭해 주십시오.
* **[Application 별 보기]** 비고란의 Ambari Web UI를 클릭해 주십시오.
* Ambari Web UI 페이지에서 클러스터 관리자 계정 ID와 패스워드를 입력한 후 접속해 주십시오.
* 좌측 메뉴 탭에서 **HDFS > [CONFIGS]** 를 클릭한 후, 다음과 같이 s3a를 검색해 주십시오.
   ![chadoop-3-7-02-s3a_ko.png](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/chadoop-3-7-02-s3a_ko.png){height="" width="80%"}
* **Custom core-site**에서 Object Storage 접근 정보를 확인해 주십시오.
  ![chadoop-3-7-01_ko.png](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/chadoop-3-7-01_ko.png){height="" width="80%"}

2. Ambari에서 검색한 s3a 정보로 `distcp` 명령을 수행해 주십시오.
```
[sshuser@m-001-example-1fx8-hd ~]$ hadoop distcp -Dfs.s3a.endpoint=https://kr.object.gov-ncloudstorage.com/ -Dfs.s3a.access.key=s3a_access_key -Dfs.s3a.secret.key=s3a_secret_key -Dfs.s3a.connection.ssl.enabled=false -m 10 -bandwidth 100 hdfs://jki22031601/test_file s3a://jki1/upload_dir/
```

## 2. Hive metastore 마이그레이션 <a name="2Hivemetastore마이그레이션"></a>

* HDFS 버전에 따라 Hive metastore 스키마 정보가 차이가 있으므로 버전 별로 두 가지 방법을 안내합니다.

#### 2-1. VPC Cloud Hadoop 1.3 버전 (HDFS 2.7.3)으로 마이그레이션

1. Cloud Hadoop(VPC) Ambari Web UI 에서 Hive를 STOP 해 주십시오.
2. Classic 클러스터의 마스터 노드로 터널링 접속한 후, `mysqldump`를 수행하여 데이터를 백업해 주십시오.
* Hive에서 사용하는 데이터베이스는 `hive_{unique_number}`로 생성됩니다.
```
[sshuser@m-001-example-1fx8-hd ~]$ mysqldump -u Username -p Password --no-create-db --skip-add-drop-database --skip-add-drop-table  hive_xxx > dump.sql
```

3. Hive 백업 파일을 Object Storage에 업로드해 주십시오.
```
[sshuser@m-001-example-1fx8-hd ~]$ hadoop fs -put dump.sql s3a://object_storage/
```

4. 목적지 클러스터(VPC)의 마스터 노드로 터널링 접속하여 Hive 백업 파일을 다운로드해 주십시오.
```
[sshuser@m-001-example-1fx8-hd ~]$ hadoop fs -get s3a://object_storage/dump.sql ./
```
5. 백업 파일을 목적지 클러스터(VPC)의 MySQL DB로 마이그레이션 해 주십시오.
* VPC 클러스터에 먼저 생성되어있던 Hive 데이터는 4번과 동일하게 `mysqldump` 명령어를 이용하여 백업 후 마이그레이션 작업을 진행해 주십시오.
* 마이그레이션이 실패하더라도 백업 파일을 통해 언제든 롤백이 가능합니다.
```
[sshuser@m-001-example-1fx8-hd ~]$ mysql -u Username -p Password hive_xxx < dump.sql
```
6. VPC Ambari Web UI 에서 Hive를 START 해 주십시오.

#### 2-2. VPC Cloud Hadoop 1.4 이상 버전 (HDFS 3.1.X)으로 마이그레이션

1. VPC Ambari Web UI 에서 Hive를 STOP해 주십시오.
2. Classic 클러스터의 마스터 노드(m-002)로 터널링 접속하여 `mysqldump`를 수행하여 데이터를 백업해 주십시오.
   * Hive에서 사용하는 데이터베이스는 `hive_{unique_number}` 로 생성됩니다.
   ```
   [sshuser@m-002-example-1fx8-hd ~]$ mysqldump -u {Username} -p -h {Master_Node_IP} --no-create-db --skip-add-drop-database --skip-add-drop-table --no-tablespaces hive_{unique_number} > dump.sql
   ```

3. Hive 백업 파일을 Object Storage(VPC)에 업로드해 주십시오.
   ```
   [sshuser@m-002-example-1fx8-hd ~]$ hadoop fs -put dump.sql s3a://{Object_Storage_Bucket_Name}/
   ```

4. 목적지 클러스터(VPC)의 마스터 노드로 터널링 접속하여 Hive 백업 파일을 다운로드해 주십시오.
   ```
   [sshuser@m-001-example-1fx8-hd ~]$ hadoop fs -get s3a://{Object_Storage_Bucket_Name}/dump.sql ./
   ```

5. 백업 파일을 목적지 클러스터(VPC)의 MySQL DB로 마이그레이션 해 주십시오.
   * VPC 클러스터에 먼저 생성되어있던 Hive 데이터는 4번과 동일하게 `mysqldump` 명령어를 이용하여 백업 후 마이그레이션 작업을 진행해 주십시오. 마이그레이션이 실패하더라도 백업 파일을 통해 언제든 롤백이 가능합니다.
   * VPC 클러스터에 있는 Hive 데이터베이스 초기화를 위해, Hive 데이터베이스 삭제 후 재생성해 주십시오.

   ```
   [sshuser@m-001-example-1fx8-hd ~]$ mysqldump -u {Username} -p -h {Master_Node_IP} --no-create-db --skip-add-drop-database --skip-add-drop-table --no-tablespaces hive_{unique_number} > backup.sql

   [sshuser@m-001-example-1fx8-hd ~]$ mysql -u {Username} -p -h {Master_Node_IP}
   mysql> DROP DATABASE hive_{unique_number};
   mysql> CREATE DATABASE hive_{unique_number);

   [sshuser@m-001-example-1fx8-hd ~]$ mysql -u {Username} -p -h {Master_Node_IP} hive_{unique_number} < dump.sql
   ```

6. Hive 스키마 업그레이드에 필요한 sql 파일을 다운로드하여 Hive 설치 경로에 복사해 주십시오.
   * 기존에 upgrade-2.1.2000-to-3.0.0.mysql.sql, upgrade-3.0.0-to-3.1.0.mysql.sql 파일이 존재하는 경우, 해당 파일 삭제 후 새로 다운로드 받은 파일을 사용해 주십시오.
   :::(info) (참고)
   Cloud Hadoop 1.9 이하의 버전인 경우, /etc/hosts 파일에 아래의 정보를 추가해 주십시오.
   ```
   169.254.170.192         nch-repo.navercorp.com
   ```
   :::

   ```
   [sshuser@m-001-example-1fx8-hd ~]$ wget http://nch-repo.navercorp.com/HIVE/upgrade-hive-schema.tar.gz
   [sshuser@m-001-example-1fx8-hd ~]$ tar xvfz upgrade-hive-schema.tar.gz
   ```
   ```
   # Cloud Hadoop 2.x 버전
   [sshuser@m-001-example-1fx8-hd ~]$ cp upgrade-2.1.2000-to-3.0.0.mysql.sql /home1/cdp/usr/nch/3.1.0.0-78/hive/scripts/metastore/upgrade/mysql/
   [sshuser@m-001-example-1fx8-hd ~]$ cp upgrade-3.0.0-to-3.1.0.mysql.sql /home1/cdp/usr/nch/3.1.0.0-78/hive/scripts/metastore/upgrade/mysql/

   # Cloud Hadoop 1.x 버전
   [sshuser@m-001-example-1fx8-hd ~]$ cp upgrade-2.1.2000-to-3.0.0.mysql.sql /home1/cdp/usr/hdp/3.1.0.0-78/hive/scripts/metastore/upgrade/mysql/
   [sshuser@m-001-example-1fx8-hd ~]$ cp upgrade-3.0.0-to-3.1.0.mysql.sql /home1/cdp/usr/hdp/3.1.0.0-78/hive/scripts/metastore/upgrade/mysql/
   ```

7. schematool 운영툴을 사용하여 스키마 정보를 업그레이드해 주십시오.
   * Finished 메세지와 함께 업그레이드가 완료됩니다.
   * 업그레이드가 실패하더라도 백업 파일을 통해 언제든 롤백이 가능합니다.
   ```
   # Cloud Hadoop 2.x 버전
   [sshuser@m-001-example-1fx8-hd ~]$ /home1/cdp/usr/nch/3.1.0.0-78/hive/bin/schematool -dbType mysql -upgradeSchema --verbose -userName Username -passWord Password

   # Cloud Hadoop 1.x 버전
   [sshuser@m-001-example-1fx8-hd ~]$ /home1/cdp/usr/hdp/3.1.0.0-78/hive/bin/schematool -dbType mysql -upgradeSchema --verbose -userName Username -passWord Password

   STEP 1) 2.1.2000 -> 3.0.0 (완료 메세지) 
   +-------------------------------------------------------------+
   | Finished upgrading MetaStore schema from 2.1.2000 to 3.0.0  |
   +-------------------------------------------------------------+
   STEP 2) 3.0.0 -> 3.1.0 (완료 메세지)
   +---------------------------------------------------------+
   | Finished upgrading MetaStore schema from 3.0.0 to 3.1.0 |
   +---------------------------------------------------------+
    ```
8. VPC Ambari Web UI 에서 Hive를 START 해 주십시오.

## 3. HBase 마이그레이션 <a name="3HBase마이그레이션"></a>

1. HBase snapshot
* hbase shell 입력창에서 `snapshot` 명령어를 사용하여 HBase 테이블과 데이터를 백업해 주십시오.
* `list_snapshots` 명령어를 이용하면 `snapshot` 수행 여부를 확인할 수 있습니다.
```
hbase(main):0> snapshot 'table1', 'snapshot-table1'
Took 2.4412 seconds

hbase(main):0> list_snapshots
SNAPSHOT                                       TABLE + CREATION TIME
 snapshot-table1                               table1 (2022-03-21 20:36:46 +0900)
```

2. HBase export
* 로컬 입력창에서 `hbase export` 명령어를 사용하여 Object Storage에 업로드 할 수 있습니다.
* `hadoop fs -ls` 명령어를 통해 파일을 확인할 수 있습니다.
```
[sshuser@m-001-example-1fx8-hd ~] sudo su - hbase hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot snapshot-table1 -copy-to s3a://yourcluster/hbase_snapshot/ -mappers 16

[sshuser@m-001-example-1fx8-hd ~]$ hdfs dfs -ls s3a://yourcluster/hbase_snapshot/
Found 2 items
drwxrwxrwx   - ncloud ncloud          0 2022-03-24 21:13 s3a://yourcluster/hbase_snapshot/.hbase-snapshot
drwxrwxrwx   - ncloud ncloud          0 2022-03-24 21:13 s3a://yourcluster/hbase_snapshot/archive
```

3. HBase import
* 로컬 입력창에서 `hbase import` 명령어를 사용하여 업로드한 스냅샷을 복원할 수 있습니다.
* -copy-to {경로} 에 사용되는 hbase 경로는 Ambari Web UI > HBase > CONFIGS > 검색 hbase.rootdir  의 값을 확인해 주십시오.
```
[sshuser@m-001-example-1fx8-hd ~]$ sudo -u hbase hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot snapshot-table1 -copy-from s3a://yourcluster/ -copy-to /apps/hbase/data -mappers 16
```

4. HBase restore
* hbase shell 입력창에서 `restore_snapshot` 명령어를 사용하여 테이블과 데이터를 복원할 수 있습니다.
* import 된 스냅샷은 `list_snapshots` 명령어로 확인해 주십시오.
```
hbase(main):0> list_snapshots
SNAPSHOT                                       TABLE + CREATION TIME
 snapshot-table1                               table1 (2022-03-21 20:36:46 +0900)

hbase(main):0> restore_snapshot 'snapshot-table1'
hbase(main):0> list
TABLE
table1

hbase(main):0> scan 'table1'
ROW                                            COLUMN+CELL
 key1                                       column=cf1:, timestamp=3, value=value
```
