IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Kettle【环境搭建 02】Linux环境 Kettle pdi-ce-9.0.0.0-423 安装部署 carte 服务运行及 Java 集群调用实例(安装包1.85G+测试ktr |kjb |源码) -> 正文阅读

[系统运维]Kettle【环境搭建 02】Linux环境 Kettle pdi-ce-9.0.0.0-423 安装部署 carte 服务运行及 Java 集群调用实例(安装包1.85G+测试ktr |kjb |源码)

资源链接在文章末尾,包含文件:

在这里插入图片描述

1.安装Kettle并启动carte服务

1.1 Kettle安装

Kettle 是解压即用的,这次是在 Linux 环境下部署,所以需要解压工具rar,没有安装的小伙伴可以自行安装或参考《Linux环境 rar工具安装使用》进行安装,这里不再赘述。

# 安装仅需解压
unrar x data-integration_v9.rar
# 由于解压后 .sh 类的文件没有可执行权限 需要进行赋权
chmod +x ./*.sh

1.2 carte服务启用

carte 服务的运行参数:

[root@tcloud data-integration_v9]# ./carte.sh
#######################################################################
WARNING:  no libwebkitgtk-1.0 detected, some features will be unavailable
    Consider installing the package with apt-get or yum.
    e.g. 'sudo apt-get install libwebkitgtk-1.0-0'
#######################################################################
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0

Usage: Carte <Interface address> <Port> [-h] [-p <arg>] [-s] [-u <arg>]
or
Usage: Carte <Configuration File>
Starts or stops the carte server.
     -h,--help               This help text
     -p,--password <arg>     The administrator password.  Required only if
                             stopping the Carte server.
     -s,--stop               Stop the running carte server.  This is only
                             allowed when using the hostname/port form of the
                             command.
     -u,--userName <arg>     The administrator user name.  Required only if
                             stopping the Carte server.

Example: Carte 127.0.0.1 8080
Example: Carte 192.168.1.221 8081

Example: Carte /foo/bar/carte-config.xml
Example: Carte http://www.example.com/carte-config.xml
Example: Carte 127.0.0.1 8080 -s -u cluster -p cluster

开启 carte 服务:

# 前台进程开启
./carte.sh tcloud 8081
# 开启成功
2022/03/11 10:00:37 - Carte - Installing timer to purge stale objects after 1440 minutes.
2022/03/11 10:00:38 - Carte - Created listener for webserver @ address : tcloud:8081

开启后访问 Created listener for webserver @ address : tcloud:8081用户名和密码均为cluster

在这里插入图片描述
登录成功后显示Slave server menu点击Show status后状态页面是相当简洁的:

在这里插入图片描述

2.Linux下脚本运行测试

2.1 ktr脚本内容

手动执行test.ktr这个脚本的内容很简单:生成10个16位的 MasterCard 号码并输出成 txt 文件。

在这里插入图片描述

2.2 执行及结果

# 执行脚本命令
sh ./pan.sh -file:./test.ktr

# INFO 信息不再贴出 只展示结果
2022/03/11 10:31:29 - Pan - Start of run.
2022/03/11 10:31:29 - Carte - Installing timer to purge stale objects after 1440 minutes.
2022/03/11 10:31:30 - test - Dispatching started for transformation [test]
2022/03/11 10:31:30 - 生成随机的信用卡号.0 - Finished processing (I=0, O=0, R=10, W=10, U=0, E=0)
2022/03/11 10:31:30 - 文本文件输出.0 - Finished processing (I=0, O=11, R=10, W=10, U=0, E=0)
2022/03/11 10:31:30 - Pan - Finished!
2022/03/11 10:31:30 - Pan - Start=2022/03/11 10:31:29.728, Stop=2022/03/11 10:31:30.311
2022/03/11 10:31:30 - Pan - Processing ended after 0 seconds.
2022/03/11 10:31:30 - test -
2022/03/11 10:31:30 - test - Step 生成随机的信用卡号.0 ended successfully, processed 10 lines. ( - lines/s)
2022/03/11 10:31:30 - test - Step 文本文件输出.0 ended successfully, processed 10 lines. ( - lines/s)

在这里插入图片描述
脚本正常执行,数据也正常输出了,但是 😢 Kettle slave server status页面并没有这个转换的状态日志信息。

3.Java代码实现远程调用

3.1 依赖

Java代码远程执行转换或作业要添加新的依赖,其他依赖可查看《Java环境实现KJB和KTR脚本文件执行v9版本9.0.0.0-423相关依赖说明》

 <!--java.lang.ClassNotFoundException: org.owasp.encoder.Encode-->
<dependency>
	<groupId>org.owasp.encoder</groupId>
	<artifactId>encoder</artifactId>
	<scope>system</scope>
	<version>1.2</version>
	<systemPath>${project.basedir}/lib/encoder-1.2.jar</systemPath>
</dependency>

<!--java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpPost-->
<dependency>
	<groupId>org.apache.httpcomponents</groupId>
	<artifactId>httpclient</artifactId>
	<scope>runtime</scope>
	<version>4.5.9</version>
	<systemPath>${project.basedir}/lib/httpclient-4.5.9.jar</systemPath>
</dependency>

3.2 脚本

一个简单的test.kjb脚本,生成 kettle-job-test.txt 文件:
在这里插入图片描述

3.2 Job远程调用源码

Demo源码:

        // 初始化执行环境
        KettleEnvironment.init();

        // 节点服务参数
        SlaveServer remoteSlaveServer = new SlaveServer();
        remoteSlaveServer.setHostname("tcloud");
        remoteSlaveServer.setPort("8081");
        remoteSlaveServer.setUsername("cluster");
        remoteSlaveServer.setPassword("cluster");

        // 配置远程服务
        JobExecutionConfiguration jobExecutionConfiguration = new JobExecutionConfiguration();
        jobExecutionConfiguration.setRemoteServer(remoteSlaveServer);

        // 执行kjb
        String path = "E:\\yuanzheng-codebase\\m-framework\\kettle-git\\file\\test.kjb";
        FileSystemResource r = new FileSystemResource(path);
        JobMeta jobMeta = new JobMeta(r.getInputStream(), null, null);
        String carteObjectId = Job.sendToSlaveServer(jobMeta, jobExecutionConfiguration, null, null);

        // 获取状态信息
        System.out.println("carteObjectId=" + carteObjectId);
        SlaveServerJobStatus jobStatus;
        do {
            Thread.sleep(5000);
            jobStatus = remoteSlaveServer.getJobStatus(jobMeta.getName(), carteObjectId, 0);
            System.out.println(jobStatus.getResult());
        } while (jobStatus.isRunning());
        System.out.println(jobStatus.getResult());

        // 关闭执行环境
        KettleEnvironment.shutdown();

调用结果:

// 执行时打印的日志信息
carteObjectId=3a41513f-6d02-4e25-be6f-f599e37870bb
nr=0, errors=0, exit_status=0, result=true
nr=0, errors=0, exit_status=0, result=true

Kettle slave server status页面也看到了Job的状态:

在这里插入图片描述
执行详情:

在这里插入图片描述
在服务器上也看到了生成的文件:

在这里插入图片描述
删掉生成的文件后,在web页面上可以再次执行:

在这里插入图片描述
但是在服务器上找不到 test.kjb 文件,重启 carte 服务之后发现 Jobs 信息没有了,可以判断 test.kjb是放在内存中的。

3.3 Trans远程调用代码

        // 初始化运行环境
        KettleEnvironment.init();

        // 节点服务参数
        SlaveServer remoteSlaveServer = new SlaveServer();
        remoteSlaveServer.setHostname("tcloud");
        remoteSlaveServer.setPort("8081");
        remoteSlaveServer.setUsername("cluster");
        remoteSlaveServer.setPassword("cluster");

        // 配置远程服务
        TransExecutionConfiguration transExecutionConfiguration = new TransExecutionConfiguration();
        transExecutionConfiguration.setRemoteServer(remoteSlaveServer);

        // 执行ktr
        String path = "E:\\yuanzheng-codebase\\m-framework\\kettle-git\\file\\test.ktr";
        TransMeta transMeta = new TransMeta(path, new Variables());
        String carteObjectId = Trans.sendToSlaveServer(transMeta, transExecutionConfiguration, null, null);

        // 获取状态信息
        System.out.println("carteObjectId=" + carteObjectId);
        SlaveServerTransStatus transStatus;
        do {
            Thread.sleep(5000);
            transStatus = remoteSlaveServer.getTransStatus(transMeta.getName(), carteObjectId, 0);
            System.out.println(transStatus.getResult());
        } while (transStatus.isRunning());
        System.out.println(transStatus.getResult());

        // 关闭执行环境
        KettleEnvironment.shutdown();

web页面状态信息:

在这里插入图片描述
比Job要多出来 Step detail信息。

【资源链接】

链接:https://pan.baidu.com/s/19Jv18ZG_QrXnXmdR7NbQKw
提取码:ti4y

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 18:00:11  更:2022-03-12 18:03:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:34:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码