位置: IT常识 - 正文

如何部署WebSpoon9.0.0(Kettle的Web版本)(如何部署迫击炮)

编辑:rootadmin
如何部署WebSpoon9.0.0(Kettle的Web版本) 前言

推荐整理分享如何部署WebSpoon9.0.0(Kettle的Web版本)(如何部署迫击炮),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何部署服务器,如何部署测试环境,如何部署tomcat服务器,如何部署项目到服务器,如何部署测试环境,如何部署tomcat服务器,如何部署www站点服务器,如何部署servlet,内容如对您有帮助,希望把文章链接给更多的朋友!

Kettle 是小有名气的开源ETL工具,现已改名为PDI(Pentaho Data Integration),其Web版本为:WebSpoon,本文记录了从官方Git仓库中拉取代码并成功运行的过程。

一、在本地拉取并编译项目

参考来源:Kettle的Git官方页面的webspoon-9.0分支的README文件

编译依赖项目

根据 _Build and locally publish dependent libraries _部分可知,需要预先在本地编译部分依赖项目。

pentaho-xul-swt$ git clone -b webspoon-9.0 https://github.com/HiromuHota/pentaho-commons-xul.git$ cd pentaho-commons-xul$ mvn clean install -pl swtrap$ git clone -b webspoon-3.12.0 https://github.com/HiromuHota/rap.git$ cd rap$ mvn clean install

在mvn install出现报错时,可能的解决方案: jetty-repo 版本修改为:9.4.48.v20220622 rap-extra-repo 修改为: https://download.eclipse.org/rt/rap/base-platforms/3.14/extra-dependencies/

pentaho-vfs-browser$ git clone -b webspoon-9.0 https://github.com/HiromuHota/apache-vfs-browser.git$ cd apache-vfs-browser$ mvn clean install

将上述三个依赖项目编译后,在maven仓库的对应目录下会生成相应的jar文件。

编译本体项目$ git clone -b webspoon-9.0 https://github.com/HiromuHota/pentaho-kettle.git$ cd pentaho-kettle$ mvn clean install -DskipTests

成功示例: (在assemblies模块下的client模块中的target文件夹内生成对应的war包)

可能的报错:

大面积报错找不到pom文件

解决方法:根据 Kettle官方Git页面master分支的README文件 中的setting.xml文件配置maven

找不到某个依赖的artifact文件

下图为示例: 原因分析及解决方案:maven配置的pentaho-public镜像地址所在的仓库有一些依赖版本缺失,当出现此错误后分析了项目源码,并未搜索到缺失依赖版本的明文引用,但是在编译时仍有报错,所以可以认为是在编译时由于间接引用了特定版本导致了报错。通过去pentaho-public仓库中逐个查找发现确实没有报错的pom版本(恰好丢失了该版本),一个取巧的解决方法是在本地的maven仓库目录中新建该版本,并将最临近的最新一版的pom及签名文件复制进去,再按需改名后即可通过编译。如: 报错1.2版本丢失,经仓库地址查找发现确实不存在1.2版本,但是有1.3版本,就可以把1.3版本复制到本地1.2对应目录下并改成对应的名字,以实现绕过maven的检查机制。

二、在本地运行项目如何部署WebSpoon9.0.0(Kettle的Web版本)(如何部署迫击炮)

将war包放在 \webapps 文件夹下(示例:pdi-ce-9.0.0.0-423-22.war)

修改tomcat主目录/conf/server.xml文件, 在<Host>标签内加入:

<Context path="/pdi" docBase="pdi-ce-9.0.0.0-423-22" reloadable="false" source="org.eclipse.jst.jee.server:tsj-spring"/><!-- /pdi为浏览器地址栏ip:port后的访问地址 --><!-- docBase中的pdi-ce-9.0.0.0-423-22为项目在webapps目录下,编译后项目文件的实际路径;配置该项是为了读取下文的驱动文件 -->

访问本地url:http://localhost:8080/pdi/spoon

