如何在远程资源管理器上部署samza作业

5w9g7ksd  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(343)

我们正在hadoopYarn上运行samza作业。到目前为止,我们都是通过在资源管理器主机上调用run-job.sh来手动部署job。

run-job.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file:///usr/share/promo-rules-consumer/config/config.properties

samza部署脚本和samza发行版tar“samza-dist.tar.gz”都放在资源管理器本地文件系统上。
但现在我想远程部署作业。为此,我试图使用资源管理器提交应用RESTAPI。
请求:posthttp://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:没有这样的文件或目录
请告诉我正确的方法。是否有任何链接显示通过restapi或java代码部署samza作业。
谢谢

pb3skfrl

pb3skfrl1#

我们正在做的是:
将tar.gz工件上载到远程集群hdfs(您可以使用web hdfs:
http—跟随put'http://namenode:50070/webhdfs/v1/user/someuser/location/samza artifact.tar.gz?op=create&user.name=someuser&overwrite=true'</local artifact location/your-artifact-name-dist.tar.gz
在任务属性中,指定yarn.package.path,类似于
Yarn. Package .路径=hdfs://namenode:8020/user/someuser/location/samza-artifact.tar.gz
samza需要知道你的yarn设置,从hadoop集群复制以下内容,放入/yarn location/conf(注意,/conf很重要)
apacity-scheduler.xml
core-site.xml文件
log4j.属性
Yarn-env.sh
yarn-site.xml文件
设置hadoop\u yarn\u home环境变量
export hadoop\u yarn\u home=/yarn location(此处不带conf..)
运行run-job.sh:
bin/run-job.sh--config factory=org.apache.samza.config.factories.propertiesconfigfactory--config path=/path to config//your-task.properties

相关问题