DataX的安装部署
1、 前提条件
1.1 JDK安装
jdk安装前往官网,这里我安装jdk-8u261
解压
sudo mkdir -p /opt/moudle
sudo tar -zxvf jdk-8u261-linux-x64.tar.gz -C /opt/moudle/
设置环境变量
export JAVA_HOME=/opt/moudle/jdk1.8.0_261
export JRE_HOME=JAVA_HOME/jre export CLASSPATH=.:{JAVA_HOME}/jre export CLASSPATH=.:JAVA
HOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib:JREHOME/lib export PATH = {JRE_HOME}/lib export PATH=JRE
HOME/libexportPATH={JAVA_HOME}/bin:$PATH
刷新配置
source /etc/profile
检查JAVA是否安装成功
java -version
#出现如下所示表示安装成功
java version “1.8.0_261”
Java™ SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot™ 64-Bit Server VM (build 25.261-b12, mixed mode)
1.2 python安装
1.3 hadoop分布式集群安装
2、安装DataX
2.1 解压
tar -zxvf datax.tar.gz -C /opt/software/
2.2 配置环境变量
vim /etc/profile
#datax
export DATAX_HOME=/opt/datax
export PATH=$PATH:$DATAX_HOME/bin
2.3 运行自检脚本
cd /opt/software/datax/
bin/datax.py job/job.json
出现如下表示安装成功
3、DataX实现Mysql->Mysql的数据同步
3.1 在datax的根目录下的job下配置json文件
vim mysql2mysql.json
{
“job”: {
“content”: [
{
“reader”: {
“name”: “mysqlreader”,
“parameter”: {
“connection”: [
{
“jdbcUrl”: [“jdbc:mysql://10.3.7.231:3306/dtc_platform_cloud”],
“querySql”: [“select * from t1”]
}
],
“password”: “DTCserver2019!”,
“username”: “root”,
“where”: “”
}
},
“writer”: {
“name”: “mysqlwriter”,
“parameter”: {
“column”: [
“*”
],
“connection”: [
{
“jdbcUrl”: “jdbc:mysql://10.3.7.231:3306/dtc_platform_cloud”,
“table”: [“alarm”]
}
],
“username”: “root”,
“password”: “DTCserver2019!”,
“writeMode”: “replace”
}
}
}
],
“setting”: {
“speed”: {
“channel”: “5”
}
}
}
}
配置到以上步骤后,执行
python /opt/datax/bin/datax.py /opt/datax/job/mysql2mysql.json
就实现了数据的同步
4、Crontab定时调度DataX脚本
4.1 创建一个文件夹
mkdir -p /opt/data/crontab/
cd /opt/data/crontab
vim mysql2mysql.sh
添加如下内容
#!/bin/bash
source /etc/profile --这个地方需要source一下环境变量
python /opt/datax/bin/datax.py /opt/datax/job/mysql2mysql.json
4.2 crontab配置定时任务
crontab -e
添加如下内容(表示每1分钟执行一次mysql2mysql.sh脚本,也就是每1分钟执行mysql2mysql.json脚本)
*/1 * * * * sh /opt/data/crontab/mysql2mysql.sh
4.3 重启cron的服务
启动cron服务[命令没有提示] :systemctl start crond.service
停止cron服务[命令没有提示] :systemctl stop crond.service
重启cron服务[命令没有提示] :systemctl restart crond.service
重新加载cron服务[命令没有提示] : systemctl reload crond.service
4.4 设置开机自启
检测cron定时服务是否自启用:systemctl is-enabled crond.service
enable表示已启用自启动
disable标识未启用自启动
如果未启用,则开启cron自启用
systemctl enable crond.service
如果已经启用,想要cron关闭自启动
systemctl disable crond.service