Datax,Datax-web在Win10中安裝使用

1. Datax安裝

1.1 Python環(huán)境安裝

Datax需要Python2環(huán)境,先安裝環(huán)境。下載地址:Python 2.7.18

下載版本

安裝python后(目錄隨意),環(huán)境變量Path中會(huì)有安裝的python,
環(huán)境變量

在cmd中python -v查看版本信息,能查看基本就可以了。
cmd查看

1.2 下載datax

參考官網(wǎng)教程:

datax有打包好的,也有源碼,因自帶的是mysql5驅(qū)動(dòng),所以如果要換MySQL8驅(qū)動(dòng),只能下載源碼。我下載的源碼自己編譯的。如果連接mysql5,直接下載官方的壓縮包使用。

  1. 下載源碼,導(dǎo)入ide,maven自動(dòng)導(dǎo)包,直到?jīng)]有報(bào)錯(cuò)
    注意:有一些特殊的數(shù)據(jù)庫驅(qū)動(dòng)包是用的本地的,都在自己的項(xiàng)目pom文件中有目錄,我導(dǎo)入時(shí)oscarJDBC.jar驅(qū)動(dòng)就沒有,所以網(wǎng)盤中轉(zhuǎn)載了別人找到的各個(gè)數(shù)據(jù)庫驅(qū)動(dòng),放到項(xiàng)目中就可以了。
    百度網(wǎng)盤:數(shù)據(jù)庫連接驅(qū)動(dòng)
    提取碼: p2a3

    1. Sybase驅(qū)動(dòng): jconn3-6.0.jar
    2. Sqlserver驅(qū)動(dòng): sqljdbc4-4.0.jar
    3. Postgresql驅(qū)動(dòng):postgresql-0.9.3-1102-jdbc4.jar
    4. oscarJDB驅(qū)動(dòng): oscarJDBC.jar
    5. Oracle12C驅(qū)動(dòng): orai18n.jar ojdbc8-12.2.0.1.jar,ojdbc8.jar
    6. Mysql驅(qū)動(dòng): mysql-connector-java-5.1.48.jar
    7. Mongodb驅(qū)動(dòng): mongodb-driver-3.8.2.jar
    8. kingbase驅(qū)動(dòng): kingbase8-8.2.0.jar
    9. greenplum驅(qū)動(dòng):greenplum-jdbc-5.1.4.jar
    10. Gbasse驅(qū)動(dòng): gbase-8.3.81.53.jar
    11. DM(達(dá)夢)驅(qū)動(dòng): Dm7jdbcDriver16-7.6.0.165.jar,DM7jdbcDriver18.jar
    12. Vertica驅(qū)動(dòng): vertica-jdbc-9.1.1-0.jar
    13. DB2驅(qū)動(dòng): db2jcc-3.72.44.jar
    14. Teradata驅(qū)動(dòng): terajdbc4.jar
    
  2. 更換驅(qū)動(dòng)版本:在最外層pom文件中,5.1.32 --> 8.0.25


    MySQL版本
  3. 更換驅(qū)動(dòng)名字,我在eclipse中,快捷鍵ctrl + h打開搜索窗口,將5的驅(qū)動(dòng)替換成8的:mysql-connector-java --> com.mysql.cj.jdbc.Driver

    搜索

    替換

    顯示替換了7處,在文件中都可以看到,可以自己點(diǎn)進(jìn)去看看替換的地方。
    替換的驅(qū)動(dòng)名稱

  4. 修改zeroDateTimeBehavior的值:convertToNull --> CONVERT_TO_NULL
    我不知道為什么,看別人說要替換,我就換了

  5. 按照官網(wǎng)的命令打包
    官網(wǎng)命令:mvn -U clean package assembly:assembly -Dmaven.test.skip=true
    可以在 cmd中打包,我在eclipse中build的

    打包

    不知道為什么,我打包出來的體積比較大,有1.17個(gè)G,官網(wǎng)下載打好的包只有800多M,但是也不影響使用

  6. 測試使用
    將打好的包解壓到自己的目錄,使用官網(wǎng)給的命令測試,就用的job文件夾下job.json文件進(jìn)行測試的:

 cd {YOUR_DATAX_DIR_BIN}
 python datax.py ../job/job.json 

需要注意一點(diǎn):官網(wǎng)直接下載的壓縮包能直接測試,但是自己打包的會(huì)報(bào)錯(cuò),缺少配置,有2種方法修改:

  • 方法1:去掉job中的speed的速度值byte,
  • 方法2:添加core字段,在其中添加speed,
    即構(gòu)建的json文件中的core.transport.channel.speed.record和job.setting.speed.record需要同時(shí)進(jìn)行設(shè)置或全都不設(shè)置。


    修改json文件

    每個(gè)字段什么意思,自己可以在官網(wǎng)查一下,我添加了,如下:

