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 executor
crontab -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安装完毕!