換了新工作,Java出身的我,弄點大數據的活.
datax安裝
環境要求
1.jdk1.8
2.python
源碼地址:https://github.com/alibaba/DataX
這里我下載的是最新版本的 DataX3.0 。下載地址為:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
解壓
[root@localhost /]# tar -zxvf datax.tar.gz -C /opt/soft/
[root@hadoop ~]$ cd /opt/software/datax/
[root@hadoop datax]$ bin/datax.py job/job.json
出現如圖則安裝成功
json文件就不示例了,以下是springboot整合datax,主要的問題是jar包環境的問題,這個磨了好久才能出來.
先把源碼下載或者clone下來, 用idea打開.
重點
1.在根目錄的pom文件中,把不需要的模塊給注釋掉(打包時間短)
2.把你需要的轉換的數據源模塊打開,我的業務需要是txtreader和mysqlwrite.
3.這個時候,maven打包,先選擇root打包(第一次需要)
重點又來了
4.
(1)在core包里面新建一個 plugin 目錄,位置如下
(2)上圖可以看出需要引一些東西.
在txtreader和mysqlwriter中的的target包中復制到上圖的目錄中,
mysql示例如圖
(3)把core打包生成jar包(后面為我們的springboot項目使用)
ok,jar包環境搞定.不要問我為什么這么做,也是公司大佬教我的.不用像其他博客說的,一個一個打包,一個一個引入,一個一個寫maven導入,太麻煩了
.
新建springboot項目
看圖,大家大概了解了,給大家解釋一下,新建目錄變成資源目錄,在把我們之前打好的jar包復制進去,其他兩個是基礎包,core是最重要的.下圖是變成資源目錄的方式
我們建立一個main方法
public class datax {
public static void main(String[] args) {
String getCurrentClasspath = "D:\\project\\datax\\DataX\\core\\src\\main";
System.setProperty("datax.home", getCurrentClasspath);
String[] datxArgs = {"-job", "D:\\project\\demo\\src\\main\\job\\txt2mysql.json", "-mode", "standalone", "-jobid", "-1"};
try {
Engine.entry(datxArgs);
} catch (Throwable e) {
e.printStackTrace();
}
}
}
解釋一下:
getCurrentClasspath:是源碼目錄,不是指向項目的目錄.
網上有教程說用環境變量的,但是我不會.
datxArgs 改變你的json目錄就行.
json去github上研究就行.這里不介紹了.
這篇文章的重點是把打包后數據源jar包復制給core,core再打包一次就可以直接用了
————————————————
版權聲明:本文為CSDN博主「csdn_ling_」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/CSDN_ling_/article/details/108664360