我们正在 hadoop 纱线上运行 samza 作业。到目前为止,我们通过在资源管理器主机上调用 run-job.sh 来手动部署作业。
run-job.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file:///usr/share/promo-rules-consumer/config/config.properties
Samza 部署脚本和 samza distribtuion tar "samza-dist.tar.gz" 都放在资源管理器本地文件系统上。
但现在我想远程部署工作。为此,我正在尝试使用 Resource Manager Submit apps rest API 。
请求:POST http://hostname:8088/ws/v1/cluster/apps
身体 :
{
"application-id":"application_1470648527247_0031",
"application-name":"test1_0",
"am-container-spec":
{
"commands":
{
"command":"/usr/share/promo-rules-consumer/bin/run-job.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file:///usr/share/promo-rules-consumer/config/montecarlo.properties"
}
},
"application-type":"SAMZA"
}
但是我可以从资源管理器 UI 中看到错误
异常消息:/bin/bash:/usr/share/promo-rules-consumer/bin/run-job.sh:没有这样的文件或目录
请告诉我这样做的正确方法。是否有任何链接显示通过 rest API 或通过 java 代码部署 samza 作业。
谢谢