Kettle(Pentaho)实现web方式远程执行job或transformation
一、背景
公司在用kettle做数据etl,每做完一个job或transformation发布上线想要立即执行看数据效果的话每次都是找运维同学登陆服务器打开kettle找到对应的文件点击执行,整个过程效率低下,不仅占用运维时间,期间自己也在白白等待,浪费生命。
google “kettle remotely execute” 得知,这个是有解决方案的,其实kettle 本身就自带了此解决方案,只是一直忙于工作无(lan)暇(de)研究。大致就是利用kettle自带的Carte 开启一个web服务器,再加上job 或transformation做一点配置即可实现登录web来触发执行某一任务。
二、准备工作
此博客基于windows服务器
1.下载Java JDK,版本1.5以上,如果之前已经安装且版本混乱之类,直接先卸载再重新下载一个安装
2.下载kettle。kettle绿色无需安装,下载完之后解压到指定的文件夹即可,同时请配置系统环境变量(PENTAHO_JAVA_HOME),value指定到安装的jdk对应的jre的目录(如下图),并找到Spoon.bat点击打开kettle。

请注意,是指定到jre的目录,不要搞错

三、开启服务器
基于第二步准备工作之后,请确保能正确打开kettle 软件。如果有问题无法正常打开,google解决方案。
我们先看到kettle的根目录,5.0之后的kettle 在根目录下会有Carte.bat(.sh是linux系统下使用的),我们要使用的就是它

window下 打开cmd,cd切换到kettle的根目录:

然后执行命令行,开启一个web服务器。
carte.bat 127.0.0.1 8081
等待十几秒,如出现下图提示即表示服务器开启成功

这一步成功的前提是 PENTAHO_JAVA_HOME环境变量配置正确,不然会提示java.exe找不到错误。
成功之后我们就可以浏览器打开 http:127.0.0.1:8081 看效果了,会给一个弹出框要求你输入账号密码验证:

这个账号密码是什么呢?别急,我们回到kettle的根目录下,找到pwd文件夹,双击进入,发现如下几个文件:

咱们的账号密码就配置在里面,打开-8081的xml文件:
<?xml version="1.0"?>
-<slave_config>
<!-- Document description... - masters: You can list the slave servers to which this slave has to report back to. If this is a master, we will contact the other masters to get a list of all the slaves in the cluster. - report_to_masters : send a message to the defined masters to let them know we exist (Y/N) - slaveserver : specify the slave server details of this carte instance. IMPORTANT : the username and password specified here are used by the master instances to connect to this slave. -->
-<masters>
-<slaveserver>
<name>master1</name>
<hostname>localhost</hostname>
<port>8080</port>
<username>cluster</username>
<password>cluster</password>
<master>Y</master>
</slaveserver>
</masters>
<report_to_masters>Y</report_to_masters>
-<slaveserver>
<name>slave1-8081</name>
<hostname>localhost</hostname>
<port>8081</port>
<username>cluster</username>
<password>cluster</password>
<master>N</master>
</slaveserver>
</slave_config>
咱们开启的是一个slave服务器,所以看slaveserver里面配置的username 和password,对,默认的都是cluster,这里的配置值就是你登录的账号密码。现在可以登录配置的carte服务器了。

进来后发现并没有任何东西,这是正常现象,因为我们还需要配置一下kettle的 job 和transformation,到这一步整个web服务器的工作就算完成了。接下来就是kettle文件的配置了。
四、Kettle配置
1.打开kettle,并任意打开一个job 活着transformation ,在左部菜单选择view,菜单选项里面有个Slave Server,这里我们需要配置一下。

咱们new一个 slaveserver ,响应的值:

这里请注意,ip 和 port 必须和我们之前开启的web 服务器一致,点击ok保存之后,记得share一下记住下来。

2.配置 job 或 transformation 的run options
打开任意一个job或transformation,配run options ,如下图:

继续配置:

会产生一个新的tab,这里我们的配置就完成了。

再打开 http://127.0.0.1:8081看看,在job 列表里面已经出现了刚刚我们配置的job

