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

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

    • PDF

    기사 요약

    사전 작업

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

    • Cloud Hadoop 클러스터 생성에 관한 자세한 설명은 클러스터 생성을 참고해 주십시오.

    1. HDFS 데이터 마이그레이션

    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
    • Custom core-site에서 Object Storage 접근 정보를 확인해 주십시오.
      chadoop-3-7-01_ko.png
    1. 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 마이그레이션

    • 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
    
    1. Hive 백업 파일을 Object Storage에 업로드해 주십시오.
    [sshuser@m-001-example-1fx8-hd ~]$ hadoop fs -put dump.sql s3a://object_storage/
    
    1. 목적지 클러스터(VPC)의 마스터 노드로 터널링 접속하여 Hive 백업 파일을 다운로드해 주십시오.
    [sshuser@m-001-example-1fx8-hd ~]$ hadoop fs -get s3a://object_storage/dump.sql ./
    
    1. 백업 파일을 목적지 클러스터(VPC)의 MySQL DB로 마이그레이션 해 주십시오.
    • VPC 클러스터에 먼저 생성되어있던 Hive 데이터는 4번과 동일하게 mysqldump 명령어를 이용하여 백업 후 마이그레이션 작업을 진행해 주십시오.
    • 마이그레이션이 실패하더라도 백업 파일을 통해 언제든 롤백이 가능합니다.
    [sshuser@m-001-example-1fx8-hd ~]$ mysql -u Username -p Password hive_xxx < dump.sql
    
    1. 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 파일이 존재하는 경우, 해당 파일 삭제 후 새로 다운로드 받은 파일을 사용해 주십시오.
      참고

      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 마이그레이션

    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)
    
    1. 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
    
    1. 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
    
    1. 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
    

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.