1. 程式人生 > >Mysql 資料匯入 Hbase

Mysql 資料匯入 Hbase

目錄

一、前言

一、前言

在大資料專案中需要做資料遷移時,我們第一時間總會想到sqoop。sqoop是apache 旗下一款“Hadoop 和關係資料庫伺服器之間傳送資料”的工具,使用才來也很方便。但因專案需求在使用sqoop是遇到了一些問題,所以決定自己開發一個一個專案解決該問題。

二、使用sqoop遇到的問題

  1. 想要利用hbase的特性,資料按照Row key的字典序排序儲存,但使用sqoop時無法對Row key做特殊處理;
  2. 使用sqoop將資料匯入hbase一些資料都預設變成字串型別。

三、專案搭建(maven專案)

依賴

<dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>

            <version>5.1.43</version>

        </dependency>

        <dependency>

            <groupId>org.mybatis</groupId>

            <artifactId>mybatis</artifactId>

            <version>3.4.1</version>

        </dependency>

        <dependency>

            <groupId>log4j</groupId>

            <artifactId>log4j</artifactId>

            <version>1.2.12</version>

        </dependency>

        <dependency>

            <groupId>org.apache.hadoop</groupId>

            <artifactId>hadoop-common</artifactId>

            <version>2.6.0</version>

        </dependency>

        <dependency>

            <groupId>org.apache.hadoop</groupId>

            <artifactId>hadoop-hdfs</artifactId>

            <version>2.6.0</version>

        </dependency>

        <dependency>

            <groupId>org.apache.hbase</groupId>

            <artifactId>hbase-client</artifactId>

            <version>1.2.0</version>

        </dependency>

        <dependency>

            <groupId>org.apache.hbase</groupId>

            <artifactId>hbase-server</artifactId>

            <version>1.2.0</version>

        </dependency>

外掛

<!-- mybatis generator 自動生成程式碼外掛 -->

            <plugin>

                <groupId>org.mybatis.generator</groupId>

                <artifactId>mybatis-generator-maven-plugin</artifactId>

                <version>1.3.2</version>

                <configuration>

                    <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>

                    <overwrite>true</overwrite>

                    <verbose>true</verbose>

                </configuration>

            </plugin>

四、專案重點

  1. 查詢資料庫資料
    • 通過mybatis逆向工程外掛生成model 、mapper,需要編寫配置檔案generatorConfig.xml。
    • 通過mybatis查詢資料,可以自己編寫查詢語句,實現靈活的資料過濾

  2. 將查詢到資料寫入Hbase

    • 將java資料型別轉換為hbase中的二進位制資料型別,需要model類實現HbaseSerialization

      或者讓model繼承HbaseSerializationReflect(建議),這個抽象類通過反射的方式實現了部分方法,已達到減少程式設計工作量和程式碼通用性

    • 將資料寫入Hbase,通過工具類HbaseUtils實現靈活的資料新增、更新

    • 靈活的Row Key通過實現HbaseSerialization中的getKey方法實現
    • 靈活的過濾寫入hbase中的資料,model繼承HbaseSerializationReflect

  3. 專案執行

五、專案程式碼