最近使用kettle部署windows,mac、linux服务遇到的坑做一个总结。
1、mac、linux部署:
1⃣️拉取docker镜像
docker pull hiromuhota/webspoon
2⃣️创建并运行docker容器
docker run -d -p 8080:8080 hiromuhota/webspoon --name webspoon --restart=always
#-d 后台映射
#8080:8080 服务器实际端口:映射的容器端口
#hiromuhota/webspoon 要运行的镜像名称
#--name webspoon 容器名设定为webspoon
#--restart=always 容器设定为随docker重启而自动重启
#记得打开服务器的端口防火墙
3⃣️运行服务: http://localhost:8080/spoon/spoon
4⃣️ 汉化版本:
docker ps
# f4bb1f5f06e4 为容器id
docker exec -it -u 0 f4bb1f5f06e4 /bin/bash
cd bin/
#安装vim
#编辑这个文件 发现 vi: command not found
root@f4bb1f5f06e4:/usr/local/tomcat/bin# vi setenv.sh
bash: vi: command not found
root@f4bb1f5f06e4:/usr/local/tomcat/bin#
# 清空/etc/apt/sources.list文件
#执行一下命令1
echo > /etc/apt/sources.list
#执行一下命令2
echo -e "deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib \ndeb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib \ndeb http://mirrors.aliyun.com/debian-security stretch/updates main \ndeb-src http://mirrors.aliyun.com/debian-security stretch/updates main \ndeb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib \ndeb-src http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib \ndeb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib \ndeb-src http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib" > /etc/apt/sources.list
#执行一下命令3
#更新软件列表 这个过程可能会有点慢 耐心等待
apt-get update
#执行一下命令4
apt-get install -y libtinfo5 --allow-remove-essential
#执行一下命令5
apt-get install -y vim
#再次编辑setenv.sh
cd /usr/local/tomcat/bin
vim setenv.sh
#在文件末尾追加配置
CATALINA_OPTS="-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
JAVA_OPTS="-Duser.language=zh -Duser.region=CN -Dfile.encoding=UTF-8"
# 查看容器
docker ps
# 重启容器
docker restart f4bb1f5f06e4
5⃣️启动成功(如果连接数据报数据库连接异常)
docker cp mysql-connector-java-5.1.49.jar webspoon:/usr/local/tomcat/webapps/spoon/WEB-INF/lib #将MySQL驱动复制到容器webspoon的/usr/local/tomcat/webapps/spoon/WEB-INF/lib路径下面 docker restart webspoon #重启以生效,并在浏览器进行数据库连接测试
5⃣️启动成功(如果连接数据报数据库连接异常)
6⃣️kettle资源配置说明
1、导入 mysql数据库文件https://toscode.mulanos.cn/uxue/dataCollection/blob/master/doc/sql/kettle-rep-mysql.sql
2、系统中配置导入上面脚本的资源库连接信息。
默认资源库账号密码均为admin
在此遇到的问题做一下总结:
大部分都会遇到下面的问题:
问题一:
原因:查看/usr/local/tomcat/webapps/spoon/WEB-INF/lib下mysql驱动jar在第五步是否遗忘,以及jar的版本号,换了好几次版本号mysql8驱动换com.mysql.cj.jdbc.Driver,原生的jar支持5.1.49之前的版本,所以在此我们选择8版本的
问题二:如果jar放进去了试着连接kettle还是存在上述问题
关注一下自定义连接URL是不是用的localhost换成ip,博主自己陷进去了一段时间,因为docker不认localhost,外部navicat都能连接,所以关注点刚开始没在这上边
还有网上的解决方案:仅供参考
1⃣️MYSQL驱动问题:MySQL :: Download MySQL Connector/J (Archived Versions)
2⃣️MY SQL 未设置时区导致:解决办法是登录mysql 修改时区为东八区:
mysql> set global max_allowed_packet=1024*1024;
mysql> set global time_zone='+8:00';
mysql>flush privileges
或者
default-time-zone='+8:00'
3⃣️自定义连接mysql8
jdbc:mysql://127.0.0.1:3306/kettle?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
com.mysql.cj.jdbc.Driver
windows部署:
在此不在过多叙述
1、下载webSpoon安装包。
https://pan.baidu.com/s/1z76Zj7a__2b8_DEzA3_deQ 提取码 fs3s
2、下载tomcat8。
3、将webSpoon安装包解压到tomcat的webapps目录。
4、将kettle客户端的plugins,system两个目录复制到bin目录。
5、启动tomcat即可。
TIPS:关注一下本地.kettle文件,responsitory.xml,以及要删除的几个文件
以及出现的一些问题:都在这篇文章中得到解决:https://toscode.mulanos.cn/uxue/dataCollection/blob/master/doc/QA.md#oraclehttps://toscode.mulanos.cn/uxue/dataCollection/blob/master/doc/QA.md#oracle
感谢小伙伴的百忙之中点赞和关注,还有遇到的问题没有解决,可以@我,我会在第一时间给大家解决
参考资料:
dataCollection与spoon详细docker部署流程
dataCollection: dataCollection项目在kettle基础开发的可视化任务调度系统,提供简单易用的操作界面,降低用户使用crontab调度的学习成本,缩短任务配置时间,避免配置过程中出错。 - 木兰确实