java远程调用kettle说明与代码

2019-09-01 13:31

Kettle远程任务执行

第1页 共7页

1.

2. 远程服务器

2.1. 说明

KETTLE 提供了名为carte的web server 程序,也叫slave server ,启动该程序可以把主机作为kettle的运行服务器,可以接收其他kettle客户端发送过来的ETL任务。

此功能为ETL任务分布式执行提供了方便。可以在多个服务器上运行carte web server,在调用不同的ETL任务时,指定不同的目标服务器执行。

2.2. 启动方法

kettle提供了carte.bat和carte.sh(linux)批处理脚本来启动子服务器,这种启动方式分为两种

2.2.1.

使用主机号和端口号

Carte 127.0.0.1 8080 Carte 192.168.1.221 8081

2.2.2.

使用配置文件

Carte /foo/bar/carte-config.xml

Carte http://www.example.com/carte-config.xml

如果cluster schema中定义了Dynamic cluster选项,则必须使用配置文件来进行启动,当这个子服务器启动时,它需要向配置文件中“masters”中列出的主服务器列表中汇报其运行状态(通过调用主服务器的registerSlave服务),已达到动态地设置子服务器的目的。配置文件格式

master1

第2页 共7页

localhost 8080

cluster cluster Y

Y

slave4-8084 localhost 8084

cluster cluster N

这个配置文件主要包括以下几个节点

? masters: 这里列出来的服务器是当前子服务器需要向其汇报状态的主服

务器。如果当前这个子服务器是主服务器,则它将连接其它的主服务器来获得这个集群中的所有子服务器。

? report_to_masters : 如果为Y,则表示需要向定义的主服务器发送消息以

表明该从属服务器存在

? slaveserver : 这里定义的就是当前carte实例运行时需要的子服务器的配

置情况

这里定义的username和password在向主服务器调用Register服务时连接主服务器时提供的安全设置。 在 部分,你可以使用

参数,这个参数的优先级高于参数 ,如果你的机器中安装有多个网卡,这个设置可以起作用。

第3页 共7页

2.2.3.

程序启动

Kettle提供了org.pentaho.di.www.Carte类,你可以通过该类提供的函数来

启动或者停止子服务器。 ? 启动子服务器

SlaveServerConfig config = new SlaveServerConfig(hostname, port, false); Carte. runCarte(config);

? 停止子服务器

carte.getWebServer().stopServer(); 2.3. 子服务器内幕

我们前面提到过子服务器实际上就是一个web server,该web server是基

于Jetty这个嵌入式的开源servlet容器。

这个web server主要是提供转换运行的环境,另外一个重要的功能通过提供servlet来在客户端、主服务器和从属服务器之间进行通讯和控制。主服务器和从属服务器之间是通过httpClient来进行通讯的,通讯时传递的数据是xml格式。通过提供的servlet,可以实现启动、停止、暂停转换或者作业、获得转换或者作业的状态、注册子服务器、获得子服务器的列表等等 Kettle主要提供了以下的几种基于servlet的服务 ? GetRootServlet:获得Carte的根目录

? GetStatusServlet:获得在服务器上运行的所有的转换和作业的状态 ? GetTransStatusServlet:获得在服务器上运行的某个指定的转换的每个步

骤的运行状态。

? PrepareExecutionTransServlet:让服务器上的某个指定的转换做好运行的

准备。

? StartTransServlet:执行服务器上的某个指定的转换 ? PauseTransServlet:暂停或者重新运行某一个转换 ? StopTransServlet:停止正在运行的转换 ? CleanupTransServlet:清理运行转换时的环境

? AddTransServlet:向子服务器中增加某个转换。如果服务器中有正在运

行或者准备运行的相同名字的转换,则抛出异常。

第4页 共7页

? AllocateServerSocketServlet:分配一个新的socket端口号。这个端口号是

基于你在定义cluster schema中设置的端口号,依次加1 ? StartJobServlet:执行服务器上某个指定的作业 ? StopJobServlet:停止正在运行的作业

? GetJobStatusServlet:获得某个指定作业的状态 ? AddJobServlet:向当前的子服务器中添加某个作业。

? RegisterSlaveServlet:注册某个服务器的信息。服务器信息包括子服务器

是否活动、最新活动的时间、最新不活动的时间。这个在dynamic cluster中需要用到,由从属服务器向主服务器汇报当前状态。 ? GetSlavesServlet:获得集群中子服务器的信息

? AddExportServlet:以zip文件的形式向caret服务器传递作业或者转换信

息,并将信息加入到服务器中。

3. 运行任务

3.1. 在spoon中运行

kettle的集成设计环境spoon中,你可以选择转换中的“运行”菜单项,或者

按F9快捷键,弹出以下的窗口

这里有三个选项来决定转换是以什么方式来执行

? 本地执行: 转换或者作业将在你现在使用的JVM中运行。

第5页 共7页


java远程调用kettle说明与代码.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:物理实验教学中心建设三年发展规划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: