異構數據源同步工具DataX Web用戶手冊(一、安裝)
DataX Web用戶手冊(一、安裝)
一、github下載master分支或者release版本到本地
二、安裝DataX
-
方法一、直接下載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 -
方法二、下載DataX源碼,自己編譯:DataX源碼
(1)、下載DataX源碼:
$ git clone git@github.com: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讀取數據並打印到控制台
-
第一步、創建創業的配置文件(json格式)
可以通過命令查看配置模板: python datax.py -r {YOUR_READER} -w {YOUR_WRITER}
$ cd {YOUR_DATAX_HOME}/bin $ python datax.py -r streamreader -w streamwriter DataX (UNKNOWN_DATAX_VERSION), From Alibaba ! Copyright (C) 2010-2015, Alibaba Group. All Rights Reserved. Please refer to the streamreader document: https://github.com/alibaba/DataX/blob/master/streamreader/doc/streamreader.md Please refer to the streamwriter document: https://github.com/alibaba/DataX/blob/master/streamwriter/doc/streamwriter.md Please save the following configuration as a json file and use python {DATAX_HOME}/bin/datax.py {JSON_FILE_NAME}.json to run the job. { "job": { "content": [ { "reader": { "name": "streamreader", "parameter": { "column": [], "sliceRecordCount": "" } }, "writer": { "name": "streamwriter", "parameter": { "encoding": "", "print": true } } } ], "setting": { "speed": { "channel": "" } } } }根據模板配置json如下:
#stream2stream.json { "job": { "content": [ { "reader": { "name": "streamreader", "parameter": { "sliceRecordCount": 10, "column": [ { "type": "long", "value": "10" }, { "type": "string", "value": "hello,你好,世界-DataX" } ] } }, "writer": { "name": "streamwriter", "parameter": { "encoding": "UTF-8", "print": true } } } ], "setting": { "speed": { "channel": 5 } } } } -
第二步:啟動DataX
$ cd {YOUR_DATAX_DIR_BIN} $ python datax.py ./stream2stream.json同步結束,顯示日志如下:
... 2015-12-17 11:20:25.263 [job-0] INFO JobContainer - 任務啟動時刻 : 2015-12-17 11:20:15 任務結束時刻 : 2015-12-17 11:20:25 任務總計耗時 : 10s 任務平均流量 : 205B/s 記錄寫入速度 : 5rec/s 讀出記錄總數 : 50 讀寫失敗總數 : 0
-
三、執行doc/db下面的datax_web.sql文件(注意老版本更新語句有指定庫名)
四、修改項目配置
1.修改datax_admin下resources/application.yml文件
#數據源 datasource: username: root password: root url: jdbc:mysql://localhost:3306/datax_web?serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false&useSSL=false&nullNamePatternMatchesAll=true&useUnicode=true&characterEncoding=UTF-8 driver-class-name: com.mysql.jdbc.Driver
修改數據源配置,目前僅支持mysql
# 配置mybatis-plus打印slq日志 logging: level: com.wugui.datax.admin.mapper: error path: ./data/applogs/admin
修改日志路徑path
# datax-web email mail: host: smtp.qq.com port: 25 username: xxx@qq.com password: xxx properties: mail: smtp: auth: true starttls: enable: true required: true socketFactory: class: javax.net.ssl.SSLSocketFactory
修改郵件發送配置(不需要可以不修改)
2.修改datax_executor下resources/application.yml文件
# log config logging: config: classpath:logback.xml path: ./data/applogs/executor/jobhandler
修改日志路徑path
datax: job: admin: ### datax-web admin address addresses: http://127.0.0.1:8080 executor: appname: datax-executor ip: port: 9999 ### job log path logpath: ./data/applogs/executor/jobhandler ### job log retention days logretentiondays: 30 executor: jsonpath: /Users/mac/data/applogs pypath: /Users/mac/tools/datax/bin/datax.py
修改datax.job配置
- admin.addresses datax_admin部署地址,如調度中心集群部署存在多個地址則用逗號分隔,執行器將會使用該地址進行"執行器心跳注冊"和"任務結果回調";
- executor.appname 執行器AppName,每個執行器機器集群的唯一標示,執行器心跳注冊分組依據;
- executor.ip 默認為空表示自動獲取IP,多網卡時可手動設置指定IP,該IP不會綁定Host僅作為通訊實用;地址信息用於 "執行器注冊" 和 "調度中心請求並觸發任務";
- executor.port 執行器Server端口號,默認端口為9999,單機部署多個執行器時,注意要配置不同執行器端口;
- executor.logpath 執行器運行日志文件存儲磁盤路徑,需要對該路徑擁有讀寫權限;
- executor.logretentiondays 執行器日志文件保存天數,過期日志自動清理, 限制值大於等於3時生效; 否則, 如-1, 關閉自動清理功能;
- executor.jsonpath datax json臨時文件保存路徑
- pypath DataX啟動腳本地址,例如:xxx/datax/bin/datax.py
如果系統配置DataX環境變量(DATAX_HOME)logpath、jsonpath、pypath可不配,log文件和臨時json存放在環境變量路徑下。
五、啟動項目
1.本地idea開發環境
- 1.運行datax_admin下 DataXAdminApplication
- 2.運行datax_executor下 DataXExecutorApplication

admin啟動成功后日志會輸出三個地址,兩個接口文檔地址,一個前端頁面地址
2.linux環境部署
- 1.本地安裝好maven環境,安裝此處細節忽略
- 2.執行mvn package -Dmaven.test.skip=true
- 3.打包成功后分別將datax-admin、datax-executor模塊target下datax-admin-2.1.1.jar、datax-executor-2.1.1.jar放到指定目錄
- 4.分別啟動datax-admin-1.0.0.jar、datax-executor-1.0.0.jar
- 5.啟動命令demo:
nohup java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-admin-2.1.1.jar&
nohup java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-executor-2.1.1.jar&
六、啟動成功
啟動成功后打開頁面(默認管理員用戶名:admin 密碼:123456)
http://localhost:8080/index.html#/dashboard
七、集群部署
- 調度中心、執行器支持集群部署,提升調度系統容災和可用性。
- 1.調度中心集群:
DB配置保持一致;
集群機器時鍾保持一致(單機集群忽視); - 2.執行器集群:
執行器回調地址(admin.addresses)需要保持一致;執行器根據該配置進行執行器自動注冊等操作。
同一個執行器集群內AppName(executor.appname)需要保持一致;調度中心根據該配置動態發現不同集群的在線執行器列表。

java