kettle开发-远程执行作业

简介: kettle开发-远程执行作业

前言:


刚开始研究远程执行作业,是为了处理在家里可以在自己电脑上远程处理服务器的作业,后来经过一次次研究,好像事情有点不朝我刚预想的方向转动。但最终还是完成了远程执行的功能,因此记录下对应远程执行作业的一些方法,并校正网上的一些错误,方便一起学习进步。这是最终的执行结果。


一、远程执行


1、先看定义


"Kettle远程执行"通常指在一个计算机上通过网络连接另一台计算机,并在远程计算机上执行Kettle ETL(Extract, Transform, Load)任务或转换。这通常需要使用一些远程连接工具或软件,例如SSH、Telnet或VNC等。这种方式允许用户在不亲自操作远程计算机的情况下,轻松地在远程计算机上运行和监控Kettle任务或转换。


2、前置条件


2.1网络畅通


从上面的定义可以知道,需要远程服务器/电脑来被远程服务器/电脑之间网络畅通。


2.2数据库DB连接一致


从字面意思来看就是都能访问到对应的数据库,而且对应数据JDBC信息都在两端计算机。并且对应数据库连接名称一致。即在两端有相同的DB连接,即IP/端口/资源名称都一致。

PS:在网上的教程一般是叫你直接替换你远程端的repositories.xml文件,如果你两端的DB连接是不一致的,这样可能会导致远程端的DB连接出现问题,导致远程端的作业出现异常。对应替换repositories.xml文件的操作,可参考下面的操作。


二、实战案例-Windows


1、初始配置-被远程端


1.1启动carte服务


启动cmd,将cmd目录路径切换至被远程端kettle 安装目录Carte.bat的位置,如此次被远程端Carte.bat位于D:\kettle\pdi-ce-5.4.0.1-130\data-integration下。


1.2cmd 命令启动carte服务


此时启动carte服务大致分为下面三步:

--win+R启动运行框,输入cmd,弹出cmd黑框
--切换至D盘
D:
--切换至Carte.bat对应目录
cd D:\kettle\pdi-ce-5.4.0.1-130\data-integration
--启动Carte服务,如 carte 10.100.21.34 8080
carte ip 端口   --如 carte 10.100.21.34 8080

当出现这句话的时候,证明carte服务启动成功。


2、初始化-远程端


除了上面说的前置条件,即保持两端网络畅通+有相同的DB连接。此时还需要在远程端建立一个子服务器。

如上图所示我们在kettle的应用端的主对象树,对应下面的子服务器,右键点击新建子服务器,对应服务器名称可以自定义,然后就是上面启动好的Crate服务的ip和端口,默认的用户名密码都是cluster,这样就完成了对应子服务的配置。


3、实际应用


3.1、错误案例


在实际应用中也非常简单,我们只需要按正常配置对应的作业,需要注意的是,要保证对应被调用的转换文件或者作业在被远程端是存在的。即可以在被远程端没有对应的作业,但是需要在对应位置保存对应的转换即被远程的.ktr文件。

如上图所示在被远程端,对应文件夹存在对应test_zy.ktr的文件。因此我们在远程端配置作业的时候,在被调用的转换配置对应目录的转换即可。如下图所示。

PS:在此处,我们最好使用绝对路径,因为我们在被远程端是可以没有对应的作业的,而且使用了相对路径的话,会提示文件不存在,导致carte,默认会从carte所在盘符去扫描对应的转换,及此时默认会认为需远程执行的转换位于D:\test_zy.ktr的。


即会出现如下报错,这也是最容易忽略的问题,血的教训啊。

因此使用绝对路径,绝对路径,绝对路径!!!重要的事情说三遍!


3.2、正确案例


上面介绍了实际应用中的一些配置和容易出现错误的地方,下面来介绍正确远程执行作业是怎样的经过。


此时我们远程执行作业时,我们选择“远程执行”,对应远程主机选择我们配置的子服务器的主机即可。点击后会跳转至远程执行作业的控制面板。

如下图所示我们可以在远程执行控制面板查看对应远程执行作业的整个过程。

如上图所示,我们在控制面板就可以看到对应的执行过程,及对应的执行日志。对应日志内容和本地执行差不多,就是数据整个处理过程。


当面我们也可以在被远程端的carte服务看到对应整个执行过程的日志。


三、总结


其实kettle的远程执行的设计之初,是为了并行开发和集群做的准备。因此当多人开发的时候,我们可以建议共享资源池,这样前面说的前置条件都能轻松完成了。对应网络肯定是畅通的,而且DB连接也是一致的。因为是共享的资源池,我们也能轻松同步对应的转换或者作业到不同的服务器或者电脑。这样我们就可以轻松在本地或者远程执行最新的作业来保证作业执行的最终效果是我们想要的。


当然,如果我们只是想远程执行部分作业,来临时处理一些作业的需求,可参考我的上述操作。当然这样也更好去理解kettle的集群的背后原理。因此我们根据实际应用需求灵活选择吧~


相关文章
|
4月前
|
JavaScript 前端开发 Java
kettle开发篇-作业
kettle开发篇-作业
73 0
|
4月前
|
数据采集 Oracle 关系型数据库
kettle开发-循环驱动作业
kettle开发-循环驱动作业
147 0
|
4月前
kettle开发篇-空操作
kettle开发篇-空操作
83 0
|
2月前
|
SQL 数据采集 DataWorks
DataWorks产品使用合集之依赖脚本实际运行成功了,但其状态却显示为未运行,从而导致下游脚本没有运行,是什么原因
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
NoSQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之应用程序模式的作业如何从检查点保存的地方启动
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL 存储 Java
hive:后台启动、和脚本化运行
hive:后台启动、和脚本化运行
1152 0
|
开发者 Python
命令行工具提交和管理作业 | 学习笔记
快速学习命令行工具提交和管理作业
命令行工具提交和管理作业 | 学习笔记
|
XML Linux 调度
|
Java Web App开发 Python
seleniumGrid分布式远程执行测试脚本
seleniumGrid分布式远程执行测试脚本执行UI自动化测试脚本时,不仅可以在本地执行,也可以远程指定某计算机执行测试脚本,seleniumGrid为我们提供了这类服务,但还需要自己搭建环境。 一、本地计算机需要准备java环境和selenium-server-standalone-4.0.0-alpha-2.jar包,jar包主要开启本机的hub节点(理解成控制机)。
1451 0