菜单
一、容器化部署
1.1 拉取python环境镜像到本地
shell>docker pull centos/python-27-centos7
1.2 准备JDK和datax
https://github.com/alibaba/DataX
1.3 编写Dockerfile
[root@rancher datax]# cat Dockerfile
FROM centos/python-27-centos7
#安装jdk
COPY jdk /data/app/jdk
ENV JAVA_HOME /data/app/jdk
ENV PATH $JAVA_HOME/bin:$PATH
# 添加并解压datax文件到/opt/local 目录
COPY datax /data/app/datax
# 设置运行的工作目录,可不添加,运行中使用 docker -w 指定
WORKDIR /data/app/datax
ENTRYPOINT ["bash"]
1.4 构建镜像
shell>docker build -t="datax" .
shell>docker run -t -i --name datax datex
1.5 检查环境
shell>(app-root)bash-4.2$ java -version
shell> python
1.6运行Datax测试
shell>python bin/datax.py job/job.json
二、直接下载 DataX工具包部署
2.1 下载工具包
shell>wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
2.2 解压
shell>wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
shell>tar -zxvf datax.tar.gz -C /data/app/
shell>cd /data/app/datax
2.3 创建软链接及设置环境变量(选做)
[root@rancher datax]# ln -s ./bin/datax.py /usr/local/datax.py
[root@rancher datax]# vim /etc/profile
####Datax_HOME
export DATAX_HOME=/usr/local/datax
[root@rancher datax]# source /etc/profile
2.5 测试
2.5.1 创建测试Json
tee job/stream2stream.json <<'EOF'
{
"job": {
"content": [
{
// 读插件
"reader": {
"name": "streamreader", // 指定插件名称
"parameter": {
"column": [ // 字段类与值 (必须进行指定)
{
"value": "WeiyiGeek",
"type": "string"
},
{
"value": 2021,
"type": "long"
},
{
"value": "2021-01-01 00:00:00",
"type": "date"
},
{
"value": true,
"type": "bool"
},
{
"value": "test",
"type": "bytes"
}
],
"sliceRecordCount": "10" // 切片记录计数
}
},
// 写插件
"writer": {
"name": "streamwriter", // 指定使用的插件名称
"parameter": {
"encoding": "UTF-8", // 编码格式
"print": true // 是否终端打印
}
}
}
],
"setting": {
"speed": { // 同步速度采用的类型
"channel": "2" // 并发数
//"byte": 10485760 // 字节数
}
}
}
}
EOF
2.5.2 测试测试Json
[root@rancher datax]# python bin/datax.py job/stream2stream.json
2.6 日志截取
在执行后,会在/data/app/datax/logs/{日期}中生成日志文件
我们可以通过shell脚本来截取日志
[root@rancher 2022-07-31]# ll
total 32
-rw-r--r-- 1 root root 6619 Jul 31 10:25 b_stream2stream_json-10_25_11.826.log
-rw-r--r-- 1 root root 6619 Jul 31 10:44 b_stream2stream_json-10_44_12.783.log
-rw-r--r-- 1 root root 100 Jul 31 11:05 datax_log.sh
-rw-r--r-- 1 root root 8779 Jul 31 10:23 p_datax_job_job_json-10_23_20.715.log
[root@rancher 2022-07-31]#
[root@rancher 2022-07-31]#
[root@rancher 2022-07-31]# cat b_stream2stream_json-10_44_12.783.log |grep "读出记录总数" |awk '{print $3}'
20
截取日志脚本:
[root@rancher 2022-07-31]# cat datax_log.sh
#!/bin/bash
echo "当前日志文件:"$1
cat $1 |grep "读出记录总数" |awk '{print $3}'
###########执行脚本
[root@rancher 2022-07-31]# bash datax_log.sh b_stream2stream_json-10_44_12.783.log
当前日志文件:b_stream2stream_json-10_44_12.783.log
20