如何通过命令行在Carte Server上运行Pentaho作业或转换?
如何通过命令行在Carte Server上运行Kettle作业/转换
前提条件
- 确保Pentaho Server内嵌的Carte Server已启动,且
repositories.xml和slave-server-config.xml配置正确 - 确认Carte Server的访问地址(默认通常为
http://localhost:8080/kettle/carte)和认证信息(默认用户名/密码为cluster/cluster)
方法1:通过pan.sh/kitchen.sh提交任务到Carte Server
直接利用脚本的命令行参数,将任务提交到已运行的Carte Server进程,避免每次启动独立JVM。
运行转换(pan.sh)示例
./pan.sh \ -rep="你的仓库名称" \ -trans="目标转换名称" \ -user="仓库登录用户名" \ -pass="仓库登录密码" \ -carte="http://carte服务器IP:端口/kettle/carte" \ -carte-user="Carte认证用户名" \ -carte-pass="Carte认证密码"
运行作业(kitchen.sh)示例
./kitchen.sh \ -rep="你的仓库名称" \ -job="目标作业名称" \ -user="仓库登录用户名" \ -pass="仓库登录密码" \ -carte="http://carte服务器IP:端口/kettle/carte" \ -carte-user="Carte认证用户名" \ -carte-pass="Carte认证密码"
核心参数说明:
-carte:指定Carte Server的完整访问URL-carte-user/-carte-pass:Carte Server的认证凭据- 其余参数(如
-rep/-trans/-job)与本地直接运行任务时的用法一致
方法2:调用Carte REST API提交任务(可选)
若不想依赖pan/kitchen脚本,可直接通过REST API提交任务,同样复用已有JVM进程:
提交转换的curl示例
curl -X POST \ -u "Carte认证用户名:Carte认证密码" \ "http://carte服务器IP:端口/kettle/carte/executeTrans/?rep=你的仓库名称&trans=目标转换名称&user=仓库登录用户名&pass=仓库登录密码"
提交作业的curl示例
curl -X POST \ -u "Carte认证用户名:Carte认证密码" \ "http://carte服务器IP:端口/kettle/carte/executeJob/?rep=你的仓库名称&job=目标作业名称&user=仓库登录用户名&pass=仓库登录密码"
关键注意事项
- 确保Carte Server处于正常运行状态,且提交任务的机器能访问该服务
- 提交任务的机器上需正确配置
repositories.xml,或在命令/API参数中明确指定仓库的完整连接信息 - Pentaho Server内嵌的Carte,默认端口通常与Server一致(如8080),访问路径固定为
/kettle/carte
内容的提问来源于stack exchange,提问作者俊輝李
相关产品推荐
相关产品推荐

