前天发现kettle容器片数据损坏,所以重做下环境,同时把环境的文档分享给大家。
一、预期需求
Kettle环境集群化,一键管理。
Kettle集群编排话,master和slave节点随时切换。
Kettle开发内容本地化,支持自动化驱动扩展,任务随时保存。
二、Docker安装
根据操作系统,根据docker官方要求,安装docker环境。
三、原始镜像选择
docker pull wmarinho/pentaho-kettle //2017版 5.4.0.1-130
docker pull wmarinho/postgresql:9.3
四、镜像重构
因为该镜像没有远程桌面环境支持,所以安装vnc支持kettle的桌面使用。
docker run --name postgresql -d -p 5432:5432 -d localhost:5000/postgresql:9.3
docker run --name pentaho -d -p 8181:8181 --link postgresql -e PGHOST=postgresql localhost:5000/pentaho-kettle
docker exec -u 0 -it pentaho bin/bash
apt-get update
apt-get install net-tools
apt-get install vnc4server //先update否则报错E: Unable to locate package vnc4server 错误,
vnc4server :1//记住密码 kettle 配置文件/usr/bin/vncserver
注意:安装vnc过程中,由于debit源在国外,下载很难,需要替换源。替换阿里源方式如下:
mv etc/apt/sources.list etc/apt/source.list.bak
vim etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
##测试版源
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
# 源码
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
##测试版源
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
# Canonical 合作伙伴和附加
deb http://archive.canonical.com/ubuntu/ xenial partner
deb http://extras.ubuntu.com/ubuntu/ xenial main
Apt-get update
vnc4server :1 /测试vncserver是否可以正常安装
docker exec -it pentaho /bin/bash
vnc4server //记住密码 kettle (root 初始化使用了5901 6001)
netstat -anp //验证5902 6002是否打开
启动脚本调整:vncserver脚本嵌入到run.sh中,由于配置文件的锁定关系,需要每次删除锁定文件,然后再重建:2的server,详细参考run.sh,已更新服务器为最新配置。
Docker stop pentaho
Docker commit 容器ID local host:5000/kettle
Docker push localhost:5000/kettle
五、服务编排
编排文件的内容比较大,在配置文件代码展示上,只展示图中,kettle-m,kettle-sq的编配内容。在编排过程中,需要参考第七章节完成集群脚本的修改和联动。具体服务编排如下:
六、客户端访问
一键启动: .\compose.bat kettle-cluster up -d
安装vnc viewer客户端,并访问地址local host:5902(vnc4server :2的端口),并使用密码kettle登录。
连接成功后,执行. /opt/pentaho/data-integration/spoon.sh,然后开始使用kettle的旅程吧!
七、Cluster脚本
Master脚本
图示部分都是自定义扩展部分,用于固话vncserver配置信息,以及持久化第三方包引入kettle容器。
Salve脚本
图示部分都是自定义扩展部分,用于固话vncserver配置信息,以及持久化第三方包引入kettle容器。特别需要注意的是红色为slave通过环境变量(编排脚本中,参考第四部分)切换的附属master配置。