Kettle Carte 使用示例
Kettle Carte 是 Pentaho Data Integration(Kettle)的核心组件之一,主要作为轻量级 HTTP 服务器,用于远程执行、监控和管理 Kettle 作业(Job)与转换(Trans)。以下是其核心功能、使用场景及具体示例:
一、Carte 的核心作用
分布式任务执行 支持将作业/转换分发到多台服务器(Slave Server)并行执行,适用于大数据量场景下的负载均衡,通过集群模式提升处理效率。
远程任务调度 提供 HTTP API 触发任务执行,无需本地运行 Kettle 客户端,支持参数化调用,适合集成到自动化流程或第三方系统。
资源隔离与权限管理 可配置独立资源库(文件或数据库资源库),通过 XML 文件定义端口、IP 绑定及用户认证(默认用户 cluster/cluster)。
状态监控与日志管理 提供 Web 界面实时查看任务状态、执行日志及资源占用情况,支持 JMX 监控 JVM 性能指标。
二、Carte 使用示例
1. 启动 Carte 服务
-
单节点启动 指定 IP 和端口启动服务:
# Linux
./carte.sh 192.168.1.100 8080# Windows
Carte.bat 192.168.1.100 8080 -
配置文件启动 使用 XML 配置文件定义高级参数(如集群配置、资源库路径):
<!– carte-config-master.xml –>
<slave_config>
<hostname>192.168.1.100</hostname>
<port>8080</port>
<username>cluster</username>
<password>cluster</password>
<repository>
<name>prod-repo</name>
<username>admin</username>
<password>admin123</password>
</repository>
</slave_config>启动命令:
./carte.sh pwd/carte-config-master.xml
2. 远程调用任务 API
-
执行作业(Job) 通过 executeJob 接口触发任务并传递参数:
curl -u "cluster:cluster" "http://192.168.1.100:8080/kettle/executeJob/?rep=prod-repo&job=/etl/daily_sales&P1=20231001"
-
执行转换(Trans) 通过 executeTrans 接口调用转换文件:
curl -u "cluster:cluster" "http://192.168.1.100:8080/kettle/executeTrans/?trans=/data/transformations/data_clean.ktr&user=admin"
3. 集群配置示例
- 静态集群配置 在 XML 中定义主节点和从节点:<slave_config>
<masters>
<slaveserver>
<name>master-node</name>
<hostname>192.168.1.100</hostname>
<port>8080</port>
<master>Y</master>
</slaveserver>
</masters>
<slaveserver>
<name>slave-node1</name>
<hostname>192.168.1.101</hostname>
<port>8081</port>
<get_properties_from_master>master-node</get_properties_from_master>
</slaveserver>
</slave_config>
任务启动后会自动分发到从节点执行。
4. 日志与监控
-
查看任务状态 访问 Web 界面 http://192.168.1.100:8080/kettle/status/,输入认证信息后可查看运行中的任务及日志。
-
JMX 监控 修改启动脚本启用 JMX:
# 在 carte.sh 中添加 JVM 参数
OPT="$OPT -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9180 -Dcom.sun.management.jmxremote.authenticate=false"使用 JConsole 或 Prometheus 监控 JVM 指标。
评论前必须登录!
注册