完成数据库的连接工作(数据库的准备工作略去)

下载MySQL的jdbc驱动文件:mysql-connector-java-5.1.49.jar(因版本过高的jdbc文件目录结构改变,kettle无法支持)将驱动文件放置于:tomcat主目录\webapps\pdi-ce-9.0.0.0-423-22\WEB-INF\lib三、在服务器运行项目拉取docker镜像docker pull hiromuhota/webspoon创建并运行docker容器docker run -d -p 8080:8080 hiromuhota/webspoon --name webspoon --restart=always#-d 后台映射#8080:8080 服务器实际端口:映射的容器端口#hiromuhota/webspoon 要运行的镜像名称#--name webspoon 容器名设定为webspoon#--restart=always 容器设定为随docker重启而自动重启#记得打开服务器的端口防火墙测试运行结果:http://服务器IP:8080/spoon/spoon汉化界面(可选)上传MySQL驱动文件至容器内cd /home/upload_files/#无此文件夹则创建,将驱动文件上传至本目录下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#重启以生效,并在浏览器进行数据库连接测试挂载服务器本地路径至容器内,方便文件的生成与交换

参考文章 可能出现的问题:

systemctl start docker启动失败 解决办法:使用systemctl status docker确认启动状态,根据报错信息修复配置文件doker pscd /var/lib/docker/containers/容器idsysteamctl stop docker#获取容器id,进入容器配置路径修改配置文件"/home/pdi_files": {"Source": "/home/kettle/pdi_files","Destination": "/home/pdi_files","RW": true,"Name": "","Driver": "","Type": "bind","Propagation": "rprivate","Spec": {"Type": "bind","Source":"/home/kettle/pdi_files","Target": "/home/pdi_files"},"SkipMountpointCreation": false}## 修改config.v2.json,将本地的/home/kettle/pdi_files 路径映射到容器的 /home/pdi_files"Binds":["/home/kettle/pdi_files:/home/pdi_files"]#修改hostconfig.jsonsystemctl start dockerdocker start 容器名#重启docker及容器# 挂载失败时会无法找到并启动容器,需要二次确认配置文件是否修改正确docker exec -it 容器名 /bin/bash # 进入容器路径确认是否挂载成功配置文件夹权限

如果没有对容器内的路径做权限配置,文件将无法读取和写入

sudo docker exec -it -u root 容器id bash# 以root权限进入容器cd /home/chmod 777 ./pdi_files#给特定目录赋权自定义数据库表并测试转换任务

该作业涉及到表输入、文件输出、文件输入、表输出、日志记录,可以简单测试pdi是否成功工作。

配置资源库(可选)

点击主页右上角的connect按钮,填入个人的etl资源库连接信息。

在连接资源库时需要选择数据库连接,在编辑数据库连接时修改参数以使中文正常显示:

修改kettle配置文件,开启api访问功能(可选) 使用官方镜像部署kettle之后,可以通过进入容器的方式修改相关文件docker exec -it 容器ID /bin/bashvim ./system/kettle/slave-server-config.xml

将slave-server-config.xml文件内容修改为:

<slave_config> <max_log_lines>10000</max_log_lines> <max_log_timeout_minutes>2880</max_log_timeout_minutes> <object_timeout_minutes>240</object_timeout_minutes> <repository><!-- 填入你自己拥有的Kettle资源库名称,与上方第九步图示中的名称一致 --><!-- 该名称决定了在使用api方式访问kettle时,kettle默认连接的配置资源库 --> <name>etl</name> <username>xxxxx</username> <!-- 填入目标资源库连接账号 --> <password>xxxxx</password> <!-- 填入目标资源库连接密码 --> </repository></slave_config>

这样就开启了kettle的内置API访问功能,功能入口有:

测试访问API效果:

问题来了,这些api入口都是可用的吗,需要传输哪些参数?有没有文档? 我的回答是:可以去网上搜搜,没有找到答案的话最好自己看源码。

