当前位置: 首页 > news >正文

织梦装修公司网站模板欧派网站谁做的

织梦装修公司网站模板,欧派网站谁做的,中信建设有限责任公司杨峰,岳阳建设网站公司概述 datax和datax-web从一台机器迁移到另一台时,要重新搭建一套运行环境,比较麻烦;打包成docker镜像后迁移就方便多了; 因为我的mysql版本是8,需要在datax的read和write中手动添加8的jdbc驱动 所以我先各自下载好了datax和data…

概述

dataxdatax-web从一台机器迁移到另一台时,要重新搭建一套运行环境,比较麻烦;打包成docker镜像后迁移就方便多了;

因为我的mysql版本是8,需要在dataxreadwrite中手动添加8jdbc驱动
所以我先各自下载好了dataxdatax-web,在宿主机上试了一波ok后;
然后手动打包成了docker镜像,方便后续迁移

我的环境
ubuntu22.04
jdk:1.8+
python:3.10.12
maven:3.8.8
docker:26.00
docker-compose:2.24.7
datax-web:2.1.2

打包过程中还是遇到了一些细节问题,比如环境问题,datax自身脚本问题,配置问题等;有一些linuxdocker的认知,解决问题会更有方向一些.
镜像制作完,之后要新部署/迁移就方便多了;

实际部署中发现即使手动加入了新的jdbc驱动,但是在执行日志中还是发现有com.mysql.jdbc.Driver旧驱动的warning信息;
要彻底解决需要down datax的代码,将jdbc驱动版本手动调整为8.0+的版本,然后手动打包重新上传包,我重新打包出来后有2G+
重新打包方案写在下面了

准备工作

datax
https://github.com/alibaba/DataX/tree/datax_v202303
datax-web
https://github.com/WeiYe-Jing/datax-web/tags
down一波datax-web的源码,用idea打开,然后在bin下新增一个health.sh,一会在启动docker容器时让后台常驻(我想的是直接调用原脚本启动,不改原来的启动脚本,所以自己塞了一个进去);
然后mvn clean install一下,拿到datax-web-2.1.2.tar.gz包;

因为我的mysql8dataxreadwriter下的lib中没有对应的jdbc驱动,所以需要手动下载塞进去;

另外datax运行需要python环境,所以在声明 FROM python:3.10.12 运行环境后, java环境是手动add进去jdk后,手动配置的env环境,这里准备好jdk8的包即可,下面的docker file中有对应配置;

我的运行环境是python3,所以需要从datax的官网上把对应的python脚本down下来,覆盖到datax-web的指定目录下,这个在我的datax和datax-web直接宿主机部署中有写.

上面步骤都ok后,就可以开始打包镜像了;

我另一篇文章有写datax和datax-web直接在宿主机部署,其实宿主机ok了,剩下的无非就是打包进docker镜像
https://blog.csdn.net/weixin_43944305/article/details/133617114

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

health.sh

while true
dojps | grep "Datax*"sleep 30
done

打包镜像

将准备okdatax文件夹和datax-web文件夹打包并压缩成tar.gz,然后写一个dockerfile,手动build下就可以用了.

dockerfile

# 基础镜像
FROM python:3.10.12# author
MAINTAINER felix# 创建目录
RUN mkdir -p /app
run mkdir -p /app/datax-python3# work dir
workdir /app# 复制文件到路径
add ./pro/datax.tar.gz .
add ./pro/datax-web-2.1.2.tar.gz .# jdk环境
add ./pro/jdk-8u181-linux-x64.tar.gz .# 设置JAVA_HOME环境变量
ENV JAVA_HOME="/app/jdk1.8.0_181"# 将JAVA_HOME添加到PATH环境变量
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH# datax支持python3文件替换
copy ./pro/datax-python3 ./datax-python3/ #支持python3替换datax/bin下3个文件
run mv -f ./datax-python3/datax.py ./datax/bin/
run mv -f ./datax-python3/dxprof.py ./datax/bin/
run mv -f ./datax-python3/perftrace.py ./datax/bin/#datax-web-admin 添加mysql8的jdbc驱动
copy ./pro/mysql-connector-j-8.0.33.jar ./datax-web-2.1.2/modules/datax-admin/lib/# datax自身配置问题,手动将单个channel的大小改为2Mb
RUN sed -i 's/"byte": -1/"byte": 2097152/g' ./datax/conf/core.json# 启动服务
CMD sh -c "./datax-web-2.1.2/bin/install.sh --force" && sh -c "./datax-web-2.1.2/bin/start-all.sh" && sh -c "./datax-web-2.1.2/bin/health.sh"

docker-compose脚本
我这边把datax-executor的env.properties捞出来映射了下,方便配置