我们就可以点进去,在web 里面控制这个job,是不是很方便?
Kettle(Pentaho)实现web方式远程执行job或transformation的更多相关文章
- SSH远程执行命令环境变量问题
SSH命令格式 usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address: ...
- Linux Shell远程执行命令(命令行与脚本方式)
需求:经常需要在一台服务器远程到其他节点的服务器上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了.介绍两种shell命令远程执行的方法. 方式一: s ...
- kettle安装部署及远程执行
一.windows环境 1.安装jdk 随意选择目录 只需把默认安装目录 \java 之前的目录修改即可 2.安装jre→更改→ \java 之前目录和安装 jdk 目录相同即可 注:若无安装目录要求 ...
- 首次远程安装 GlassFish 后以远程 Web 方式访问其后台管理系统出现错误的解决方法(修订)
首次远程安装 GlassFish 服务后,如果以远程 Web 方式访问其后台管理系统,会提示 Secure Admin must be enabled to access the DAS remote ...
- Saltstack远程执行(四)
Saltstack远程执行 语法例:salt '*' cmd.run 'w' - 命令:salt - 目标:'*' - 模块:cmd.run,自带150+模块,也可以自己写模块 - 返回:执行 ...
- python之实现批量远程执行命令(堡垒机)
python远程批量执行 我并不是一个专业的开发,我一直在学习linux运维,对于python也是接触不久,所以代码写的并不是很规范简洁. 前段时间一个同学找我一起做一个自动化运维平台,我对pytho ...
- CVE-2013-1347Microsoft Internet Explorer 8 远程执行代码漏洞
[CNNVD]Microsoft Internet Explorer 8 远程执行代码漏洞(CNNVD-201305-092) Microsoft Internet Explorer是美国微软(Mic ...
- 使用TreeDMS进行MySQL数据库的Web页面远程管理
在互联网应用蓬勃发展的时代背景下,各种各样的网络平台,网络应用,移动应用层出不穷,那么这些应用及平台都需要使用到数据库.如何高效的对数据进行日常维护.管理.监控成为迫切需要解决的问题. 基于web的方 ...
- ASP.NET Web API 控制器执行过程(一)
ASP.NET Web API 控制器执行过程(一) 前言 前面两篇讲解了控制器的创建过程,只是从框架源码的角度去简单的了解,在控制器创建过后所执行的过程也是尤为重要的,本篇就来简单的说明一下控制器在 ...
随机推荐
- 读书笔记——thinking in java
1.一切都是对象,用引用操作对象 1.1程序存储的地方 引用存放在堆栈区(通用的RAM),所有对象存储在堆(一种通用的内存池).堆和堆栈的区别:堆栈中的这些引用,java系统是要知道确切的生命周期,堆 ...
- 完美解决ie浏览器location.href不刷新页面的问题,进入页面只刷新一次
/* ie不刷新列表bug */try{ var agent = navigator.userAgent.toLowerCase(); var ieflag = /(msie\s|trident.*r ...
- Android Camera 调用流程总结
1.总体介绍 Android Camera框架从整体上看是一个client/service架构.有两个进程,一个是client进程,可以看成AP端,主要包括Java代码和一些native层的c/c+ ...
- (四)Jquery Mobile表单
Jquery Mobile表单与列表 一.JM表单 1.表单 普通html表单 效果: 2.只能输入数字的表单 效果: ...
- StringBuffer与StringBuilder的作用与区别
来自为知笔记(Wiz)
- 从内存中加载DLL Delphi版(转)
源:从内存中加载DLL DELPHI版 原文 : http://www.2ccc.com/article.asp?articleid=5784 MemLibrary.pas //从内存中加载DLL D ...
- 使用Emacs中的org-mode写cnblogs之图片插入
.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium ...
- 《OpenCV3 计算机视觉--Python语言实现 第二版》源代码及纠错
1.源代码下载地址 <OpenCV3 计算机视觉--Python语言实现 第二版>由我们翻译,英文书名<Learning OpenCV3 Computer Vision with P ...
- PHP生成带有干扰线的验证码,干扰点、字符倾斜
PHP生成验证码的类代码,本验证码类支持生成干扰点.干扰线等干扰像素,还可以使字符倾斜.在类中你可以定义验证码宽度.高度.长度.倾斜角度等参数,后附有用法: <?php class class_ ...
- iOS 之 UITextView
_lableAssess = [[UITextView alloc] init]; [_lableAssess setFrame:CGRectMake(left2, top2, width2, siz ...