kettle开发-Day42-远程执行作业

news2025/1/18 14:42:16

目录

前言:

 一、远程执行

        1、先看定义

        2、前置条件

        2.1网络畅通

        2.2数据库DB连接一致

   二、实战案例-Windows     

        1、初始配置-被远程端

        1.1启动carte服务

         1.2cmd 命令启动carte服务

         2、初始化-远程端

        3、实际应用

        3.1、错误案例

        3.2、正确案例

 三、总结

前言:

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

 一、远程执行

        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的集群的背后原理。因此我们根据实际应用需求灵活选择吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/926132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

react import 引用失效 node_modules/@types/react/index.d.ts not a module.ts

问题描述 react ts的项目,正常使用vs code打开, 先运行 npm install 安装依赖过后 结果所有的react引用依旧标红,如下图所示: 点击红线 show problem(查看问题),提示node_modules/types/react/index.d.ts not a mod…

day-31 代码随想录算法训练营(19)贪心part01

455.分发饼干 思路一:贪心思路,大饼干先分给大胃口 思路二:小饼干先分给小胃口 376.摆动序列 分析摆动:记 presub 为前面与当前数之差,lastsub 为当前与后面数之差 思路: 1.正常摆动时,需要 …

Talk | 上海交通大学官同坤:识别任意文本,隐式注意力与字符间蒸馏在文本识别中的应用

本期为TechBeat人工智能社区第525期线上Talk! 北京时间8月23日(周三)20:00,上海交通大学博士生—官同坤的Talk已准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “隐式注意力与字符间蒸馏在文本识别中的应用”,分享了识别…

基于Jenkins+Git+Ansible 发布PHP 项目-------从小白到大神之路之学习运维第88天

第四阶段提升 时 间:2023年8月25日 参加人:全班人员 内 容: 基于JenkinsGitAnsible 发布PHP 项目 目录 基于JenkinsGitAnsible 发布PHP 项目 一、部署PHP 运行环境 二、主机环境配置 三、Tomcat主机操作: 四、Jenkins主…

【PHP】echo 输出数组报Array to string conversion解决办法

代码&#xff1a; <?PHP echo "Hello World!";$demoName array("kexuexiong","xiong");echo "<pre>";var_dump($demoName);echo $demoName; print_r($demoName);echo "</pre>"; ?>输出结果&#xff1…

【点云分割】points3d框架学习01 —— 安装和配置

安装 $ pip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 $ pip install torch-points3d $ pip install ipython $ pip install trame $ pip install h5py $ pip install gdown案例 from to…

自动化测试 —— Pytest fixture及conftest详解

前言 fixture是在测试函数运行前后&#xff0c;由pytest执行的外壳函数。fixture中的代码可以定制&#xff0c;满足多变的测试需求&#xff0c;包括定义传入测试中的数据集、配置测试前系统的初始状态、为批量测试提供数据源等等。fixture是pytest的精髓所在&#xff0c;类似u…

AD(第三部分---PCB封装库的创建方法及现有封装调用)

封装库可以理解成实物图 PCB封装是我们电子设计图和实物图之间的映射体&#xff0c;具有精准数据的要求。 16.常见CHIP封装的创建(电阻 容SOT二极管) 下文做的是1N589W二极管的封装库 首先要找到产品规格书&#xff0c;重要部分(三视图尺寸&#xff0c;分别是顶视图&#xf…

php插件Workerman聊天室示例

chat.php内容如下 <?php//使用workerman&#xff0c;只需引入这个文件require_once "workerman-4.0/Autoloader.php";//创建服务器&#xff0c;监听3000端口$wsServernew \Workerman\Worker("websocket://127.0.0.1:3000");$wsServer->onConnectfu…

Android Studio开发之路 (五)导入OpenCV以及报错解决

一、步骤 官网下载opencv包&#xff08;我下的是4.7.0&#xff09;并解压&#xff0c;openvc官网 先创建一个空项目&#xff0c;简单跑一下能正常输出helloworld 点击file->new->Import Module选择解压之后的opencv-android-sdk文件夹中的SDk文件夹&#xff0c; modu…