version: '3'
services:datax-web:build:context: ./dockerfile: ./Dockerfileimage: datax-webcontainer_name: datax-webrestart: alwaysprivileged: trueports:- 9527:9527environment:- TZ=Asia/Shanghai#我的mysql和datax在一个docker网段,所以直接用了容器name链接,正常可以写ip- DB_HOST=mysql_8_0- DB_PORT=3306- DB_USERNAME=root- DB_PASSWORD=Cttx10086- DB_DATABASE=datax_webvolumes:- ./config/datax-executor/env.properties:/app/datax-web-2.1.2/modules/datax-executor/bin/env.properties- ./config/datax-admin/env.properties:/app/datax-web-2.1.2/modules/datax-admin/bin/env.propertiesnetworks:- dev_netnetworks:dev_net:external: true

datax-executor的env.properties
其实也没改啥,就把datax的python脚本路径写了下

# environment variables#JAVA_HOME=""
SERVICE_LOG_PATH=${BIN}/../logs
SERVICE_CONF_PATH=${BIN}/../conf
DATA_PATH=${BIN}/../data## datax json文件存放位置
JSON_PATH=${BIN}/../json## executor_port
EXECUTOR_PORT=9999## 保持和datax-admin端口一致
DATAX_ADMIN_PORT=## PYTHON脚本执行位置
#PYTHON_PATH=/home/hadoop/install/datax/bin/datax.py
PYTHON_PATH=/app/datax/bin/datax.py## dataxweb 服务端口
SERVER_PORT=9504

datax-admin的env.properties
datax-webenv.properties映射进去,方便后面调整

# environment variables#JAVA_HOME="/home/felix/app/jdk/jdk1.8.0_181"WEB_LOG_PATH=${BIN}/../logs
WEB_CONF_PATH=${BIN}/../confDATA_PATH=${BIN}/../data
SERVER_PORT=9527#PID_FILE_PATH=${BIN}/dataxadmin.pid# mail account
MAIL_USERNAME=""
MAIL_PASSWORD=""#debug
#REMOTE_DEBUG_SWITCH=true
#REMOTE_DEBUG_PORT=7003

重启脚本
每次都要手敲命令,整个脚本轻松一点

#!/bin/sh
echo '==============start stop==========='
docker stop datax-web
echo '==============end stop========='
#docker ps -a | grep datax-web | awk '{print $1}' | xargs docker stop
#docker rm datax-web
echo '=============start docker rm======='
docker ps -a | grep datax-web | awk '{print $1}' | xargs docker rm
echo '=============end docker rm========='echo '=============start docker rmi======'
docker rmi datax-web
echo '=============end docker rmi========'
docker build -t datax-web:latest .
echo 'ready go'
docker-compose up -d

启动后执行ok

在这里插入图片描述

在这里插入图片描述

解决datax的com.mysql.jdbc.Driver老驱动问题

1-修改pom中的mysql.driver.version8.0.29
2-修改com.alibaba.datax.plugin.rdbms.util.DataBaseType中的驱动name,并且将“convertToNull”修改为“CONVERT_TO_NULL”
3-修改com.alibaba.datax.plugin.writer.adswriter.load.AdsHelper中的驱动name
4-重新打包后上传新的datax压缩包

mvn -U clean package assembly:assembly -Dmaven.test.skip=true

参考博文
https://www.cnblogs.com/ll409546297/p/17541727.html
https://www.cnblogs.com/zifan/p/12550747.html

http://www.yayakq.cn/news/856775/

相关文章:

  • 华容网站定制汕头新闻
  • 网站开发中网页上传和发布2022年企业年报网上申报流程
  • 网站空间大小怎么查看wordpress 图片压缩
  • 1+x数字营销网站做网站推广什么好
  • 用ai怎么做网站莱芜搜狗推广
  • c2c有哪些网站wordpress最新文章调用
  • 类似58同城分类信息网站开发苏州好的做网站的公司
  • 建设校园网站必要性温州网站网络公司
  • 建设银行官方网站入口猎头网站怎么做
  • 千野网站建设做图赚钱的网站
  • 自己的网站怎么做怎么举报平台
  • 一家做运动鞋的网站在线学习建设网站
  • 网站如何宣传推广智慧旅游网站建设方案ppt模板
  • 自建站什么意思用php做网站要多久
  • 网站开发费的税率是多少垫江网站建设djrckj
  • 肇庆做网站gdmkd建站工具箱
  • wordpress只能本地访问搜索引擎排名优化亚当
  • 绍兴公司网站建设 中企动力绍兴wordpress 菜单设置
  • 新手搭建网站微信商城如何开通
  • 网站群集建设wordpress4.9.8有中文版
  • 怎样做自己的导购网站wordpress 无法粘贴
  • 只买域名不建网站做网站怎么优化
  • 超酷网站模板合肥找工作最新招聘信息
  • wordpress 动漫网站垡头做网站的公司
  • 网站手机端打不开wordpress版权信息 插件
  • 网上商城网站建设公司如何在本地安装wordpress
  • flash网站报价网站推广的意义和方法
  • 24小时学会网站建设 下载万网域名查询网
  • 权威网站建设188旅游网站管理系统
  • 营销类网站如何优化wordpress 小工具定制