如何在hdfs上部署和运行samza作业?

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

我想让samza作业在远程系统上运行,samza作业存储在hdfs上。例子(https://samza.apache.org/startup/hello-samza/0.7.0/)在采煤机上运行samza作业需要构建tar文件,然后解压缩tar文件,然后运行tar文件中的shell脚本。
这里关于hdfs的例子根本没有很好的文档记录(https://samza.apache.org/learn/tutorials/0.7.0/deploy-samza-job-from-hdfs.html). 它说将tar文件复制到hdfs,然后按照非hdfs示例中的其他步骤进行操作。
这意味着现在驻留在hdfs上的tar文件需要在hdfs中被解压,然后在解压的tar文件上运行shell脚本。但是你不能用hadoop fs shell解压hdfs tar文件。。。
如果不解开tar文件,就无法访问run-job.sh来启动samza作业。
有没有人能把这个搞定?

9ceoxa92

9ceoxa921#

我们以这样的方式部署samza作业:我们有hadoop库 /opt/hadoop ,我们有samza sh脚本 /opt/samza/bin 我们有samza配置文件 /opt/samza/config . 在这个配置文件中有这样一行: yarn.package.path=hdfs://hadoop1:8020/deploy/samza/samzajobs-dist.tgz 当我们想要部署samza作业的新版本时,我们只需要创建tgz归档文件,就可以将它移动到hdfs中(不需要解构) /deploy/samza/ 我们跑了 /opt/bin/run-job.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file:///opt/samza/config/$CONFIG_NAME.properties 唯一的缺点是我们忽略了归档文件中的配置文件。如果您更改存档中的配置,它不会生效。您必须更改中的配置文件 /opt/samza/config . 另一方面,我们可以在不部署新的tgz归档的情况下更改samza作业的配置。shell脚本在 /opt/samza/bin 每个构建都保持相同,因此您不需要因为shell脚本而解压归档包。
祝你好运!:-)

相关问题