Kettle目前已经转为了商业化项目(hitachivantara公司官网),也有自己的社区(hitachivantara公司论坛),感兴趣的可自行探索。

结束语Git拉项目确实要多看一下README文件,该有的准备工作不可少PDI的C/S和B/S架构、页面都差不多,可看作是孪生项目市面上支持Web端且免费的ETL工具不多,WebSpoon可作为一个选择
本文链接地址:https://www.jiuchutong.com/zhishi/273764.html 转载请保留说明!

上一篇:电脑管家浏览器保护(电脑管家浏览器保护怎么取消)

下一篇:win10闹钟关机后会响吗(windows10闹钟不响)

  • 怎样做到微博阅读量上百万?(怎样做到微博阅读量高)

    怎样做到微博阅读量上百万?(怎样做到微博阅读量高)

  • 小米手环6微信支付怎么用(小米手环6微信通知怎么设置)

    小米手环6微信支付怎么用(小米手环6微信通知怎么设置)

  • 拼多多收藏的东西别人能看到吗(拼多多收藏的东西怎么分享给好友)

    拼多多收藏的东西别人能看到吗(拼多多收藏的东西怎么分享给好友)

  • vivos12与12pro区别(vivos10pro和苹果12参数对比)

    vivos12与12pro区别(vivos10pro和苹果12参数对比)

  • 苹果手表se充电器是什么接口(苹果手表se充电头多少瓦)

    苹果手表se充电器是什么接口(苹果手表se充电头多少瓦)

  • 网络正常抖音无法连接的原因是什么(网络正常抖音无法连接)

    网络正常抖音无法连接的原因是什么(网络正常抖音无法连接)

  • 电脑黑屏显示英文字幕(电脑黑屏显示英文和数字怎么办)

    电脑黑屏显示英文字幕(电脑黑屏显示英文和数字怎么办)

  • 金立手机以后还能正常使用吗(金立手机以后还会降价吗)

    金立手机以后还能正常使用吗(金立手机以后还会降价吗)

  • fieldset是什么标签

    fieldset是什么标签

  • iPad型号对照表(苹果ipad型号对照表)

    iPad型号对照表(苹果ipad型号对照表)

  • 苹果原相机九宫格怎么打开(苹果原相机九宫格在哪)

    苹果原相机九宫格怎么打开(苹果原相机九宫格在哪)

  • 微信发照片怎么配音乐(微信发照片怎么设置几秒销毁)

    微信发照片怎么配音乐(微信发照片怎么设置几秒销毁)

  • 荣耀20i外屏内屏是一体的吗(荣耀20i外屏碎了多少钱修)

    荣耀20i外屏内屏是一体的吗(荣耀20i外屏碎了多少钱修)

  • 淘宝交易成功还能申请退款吗(淘宝交易成功还有运费险吗)

    淘宝交易成功还能申请退款吗(淘宝交易成功还有运费险吗)

  • 滴滴在哪里更换电话号码(滴滴在哪里更换付款方式)

    滴滴在哪里更换电话号码(滴滴在哪里更换付款方式)

  • 苹果手机更新apple id设置是什么意思(苹果手机更新apple id设置更新不了怎么办)

    苹果手机更新apple id设置是什么意思(苹果手机更新apple id设置更新不了怎么办)

  • vivox20a可以用电信卡吗(vivox20a可以用电信卡吗?)

    vivox20a可以用电信卡吗(vivox20a可以用电信卡吗?)

  • 怎么在自己的手机上录制视频(怎么在自己的手机查别人的话费)

    怎么在自己的手机上录制视频(怎么在自己的手机查别人的话费)

  • 手机希腊符号怎么打(手机数学符号希腊字母怎么打)

    手机希腊符号怎么打(手机数学符号希腊字母怎么打)

  • ppt两个配色原则(ppt配色的两大基本原则)

    ppt两个配色原则(ppt配色的两大基本原则)

  • 苹果11主题在哪里设置(苹果11手机主题在哪)

    苹果11主题在哪里设置(苹果11手机主题在哪)

  • 接码平台能注册微信号吗(接码平台能注册软件吗)

    接码平台能注册微信号吗(接码平台能注册软件吗)

  • 腾讯投电视连接失败(腾讯电视怎么投到电视上)

    腾讯投电视连接失败(腾讯电视怎么投到电视上)

  • 手机被呼死了怎么办(电话被呼死可以报警吗)

    手机被呼死了怎么办(电话被呼死可以报警吗)

  • icad画圆弧的快捷键(绘制圆弧的快捷命令)

    icad画圆弧的快捷键(绘制圆弧的快捷命令)

  • Spring框架中使用了哪些设计模式及应用场景(spring框架使用教程)

    Spring框架中使用了哪些设计模式及应用场景(spring框架使用教程)

  • 漏报了残保金如何调整?
  • 购车增值税可以抵扣多少
  • 会计中罚款属于什么处理
  • 网上申购到发行多长时间
  • 发票税率金额如何得出
  • 税控服务费减免政策
  • 总公司设立分公司的决定
  • 净流动负债和流动负债
  • 报税时提示缺少相关组件怎么解决
  • 盈亏平衡点产量越高,项目风险越大
  • 收款凭证填写模板下载
  • 代扣和代垫
  • 一般纳税人财务报表月报还是季报
  • 金融企业发放贷款时发生的交易费用
  • 苗木发票抵扣公式
  • 企业如何运用内部招募
  • 股东转让股权印花税怎么交税
  • 地税迁移期间能开发票吗
  • 小规模纳税人税收政策2023
  • 完税凭证号是几位数
  • 机器人销售属于什么行业
  • 2020年运费发票备注栏新规定
  • 企业网银支持互联网专线
  • 鸿蒙工具栏在哪里
  • macos big sur将安装在macintosh hd
  • 期间费用率的意义
  • 调整上年度多计提的附加税
  • 在win7系统中,添加打印机驱动程序
  • 一种简单的快乐
  • PHP:xml_set_character_data_handler()的用法_XML解析器函数
  • php 钩子
  • 简易征收税务处理
  • 拆迁货币什么意思
  • 企业补充养老保险
  • 房产增值税计算公式2022最新
  • 什么是工程施工的总纲领
  • jquery箭头函数
  • cd播放模式
  • 注册公司填写从业人数多少合适
  • 利润表的本月数怎么算
  • 增值税专用发票上注明的价款含税吗
  • java 类型推导
  • mysql命令行如何命令行导出查询结果并导入
  • 支付宝支付高速公路发票怎么打印
  • 日常费用明细表格式
  • 水利基金申报表在哪找
  • 资产负债表坏账准备计入哪里科目
  • 培训费怎么收取
  • 存货盘亏处理报批
  • 个人所得税汇算清缴怎么计算
  • 企业所得税的税收筹划
  • 加工费的预付款是什么
  • 公司采购一直没有发票
  • 资金紧张怎么说
  • 小规模出口免税是什么意思
  • 付给农民的土地使用费
  • 股权转让的会计分录
  • 应付职工薪酬属不属于流动负债
  • 生产成本和制造费用期末有余额吗
  • 资产减值损失是费用类科目吗
  • mysql语句性能优化
  • sql server索引的使用
  • mac怎么自己定制
  • mac安装字体方法
  • 电脑系统不重装怎么恢复原状
  • Linux中环境变量的用法
  • WIN10安装介质不识别硬盘
  • win7激活2020
  • 使用netcat(瑞士军刀)进行文件传输
  • unity 3d资源
  • js原型作用
  • python的urllib
  • js uridecode
  • 陷阱类过关游戏
  • 总公司与分公司的法律责任
  • 税务局有事业单位编制吗
  • 企业所得税优惠事项管理目录2023
  • 北京社保三方协议
  • 各地税务机关
  • 港澳台人士可以在上海申请积分吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设