異構資料庫之Datax與Datax_web的部署以及使用說明
阿新 • • 發佈:2020-11-02
DataX介紹:
DataX 是阿里開源的一個異構資料來源離線同步工具,致力於實現包括關係型資料庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各種異構資料來源之間穩定高效的資料同步功能。
DataX設計理念
DataX本身作為資料同步框架,將不同資料來源的同步抽象為從源頭資料來源讀取資料的Reader外掛,以及向目標端寫入資料的Writer外掛,理論上DataX框架可以支援任意資料來源型別的資料同步工作。同時DataX外掛體系作為一套生態系統, 每接入一套新資料來源該新加入的資料來源即可實現和現有的資料來源互通。
DataX外掛體系
DataX目前已經有了比較全面的外掛體系,主流的RDBMS資料庫、NOSQL、大資料計算系統都已經接入,目前支援資料如下圖。
DataX部署
-
JDK(1.8以上,推薦1.8)
-
Python(推薦Python2.6.X)
-
Apache Maven 3.x(編譯DataX)
# yum search java|grep jdk # yum install java-1.8.0-openjdk -y # java -version openjdk version "1.8.0_222" OpenJDK Runtime Environment (build 1.8.0_222-b10) OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
[root@stephen ~]# python --version Python 2.7.5
[root@stephen ~]# ls apache-maven-3.6.1-bin.tar.gz [root@stephen ~]# tar -xvzf apache-maven-3.6.1-bin.tar.gz 在vi /etc/profile.d/maven.sh新增 export M2_HOME=/opt/maven export PATH=${M2_HOME}/bin:${PATH} [root@stephen maven]# mvn -vApache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00) Maven home: /opt/maven Java version: 1.8.0_222, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-514.26.2.el7.x86_64", arch: "amd64", family: "unix"
[root@stephen opt]# tar -xvzf datax.tar.gz [root@stephen opt]# ls datax bin conf job lib log log_perf plugin script tmp 當測試顯示以下內容是,說明datax已經安裝成功 [root@stephen datax]# python bin/datax.py job/job.json DataX (DATAX-OPENSOURCE-3.0), From Alibaba ! Copyright (C) 2010-2017, Alibaba Group. All Rights Reserved. .....顯示省略..... 2019-08-21 12:08:36.709 [job-0] INFO JobContainer - 任務啟動時刻 : 2019-08-21 12:08:26 任務結束時刻 : 2019-08-21 12:08:36 任務總計耗時 : 10s 任務平均流量 : 253.91KB/s 記錄寫入速度 : 10000rec/s 讀出記錄總數 : 100000 讀寫失敗總數 : 0
[root@roobbin src]# tar xf datax-web-2.1.2.tar.gz [root@roobbin src]# ls -lsa 總用量 1078932 0 drwxr-xr-x. 3 root root 204 10月 17 09:59 . 0 drwxr-xr-x. 15 root root 177 10月 16 22:50 .. 9284 -rw-r--r--. 1 root root 9506321 11月 20 2019 apache-maven-3.6.3-bin.tar.gz 22716 -rw-r--r--. 1 root root 23257692 5月 23 2019 DataX-master.zip 0 drwxr-xr-x. 4 root root 69 10月 17 09:59 datax-web-2.1.2 212468 -rw-r--r--. 1 root root 217566120 10月 16 23:28 datax-web-2.1.2.tar.gz 185292 -rw-r--r--. 1 root root 189736377 7月 1 2018 jdk-8u151-linux-x64.tar.gz 649172 -rw-r--r--. 1 root root 664749587 6月 10 14:44 mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz [root@roobbin src]# mv datax-web-2.1.2 ../ [root@roobbin src]# cd ../datax-web-2.1.2/ [root@roobbin datax-web-2.1.2]# ls -lsa 總用量 28 0 drwxr-xr-x. 4 root root 69 10月 17 09:59 . 0 drwxr-xr-x. 16 root root 200 10月 17 09:59 .. 0 drwxrwxrwx. 3 root root 104 6月 23 13:44 bin 0 drwxr-xr-x. 2 root root 77 10月 17 09:59 packages
[root@roobbin datax-web-2.1.2]# ./bin/install.sh 2020-10-17 10:00:09.430 [INFO] (22745) Creating directory: [/usr/local/datax-web-2.1.2/bin/../modules]. 2020-10-17 10:00:09.459 [INFO] (22745) ####### Start To Uncompress Packages ###### 2020-10-17 10:00:09.462 [INFO] (22745) Uncompressing.... Do you want to decompress this package: [datax-admin_2.1.2_1.tar.gz]? (Y/N)y 2020-10-17 10:00:17.298 [INFO] (22745) Uncompress package: [datax-admin_2.1.2_1.tar.gz] to modules directory Do you want to decompress this package: [datax-executor_2.1.2_1.tar.gz]? (Y/N)
需要填寫資料庫的各項配置,按照提示進行輸入
[root@localhost datax-web-2.1.2]# cd bin/ [root@localhost bin]# ll 總用量 36 -rw-r--r--. 1 root root 8842 11月 2 13:44 console.out drwxrwxrwx. 2 root root 27 10月 30 10:14 db -rwxr-xr-x. 1 root root 6921 6月 23 13:44 install.sh -rwxr-xr-x. 1 root root 773 6月 23 13:44 start-all.sh -rwxr-xr-x. 1 root root 1871 6月 23 13:44 start.sh -rwxr-xr-x. 1 root root 770 6月 23 13:44 stop-all.sh -rwxr-xr-x. 1 root root 1862 6月 23 13:44 stop.sh [root@localhost bin]# [root@localhost bin]# [root@localhost bin]# [root@localhost bin]# ./start-all.sh 可以看到埠9527啟動
登陸使用者名稱admin 密碼123456
建立專案並且執行檢視日誌顯示如下報錯導致無法執行成功 [AnalysisStatistics.analysisStatisticsLog-53] /usr/bin/python: can't find '_main_'
解決方法如下
[root@localhost conf]# pwd /root/datax-web-2.1.2/modules/datax-executor/conf [root@localhost conf]# vim application.yml # web port server: port: ${server.port} #port: 8081 # log config logging: config: classpath:logback.xml path: ${data.path}/applogs/executor/jobhandler #path: ./data/applogs/executor/jobhandler datax: job: admin: ### datax admin address list, such as "http://address" or "http://address01,http://address02" #addresses: http://127.0.0.1:8080 addresses: http://127.0.0.1:${datax.admin.port} executor: appname: datax-executor ip: #port: 9999 port: ${executor.port:9999} ### job log path #logpath: ./data/applogs/executor/jobhandler logpath: ${data.path}/applogs/executor/jobhandler ### job log retention days logretentiondays: 30 ### job, access token accessToken: executor: #jsonpath: D:\\temp\\executor\\json\\ jsonpath: ${json.path} #pypath: F:\tools\datax\bin\datax.py pypath: /root/datax/bin/datax.py