城市管理革命,AI药方解决城市病烦恼!

引言&#xff1a;现代中文语境的“城市”是中国近代逐渐与世界接轨的舶来词语&#xff0c;根据“city”翻译而来&#xff0c;由“城”与“市”组合而成&#xff0c;其中“城”是由军事防御产生的&#xff0c;属于行政地域概念&#xff0c;“市”是由商品交换&#xff08;市场&a…

[系统] 电脑突然变卡 / 电脑突然** / 各种突发情况解决思路

今天来公司办公&#xff0c;开机之后发现电脑出现各种问题&#xff0c;死机、卡顿、点什么都加载&#xff0c;甚至开一个文件夹要1分钟才能打开&#xff0c;花了2个小时才解决&#xff0c;走了很多弯路&#xff0c;其实早点想通&#xff0c;5分钟就能解决问题&#xff0c;所以打…

无人机甚高频无线电中继通讯U-ATC118

简介 甚高频无线电中继通讯系统使用经过适航认证的机载电台连接数字网络传输模块&#xff0c;通过网络远程控制无缝实现无人机操作员与塔台直接语音通话。无人机操作员可以从地面控制站远程操作机载电台进行频率切换、静噪开关、PTT按钮&#xff0c;电台虚拟面板与真实面板布局…

肺功能指标 fev1 frc 肺指标 呼吸参数 fev1 pre-bd

肺功能报告不会看&#xff1f;手把手教你识别各种参数&#xff01; - 丁香园 (dxy.cn) pred是predict的缩写&#xff0c;中文的解释意思为预计&#xff0c;fev1&#xff05;pred是患者做肺功能检查时体现出来。患者行肺功能检查时做最大吸气至肺总量后&#xff0c;开始做用力呼…

C++学习|CUDA编程入门

CUDA编程入门 GPU介绍CUDA 介绍NVCC——CUDA编译器cu/cuh文件——CUDA文件核函数——操作GPU线程模型——CUDA逻辑结构CUDA程序运行流程CUDA内存管理 GPU介绍 GPU&#xff08;Graphics Processing Unit&#xff0c;图形处理器&#xff0c;显卡&#xff09;&#xff1a;最早主要…

第三方电容笔支持随手写吗?开学季平价好用电容笔

作为一个苹果的忠实粉丝&#xff0c;我知道很多关于数码产品的事情。而电容笔&#xff0c;也是iPad平板的一个重要配件之一&#xff0c;许多人购买iPad后&#xff0c;都希望拥有一支好用的电容笔&#xff0c;但又不知道如何选择。本人用过30余款电容笔&#xff0c;为方便各位朋…

C++信息学奥赛1142:单词的长度

#include <iostream> #include <string> using namespace std; int main() {string str1;// 输入一行字符串getline(cin,str1);int n0;for(int i0;i<str1.length();i){if(str1[i] ){while (str1[i1] ){i; // 跳过连续的空格}cout<<n<<","…

js传参没有反应

js反应如果传的参是字符串, 则不能直接传, 需要加上双引号 下面这种是传数值的形式:

【java】【idea2023版】Springboot模块没有.iml文件的问题

目录 方法一&#xff1a; 1、首先鼠标选中对应的对应的模块 &#xff0c;按两下Ctrl键 2、project中选择对应的模块 3、运行mvn idea:module 命令​编辑 方法二&#xff1a; 1、可以右键点击open Terminal 2、然后在打开的Terminal里输入 方法一&#xff1a; 1、首先鼠…

基于HarmonyOS ArkUI实现音乐列表功能

本节将演示如何在基于HarmonyOS ArkUI的List组件来实现音乐列表功能。 本文涉及的所有源码&#xff0c;均可以在文末链接中找到。 活动主页 华为开发者论坛 规则要求具体要求如下&#xff1a; 第1步&#xff1a;观看<HarmonyOS第一课>“营”在暑期•系列直播&#x…