{
    "core":{
        "transport":{
            "channel":{
                "speed":{
                    "channel": 2,
                    "byte":10485760,
                    "batchSize":2048
                }
            }
        }
    },
    "job": {
        "setting": {
            "speed": {
                "byte":20971520
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {
                "reader": {
                    "name": "streamreader",
                    "parameter": {
                        "column" : [
                            {
                                "value": "DataX",
                                "type": "string"
                            },
                            {
                                "value": 19890604,
                                "type": "long"
                            },
                            {
                                "value": "1989-06-04 00:00:00",
                                "type": "date"
                            },
                            {
                                "value": true,
                                "type": "bool"
                            },
                            {
                                "value": "test",
                                "type": "bytes"
                            }
                        ],
                        "sliceRecordCount": 100000
                    }
                },
                "writer": {
                    "name": "streamwriter",
                    "parameter": {
                        "print": false,
                        "encoding": "UTF-8"
                    }
                }
            }
        ]
    }
}

測試完結(jié)果:


測試結(jié)果

到這,datax就算完成了,可以使用了

2. Datax-web安裝

提一下,datax-web是在datax的基礎(chǔ)上使用的,所以要想用datax-web,必須先安裝datax。
官方教程:

  • datax-web · GitHub
    官方datax-web中也包含了datax部分教程,若datax已安裝,可直接看datax-web部分

2.1 下載datax-web

直接github上下載下來源碼,導(dǎo)入ide

2.2 運(yùn)行datax-web

主要包括2個(gè)運(yùn)行項(xiàng)目,datax-admindatax-executor

  1. 在mysql中創(chuàng)建datax_web數(shù)據(jù)庫,執(zhí)行/datax-web/bin/db/datax_web.sql文件,導(dǎo)入數(shù)據(jù)庫
  2. 修改datax-admin中的數(shù)據(jù)庫連接,將配置文件中的變量都變成固定值,有好多,具體其他的請參考官網(wǎng)。
    配置文件
  3. 修改datax-executor配置文件中job文件位置和datax位置
    配置文件2
  4. 依次運(yùn)行datax-admin -- datax-executor,啟動(dòng)好以后就可以訪問了
  • 地址:http://127.0.0.1:8080/index.html
  • 賬號:admin
  • 密碼:123456
    注意:啟動(dòng)可能會(huì)報(bào)錯(cuò),缺少hadoop文件,主要是少了winutils工具,雖然不影響使用,還是要解決一下。下載以下文件,配置環(huán)境變量即可:
    hadoop-2.6.5百度網(wǎng)盤-鏈接:
    提取碼: xjq3
    若版本不對,可以選擇其他版本。轉(zhuǎn)載其他人的:
    winutils.png

    各版本hadoop百度網(wǎng)盤-鏈接:
    提取碼: 8jfi
    添加HADOOP_HOME環(huán)境變量,Path中也加入,如下圖:
    環(huán)境變量

    Path
  1. datax-web使用
    初次使用datax-web需要配置幾個(gè)東西
  • 5.1 添加項(xiàng)目,將datax執(zhí)行的任務(wù)加到所屬項(xiàng)目,方便管理,實(shí)質(zhì)作用不大,但任務(wù)多了,好查找
  • 5.2 配置數(shù)據(jù)庫,各種用到的數(shù)據(jù)源都添加到里面,用的時(shí)候選擇已添加的數(shù)據(jù)源
    不要用local host?。?!千萬不要用,用127.0.0.1就可以了
  • 5.3 配置執(zhí)行器,主要是為了識別datax位置


    配置項(xiàng)
  • 5.4 任務(wù)管理
    接下來是最主要的部分了,在 任務(wù)管理 項(xiàng)中,任務(wù)管理也是分3步完成:創(chuàng)建任務(wù)模板--任務(wù)構(gòu)建--任務(wù)管理。
    datax執(zhí)行
    • 任務(wù)模板,主要配置執(zhí)行datax的一些規(guī)則:路由策略、定時(shí)器、啟動(dòng)參數(shù)等等
    • 任務(wù)構(gòu)建,就是生成datax使用的json文件,用datax-web主要就是因?yàn)樗茏詣?dòng)生成這個(gè):
      按它的步驟一步步選擇就行,基本能看懂,選擇表和字段,在第四步時(shí)注意順序:
      順序

      生成的Json文件可能有小問題,無法執(zhí)行,其實(shí)和datax自己打包有關(guān),自己打的包json文件需要speed同時(shí)有或同時(shí)沒有,我直接去掉了,先試試
      修改json
    • 任務(wù)管理
      在這里執(zhí)行或修改已經(jīng)構(gòu)建完成的任務(wù)
      我試著執(zhí)行了一個(gè)Oracle --> Mysql的轉(zhuǎn)換。


      執(zhí)行任務(wù)
  • 5.5 日志管理
    任務(wù)執(zhí)行過程中,可以在這里查看日志和結(jié)果


    日志管理

    日志記錄

    由日志可以看出,我執(zhí)行的Oracle --> Mysql的任務(wù),有25733316條數(shù)據(jù),速度22772rec/s,用了差不多20分鐘


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容