1安裝datax
下載下傳datax.tar.gz
http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
1.1解壓datax包
cd /app/datax
tar -zxvf datax.tar.gz
1.2驗證datax是否成功
進入到datax安裝目錄執行
bin/datax.py job/job.json
如下圖就是成功
1.3解決datax不支援HA問題,将叢集配置問價加入hdfswriter
說明:datax遷移資料,本身是reader讀取,writer寫。hdfswrier寫入hdfs的時候,讀不到ha叢集的配置,是以将叢集的hdfs-site.xml從叢集中拿出來,添加到hdfswriter中去。以下是詳細步驟。(hdfsreader同理,根據自己的需求去配置)
l 查找hdfs-site.xml和core-site.xml
find / -name hdfs-site.xml
l 進入目錄将這兩個檔案取出
cd /etc/hadoop/3.1.0.0-78/0/
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-GeMl7xl8-1595235371980)(E:\tools\安裝目錄\markfiles\本地圖檔\wps105.jpg)]
l 安裝lrzsz快捷工具
yum install -y lrzsz
l 用sz hdfs-site.xml , sz core-site.xml将檔案依次取出到桌面
l 用sz取出datax中的hdfswriter包;
cd /app/datax/datax/plugin/writer/hdfswriter/
執行sz hdfswriter-0.0.1-SNAPSHOT.jar
l 然後進行進行備份
mv hdfswriter-0.0.1-SNAPSHOT.jar hdfswriter-0.0.1-SNAPSHOT.jar_bk
此時取出的總共4個檔案(hive-site.xml缺少無妨)
l 将取出的xxx.xml檔案用解壓工具winRAR放入包中
l 然後将hdfswriter-0.0.1-SNAPSHOT.jar重新放入叢集的/app/datax/plugin/writer/hdfswriter這個位置
以上操作都在datax主節點(yuanjing02)完成
l 将主節點datax檔案夾發送到其餘節點yuanjing01,04的/app/datax下
scp -r /opt/datax yuanjing01:/app/datax/
scp -r /opt/datax yuanjing04:/app/datax
安裝datax-web
l 步驟0解壓datax-web包
cd /app/datax/
tar -xvf datax-web.tar.gz
若沒有datax-web包,可以直接git
yum install -i git -y
git clone https://github.com/WeiYe-Jing/datax-web.git
l 步驟1在mysql中建立中繼資料(mysql根據自己叢集mysql而定這裡以yuanjing03為例)
将解壓出來的檔案中的datax_web.sql發送到mysql所在節點;
scp /app/datax/datax-web/doc/db/datax_web.sql yuanjing03:/app/datax
進入mysql所在節點mysql -uroot -p
create database datax_web;
use data_web;
source /app/datax/datax_web.sql;
修改datax-admin下的配置檔案
vim /app/datax/datax-web/datax-admin/src/main/resources/application.yml
l 步驟2.修改datax-executor配置,這裡我們先為yuanjing04安裝executor
vim /app/datax/datax-web/datax-executor/src/main/resources/application.yml
l 步驟3進入datax-web檔案夾,用maven打包;
cd /app/datax/datax-web
mvn clean
mvn package -Dmaven.test.skip=true
打包後/app/datax/datax-web/datax-executor和/app/datax/datax-web/datax-admin
target下會出現一個datax-executor-2.1.1.jar 和datax-admin-2.1.1.jar
l 步驟4 安裝executor到yuanjing04節點上
cd /app/datax/datax-web/datax-executor
将 datax-executor-2.1.1.jar發送到yuanjing04,01節點
.
scp datax-executor-2.1.1.jar yuanjing04:/app/datax/datax-web
l 重複步驟2、3、4将datax-executor-2.1.1.jar發送到yuanjing01節點
l yuanjing02節點上executor隻需重複步驟2、3
然後将 admin execuotr的jar移動到 /opt/datax
cp /app/datax/datax-web/datax-admin/target/datax-admin-2.1.1.jar /app/datax
cp /app/datax/datax-web/datax-executor/target/datax-executor-2.1.1.jar /app/datax
l 啟動
l 編寫啟動腳本 datax-web.sh scp發送到所有安裝datax-web 的節點/app/datax/
vim datax-web.sh
#!/bin/sh
#$1 為admin 或者executor
ps -ef | grep $1 | grep -v grep > /tmp/dataxtmp.log
a=`awk '{print $15}' /tmp/dataxtmp.log`
if [[ $a == datax-$1-2.1.1.jar ]]
then
echo "datax-$1 is running"
else
echo "datax-$1 is restaring"
nohup java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-$1-2.1.1.jar&
sleep 3
Fi
l 啟動定時任務
說明:(定時服務隻是為了防止executor意外退出,定時腳本可以失敗重新開機)不是生産環境可以省略,下面定時也是如此
在yuanjing02 (admin)上 /app/datax/下執行以下指令
sh dataxserver.sh admin
sh dataxserver.sh executor
crontab -e
*/30 * * * * /opt/datax-web/**datax-web.sh admin**
*/30 * * * * /opt/datax-web/**datax-web.sh executor**
l 在yuangjing01,04 (executor) /app/datax下執行,并添加定時
sh dataxserver.sh executorcrontab -e
*/30 * * * * /opt/datax-web/datax-web.sh executor
l 登入界面 admin 123456(預設)
http://${hostnameIP}:8080/index.html#/dashboard
說明:${hostnameIP}為自己伺服器ip
添加執行器
若重複指定執行器,請資料苦衷修改groupid 1,2,3
l 登入界面 admin 123456(預設)
http://192.168.1.202:8080/index.html#/dashboard
添加執行器
若重複指定執行器,請資料苦衷修改groupid 1,2,3
至此,datax 、datax-web安裝完畢!