关于docker文章目录
第一章 CentOS8安装docker
第二章 docker配置daemon
第三章 docker部署kettel
文章目录
- 学习目标:
- 学习内容
- docker拉取kettel镜像
- 启动kettel服务
- linux上kettel执行ktr/kjb文件
学习内容
系统版本:
linux版本:centOS 8
docker版本:19.03
我是直接搜dockerHub上开源的,选择一个tage下载,地址:
https://hub.docker.com/r/yanxiaofei2018/kettle/tags.
使用docker pull命令将拉取镜像。记得带上tag号,就是8.3.0.3-520,不然拉取会出错误,提示带tag号。例如:
docker pull yanxiaofei2018/kettle:8.3.0.3-520启动kettel服务
在linux根目录先建立一个kettelFile文件夹,然后使用交互式方式启动容器,输入命令:
docker run -it -v /kettelFile:/opt/pentao/data-intergration/kettelFile 镜像ID /bin/bash
-v 命令是为当前容器创建一个外部映射,冒号前面参数标识宿主机的文件夹,冒号后面表示映射的容器目录。该步骤是为了后面方便执行ktr/kjb文件。执行命令后会进入镜像容器内部,应该是在容器根目录/opt/pentao/data-intergration下执行命令 :
kitchen.sh
出现help等信息,就说明启动成功了。执行ctrl+p+q操作,退出容器内部,保持容器后台运行,注意此处不要使用exit退出,不然当前容器会停止。
linux上kettel执行ktr/kjb文件在windows上使用kettel的可视化界面准备好ktr以及kjb文件,上传到宿主机器中,放入我们前面建立好的/kettelFile文件目录下。执行命令查找到我们刚启动的容器:
docker ps -a
找到容器后执行命令进入容器内部
docker exec -it imageID
Pan是用于执行trans的PDI命令行工具,执行krt文件工具。
Kitchen是用于执行作业的PDI命令行工具,执行kjb文件工具。
#在容器内部执行ktr文件,并将日志文件输出到ktrlog.log中 sh pan.sh -file=/opt/pentaho/data-integration/ktr文件名称 -norep -leve=minimal >> ./opt/pentaho/data-integration/log/ktrlog.log #容器内部执行kjb文件 kitchen.sh /opt/pentaho/data-integration/kjb文件名称
pan 基于异常事件返回相应的错误码:
0:转换运行正常
1:处理过程中出错
2:在加载/运行转换过程中发生意外错误
3:无法解析和初始化此转换
7:无法从XML或资源库加载转换
8:加载步骤或插件时出错(主要是加载其中一个插件时出错)
9:Command line usage printing
参数解释:
-level: 表示日志级别,具体参数有以下:
Error:只显示错误信息
Nothing:不做任何日志输出
Minimal:仅仅最小输出
Basic:基本信息输出,默认日志级别
Detailed:详细日志输出
Debug:调试使用,非常详细
RowLevel:行级别日志,会产生大量日志
具体参数配置可参考:
https://www.cnblogs.com/xiaopan-cp9/p/7608203.html.



