DataX環境部署以及測試案例

DATAX簡介(簡介來自官網加以改編)

dataX

DataX

DataX 是阿里巴巴集團內被廣泛使用的離線數據同步工具/平臺,實現包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各種異構數據源之間高效的數據同步功能。

Features

DataX本身作爲數據同步框架,將不同數據源的同步抽象爲從源頭數據源讀取數據的Reader插件,以及向目標端寫入數據的Writer插件,理論上DataX框架可以支持任意數據源類型的數據同步工作。同時DataX插件體系作爲一套生態系統, 每接入一套新數據源該新加入的數據源即可實現和現有的數據源互通。

System Requirements

Linux-沒有要求
JDK(1.8以上,推薦1.8)
Python(推薦Python2.6.X)(注意:一定要2.X,不要安裝3.X會出錯)
Apache Maven 3.x (Compile DataX)

環境部署

JDK環境部署

配置

vi /etc/profile
#JDK1.8
JAVA_HOME=/usr/local/jdk
JRE_HOME=/usr/local/jdk/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH

刷新環境變量,使之生效。

source /etc/profile

測試

java -version

在這裏插入圖片描述

python2.X環境

linux-centOS自帶的就有2.X

測試

python

在這裏插入圖片描述

Maven環境部署

配置

 vi /etc/profile
#MAVEN
M3_HOME=/usr/local/apache-maven-3.3.9
export PATH=$M3_HOME/bin:$PATH

刷新環境變量,使之生效。

source /etc/profile

測試

mvn -v

在這裏插入圖片描述

Quick Start

工具部署

方法一、直接下載DataX工具包:DataX下載地址建議使用

下載後解壓至本地某個目錄,進入bin目錄,即可運行同步作業:

$ cd  {YOUR_DATAX_HOME}/bin
$ python datax.py {YOUR_JOB.json}

自檢腳本: python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json
例如:
MY_DATAX_HOME=/usr/local/datax

cd /usr/local/datax
./bin/datax.py ./job/job.json

出現下面情況,表明dataX環境搭建完成
在這裏插入圖片描述

方法二、下載DataX源碼,自己編譯:DataX源碼

(1)、下載DataX源碼:

$ git clone [email protected]:alibaba/DataX.git

(2)、通過maven打包:

$ cd  {DataX_source_code_home}
$ mvn -U clean package assembly:assembly -Dmaven.test.skip=true

打包成功,日誌顯示如下:

[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------------------------
[INFO] Total time: 08:12 min
[INFO] Finished at: 2015-12-13T16:26:48+08:00
[INFO] Final Memory: 133M/960M
[INFO] -----------------------------------------------------------------

打包成功後的DataX包位於 {DataX_source_code_home}/target/datax/datax/ ,結構如下:

$ cd  {DataX_source_code_home}
$ ls ./target/datax/datax/
bin		conf		job		lib		log		log_perf	plugin		script		tmp

配置示例:從stream讀取數據並打印到控制檯

Support Data Channels

DataX目前已經有了比較全面的插件體系,主流的RDBMS數據庫、NOSQL、大數據計算系統都已經接入,目前支持數據如下圖,詳情請點擊:DataX數據源參考指南

在這裏插入圖片描述

Hive與MySQL交互案例

將MySQL表導入Hive

0.在mysql中造數據

test數據庫。
創建test_test_table表

表結構
在這裏插入圖片描述
表數據
在這裏插入圖片描述
1.在Hive中建表(儲存爲文本文件類型)

hive> create table mysql_table(word string, cnt int) row format delimited fields terminated by ',' STORED AS TEXTFILE;
OK
Time taken: 0.194 seconds
hive> select * from mysql_table limit 10;
OK
Time taken: 0.162 seconds

2.在{YOUR_DATAX_PATH}/job下面,編寫mysql2hive.json配置文件

{
    "job": {
        "setting": {
            "speed": {
                 "channel": 3
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "writeMode": "insert",
                        "username": "root",
                        "password": "123",
                        "column": [
                            "word",
                            "cnt"
                        ],
                        "splitPk": "cnt",
                        "connection": [
                            {
                                "table": [
                                    "test_table"
                                ],
                                "jdbcUrl": [
     "jdbc:mysql://192.168.231.1:3306/test"
                                ]
                            }
                        ]
                    }
                },
               "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "defaultFS": "hdfs://192.168.10.3:9000",
                        "fileType": "text",
                        "path": "/user/hive/warehouse/mysql_table",
                        "fileName": "mysql_table",
                        "column": [
                            {
                                "name": "word",
                                "type": "string"
                            },
                            {
                                "name": "cnt",
                                "type": "int"
                            }
                        ],
                        "writeMode": "append",
                        "fieldDelimiter": ",",
                        "compress":"gzip"
                    }
                }
            }
        ]
    }
}

3.運行腳本

cd /usr/local/datax
./bin/datax.py ./job/mysql2hive.json

在這裏插入圖片描述
4.查看hive表中是否有數據

select * from mysql_table;

在這裏插入圖片描述
努力努力再努力!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章