CDB MySQL データの移行
    • PDF

    CDB MySQL データの移行

    • PDF

    Article Summary

    Classic環境で利用できます。

    Sqoop(SQL to Hadoop)は関係データベースとHadoopの間で効率的にデータを転送できるようにサポートするツールです。
    RDBMSに保存されているデータをHDFSで分析できるようにHDFSにインポートできます。 逆に分析結果をRDBMSにエクスポートでき、HDFS、Hive、HBase、Accumuloなどにも転送できます。

    このページでは、Sqoopを利用してNAVERクラウドプラットフォームのCloud DB for MySQLからCloud Hadoopにデータをマイグレーションする方法を説明します。
    Sqoopの使用とコマンドについては、Sqoopを使用するガイドをご参照ください。

    事前作業

    1. Object Storageを作成します。
    2. 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_ja

    2. ACG設定

    Cloud Hadoopのマスターノード2番サーバがCloud DB for MySQLにアクセスできるようにACGを設定します。

    • Cloud DB ACG設定のアクセスソースにCloud Hadoopのマスターノード2番サーバIP ACGを追加します。
      cloudhadoop-set-acg1_ja

    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のプライベートドメインとポートを使用しました。

      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
      
    2. OKメッセージと共に正常にマイグレーション作業が完了したことを確認します。

      • HiveにマイグレーションされたテーブルとデータをHive Viewer 2.0またはHUE UIで照会できます。 Hiveの使用に関する詳細は、Hiveを使用するガイドをご参照ください。
    SELECT * FROM mig_test_tb;
    

    cloudhadoop-mysql-hive_ja


    この記事は役に立ちましたか?

    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.