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 控制器执行过程(一) 前言 前面两篇讲解了控制器的创建过程,只是从框架源码的角度去简单的了解,在控制器创建过后所执行的过程也是尤为重要的,本篇就来简单的说明一下控制器在 ...
随机推荐
- IOS中集合视图UICollectionView中DecorationView的简易使用方法
转载自: http://www.it165.net/pro/html/201312/8575.html Decoration View是UICollectionView的装饰视图.苹果官方给的案例 ...
- FreeRTOS代码剖析
FreeRTOS代码剖析之1:内存管理Heap_1.c FreeRTOS代码剖析之2:内存管理Heap_2.c FreeRTOS(V8.0.1)系统之xTaskGenericCreate() ...
- php中var_dump() 打印出一个对象的时候,信息怎么看?
php 的一个依赖注入容器, 说白了,就是用php 的反射类,来在运行的时候动态的分析类具有的函数,以及动态分析函数的参数, 从而实例化类,并执行类的方法. 另外,php 中的 typehint 还是 ...
- 类似java.lang.NoClassDefFoundError: org/jaxen/JaxenException解决方法
在使用dom4j的xpath时出现java.lang.NoClassDefFoundError: org/jaxen/JaxenException的异常,原因是dom4j引用了jaxen jar包,而 ...
- CollapsingToolbarLayout学习笔记
CollapsingToolbarLayout包裹 Toolbar 的时候提供一个可折叠的 Toolbar,一般作为AppbarLayout的子视图使用. <?xml version=" ...
- MySQL 索引的使用
一.or 的使用 (1)MySQL版本大于 5.x 的会使用 index merge 功能,即可以将多个单列索引集合起来使用,不过在查询时使用 or 的话,引擎为 myisam 的会开启 index ...
- [iOS] 响应式编程开发-ReactiveCocoa(二)
RAC实现图片下载功能 在实现异步RAC下载图片的过程中,需要注意以下几点: • 通过 NSURLConnection 对象的 +(RACSignal *)rac_sendAsynchronousRe ...
- Spark 的combineByKey函数
在Spark中有许多聚类操作是基于combineByKey的,例如group那个家族的操作等.所以combineByKey这个函数也是比较重要,所以下午花了点时间看来下这个函数.也参考了http:// ...
- cocoaPods的安装使用 以及 Carthage
http://cnbin.github.io/blog/2015/05/25/cocoapods-an-zhuang-he-shi-yong/ 按照这个步骤就OK Note:当引入已有的project ...
- Elasticsearch基础教程
Reference: http://blog.csdn.net/cnweike/article/details/33736429 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概 ...