Hadoop命令在hadoop集群中运行bash脚本

时间:2018-04-04 03:42:22

标签: shell hadoop cloudera oozie-workflow

我有一个shell脚本(count.sh),用于计算文件中的行数。 此脚本已复制到hdfs,目前正在使用Oozie工作流来执行此脚本。

但是,我想知道是否有办法从命令行执行此shell脚本。

前:

在unix中:[myuser@myserver ~]$./count.sh

当count.sh位于hadoop群集位置' /user/cloudera/myscripts/count.sh' 时,等效。

我读过Hadoop command to run bash script in hadoop cluster,但仍不清楚。

3 个答案:

答案 0 :(得分:1)

您要找的是Hadoop streaming

您可以查看官方文档Hadoop Streaming以了解更多内容或查看Writing An Hadoop MapReduce Program In Python(而不是python,放入您的bash脚本)以了解如何使用它。

答案 1 :(得分:0)

hadoop fs -cat /path/count.sh|exec sh

答案 2 :(得分:0)

我知道这是一篇过时的文章,但是我自己碰到它,并认为我可以在将来添加一些信息。

像卡米尔说的那样,但这也适用于参数,例如,如果您正在使用bash。

hdfs dfs -cat /path/file | exec bash -s param1 param2 param3 param4

通过使用cat收集文件,可以使用execute将脚本作为bash文件启动。 -s启用参数。