在IDEA用java運行DataX

怎麼在idea用java運行DataX?
搞了好幾天各方參考終於弄出來了
1.從GitHub下載datax源碼
在這裏插入圖片描述

在這裏插入圖片描述

2.等待依賴的下載,完成後會有一部分依賴沒下載完回報紅,可以先不管,然後在pom文件中去掉不需要的reader和writer的 module
不用管
在這裏插入圖片描述

3.在下面的Terminal中輸入命令
mvn -U clean package assembly:assembly -Dmaven.test.skip=true
在這裏插入圖片描述

在這裏插入圖片描述

等待打包完成會在項目下生成target\datax\datax目錄,這就是你的datax.home
在這裏插入圖片描述
如果其他項目要引用,那麼你需要把它編譯打包到本地maven倉庫或者你的私服
我是在本地倉庫,點擊右邊maven lifeCycle install
在這裏插入圖片描述

期間可能有個別包會報錯,你找到對應的包分別打包,然後再整體打包,等所有的包都打好,倉庫就多了個datax,就可以進行下一步測試了
在這裏插入圖片描述

測試

1.新建maven項目
在這裏插入圖片描述
2.在pom文件中加入依賴,並點一下右邊的重新導入依賴防止沒生效
在這裏插入圖片描述

    <dependency>
        <groupId>com.alibaba.datax</groupId>
        <artifactId>datax-core</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba.datax</groupId>
        <artifactId>streamreader</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba.datax</groupId>
        <artifactId>streamwriter</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba.datax</groupId>
        <artifactId>datax-all</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>

在這裏插入圖片描述
3.新建EngineTest.java,注意,這裏的datax.home就是之前maven命令打包後生成的目錄

import com.alibaba.datax.core.Engine;

public class EngineTest {
    public static void main(String[] args) {
        System.setProperty("datax.home", "E:\\Document\\intelliidea\\DataX\\target\\datax\\datax");
        String[] datxArgs = {"-job", "E:\\Document\\intelliidea\\dataxText\\src\\main\\resources\\stream2stream.json", "-mode", "standalone", "-jobid", "-1"};
        try {                           
            Engine.entry(datxArgs);   //從這裏啓動
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }
}

4.新建Job文件 stream2stream.json

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "streamreader",
          "parameter": {
            "sliceRecordCount": 1,
            "column": [
              {
                "type": "long",
                "value": "10"
              },
              {
                "type": "string",
                "value": "hello,DataX"
              }
            ]
          }
        },
        "writer": {
          "name": "streamwriter",
          "parameter": {
            "encoding": "UTF-8",
            "print": true
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 1
      }
    }
  }
}

然後運行看結果:
在這裏插入圖片描述
在這裏插入圖片描述

參考:
https://www.jianshu.com/p/b10fbdee7e56
https://www.cnblogs.com/blogsofmy/p/8287637.html
https://yq.aliyun.com/articles/642896

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