CDB MySQL 데이터 이전
    • PDF

    CDB MySQL 데이터 이전

    • PDF

    기사 요약

    Sqoop(SQL to Hadoop)은 관계형 데이터베이스와 Hadoop 간에 효율적으로 데이터를 전송할 수 있도록 지원하는 툴입니다.
    RDBMS에 저장되어 있는 데이터를 HDFS에서 분석할 수 있도록 HDFS로 가져올 수 있습니다. 반대로 분석 결과를 RDBMS로 내보낼 수 있으며 HDFS, Hive, HBase, Accumulo 등으로도 전송할 수도 있습니다.

    이 가이드는 Sqoop을 이용하여 네이버 클라우드 플랫폼 Cloud DB for MySQL에서 Cloud Hadoop으로 데이터 마이그레이션하는 방법을 소개합니다.
    Sqoop 사용 및 명령어에 대한 내용은 Sqoop 사용 가이드를 참고해 주십시오.

    사전 작업

    1. Object Storage를 생성해 주십시오.
    2. Cloud Hadoop 클러스터를 생성해 주십시오.
      • Cloud Hadoop 클러스터 생성에 대한 자세한 내용은 Cloud Hadoop 시작 가이드를 참고해 주십시오.
    3. Cloud DB for MySQL를 생성합니다.

    Sqoop을 이용한 데이터 마이그레이션

    Sqoop 클라이언트는 엣지 노드를 제외한 마스터 노드와 데이터 노드 서버에 기본적으로 설치되어 있습니다. 별도의 Sqoop 클라이언트 설치없이 마이그레이션을 진행할 수 있습니다.

    SSH로 클러스터 노드 접속 가이드를 참고하여 서버에 접속한 후, 다음 단계를 차례대로 진행해 주십시오.

    1. Cloud DB for MySQL로 접속할 Sqoop 계정 생성

    Cloud DB for MySQL 콘솔의 DB User 관리 메뉴를 이용하여 설정 정보를 입력해 Cloud DB for MySQL의 계정을 생성해 주십시오.
    Cloud Hadoop 서버들의 IP는 Ambari UIHosts 메뉴에서 확인할 수 있습니다.

    <예시>
    DB 설정 정보

    • User_ID: mig_acct
    • Host(IP): Cloud Hadoop 서버의 IP 대역
      <예시> 10.10.10.%
    • 암호: 임의 설정
      hadoop-chadoop-use-ex4_1-1_ko

    2. ACG 설정

    Cloud Hadoop 마스터 노드 2번 서버가 Cloud DB for MySQL에 접속할 수 있도록 ACG를 설정해 주십시오.

    • Cloud-DB ACG 설정의 접근 소스에 Cloud Hadoop 마스터 노드 2번 서버 IP를 추가해 주십시오.
      cloudhadoop-set-acg1_ko

    3. 샘플링 테이블 및 데이터 생성

    생성된 Cloud DB for MySQL에 예제 샘플링 테이블과 데이터를 입력해 주십시오.

    참고

    MySQL 접속 명령어

    mysql -u [클러스터 관리자 계정명] -p
    
    CREATE TABLE `mig_test_tb` (
    `col1` int(11) NOT NULL,
    `col2` char(2) NOT NULL,
    `col3` char(15) DEFAULT NULL,
    `col4` char(4) DEFAULT NULL,
    `col5` char(1) DEFAULT NULL,
    PRIMARY KEY (`col1`,`col2`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    insert into mig_test_tb values
    (1,'a','mig-test1','run','y'),(2,'a','mig-test1','init','n'),
    (3,'b','mig-test1','run','y'),(4,'b','mig-test1','run','y'),
    (5,'c','test-mysql','init','n'),(6,'c','test-mysql','run','n'),
    (7,'d','test-mysql','init','n'),(8,'d','test-mysql','run','y'),
    (9,'e','sqoop-test','run','n'),(10,'e','sqoop-test','run','y'),
    (11,'f','sqoop-test','run','n'),(12,'f','sqoop-test','init','y'),
    (13,'g','mysql-sqoop','run','n'),(14,'g','mysql-sqoop','init','y'),
    (15,'h','mysql-sqoop','run','y'),(16,'h','mysql-sqoop','init','n'),
    (17,'i','sqp-to-my','run','n'),(18,'i','sqp-to-my','init','n'),
    (19,'j','sqp-to-my','init','y'),(20,'j','sqp-to-my','init','y'),
    (21,'k','my-mig-sq','run','n'),(22,'k','my-mig-sq','run','y'),
    (23,'i','my-mig-sq','run','y'),(24,'i','my-mig-sq','run','n');
    
    참고

    테이블 생성 시 구문 에러가 날 경우 작은따옴표 ( ' ' )부분을 확인해 주십시오.

    4. Sqoop 명령어로 데이터 마이그레이션

    1. Sqoop CLI의 import-all-tables 옵션을 사용하여 데이터를 Hive로 마이그레이션해 주십시오.
      jdbc 정보는 Cloud DB for MySQL의 Private 도메인과 포트를 사용했습니다.

      sqoop import-all-tables --connect jdbc:mysql://test-db.mysql.domain.com:3306/migdb --username mig_acct -P --hive-import
      
      참고

      에러가 난다면 Primary Key의 존재 유무를 확인해 주십시오.

    Resource manager Job으로 등록되어 마이그레이션 작업이 수행됩니다.

    20/11/30 16:27:10 INFO mapreduce.Job: Job job_1606446027726_0007 completed successfully
     20/11/30 16:27:10 INFO mapreduce.Job: Counters: 30
     File System Counters
     FILE: Number of bytes read=0
     FILE: Number of bytes written=685116
     FILE: Number of read operations=0
     FILE: Number of large read operations=0
     FILE: Number of write operations=0
     HDFS: Number of bytes read=414
     HDFS: Number of bytes written=520
     HDFS: Number of read operations=16
     HDFS: Number of large read operations=0
     HDFS: Number of write operations=8
     Job Counters
     Launched map tasks=4
     Other local map tasks=4
     Total time spent by all maps in occupied slots (ms)=13269
     Total time spent by all reduces in occupied slots (ms)=0
     Total time spent by all map tasks (ms)=13269
     Total vcore-milliseconds taken by all map tasks=13269
     Total megabyte-milliseconds taken by all map tasks=9049458
     Map-Reduce Framework
     Map input records=24
     Map output records=24
     Input split bytes=414
     Spilled Records=0
     Failed Shuffles=0
     Merged Map outputs=0
     GC time elapsed (ms)=393
     CPU time spent (ms)=4780
     Physical memory (bytes) snapshot=813985792
     Virtual memory (bytes) snapshot=10053660672
     Total committed heap usage (bytes)=341311488
     File Input Format Counters
     Bytes Read=0
     File Output Format Counters
     Bytes Written=520
     20/11/30 16:27:10 INFO mapreduce.ImportJobBase: Transferred 520 bytes in 15.7176 seconds (33.084 bytes/sec)
     20/11/30 16:27:10 INFO mapreduce.ImportJobBase: Retrieved 24 records.
     20/11/30 16:27:10 INFO mapreduce.ImportJobBase: Publishing Hive/Hcat import job data to Listeners
     20/11/30 16:27:10 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `mig_test_tb` AS t LIMIT 1
     20/11/30 16:27:10 INFO hive.HiveImport: Loading uploaded data into Hive
     20/11/30 16:27:10 WARN conf.HiveConf: HiveConf of name hive.server2.enable.doAs.property does not exist
     20/11/30 16:27:10 WARN conf.HiveConf: HiveConf of name hive.server2.enable.doAs.property does not exist
     Logging initialized using configuration in jar:file:/home1/cdp/usr/hdp/2.6.5.0–292/hive/lib/hive-common-1.2.1000.2.6.5.0–292.jar!/hive-log4j.properties
     OK
     Time taken: 1.796 seconds
     Loading data to table default.mig_test_tb
     Table default.mig_test_tb stats: [numFiles=4, numRows=0, totalSize=520, rawDataSize=0]
     OK
     Time taken: 0.418 seconds
    
    1. OK 메시지와 함께 정상적으로 마이그레이션 작업이 완료되었는지 확인해 주십시오.
      • Hive에 마이그레이션된 테이블과 데이터를 Hive Viewer 2.0 또는 Hue UI에서 조회할 수 있습니다. Hive 사용에 대한 자세한 내용은 Hive 사용 가이드를 참고해 주십시오.
    SELECT * FROM mig_test_tb;
    

    hadoop-chadoop-use-ex4_4-1_ko


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

    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.