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



我有一个shell脚本(count.sh(,它计算文件中的行数。该脚本已复制到HDFS中,目前正在使用Oozie Workflow执行此脚本。

但是,我想知道是否有一种方法可以从命令行执行此外壳脚本。

ex:

in Unix: [myuser@myserver ~]$./count.sh

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

我读了此Hadoop命令以在Hadoop群集中运行bash脚本,但仍不清楚。

我知道这是一个旧帖子,但是我自己遇到了它,并认为我可以在将来添加一些信息。

就像卡米尔(Camille(所说的那样,但这也适用于参数,例如,如果您使用的是bash。

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

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

所需的内容称为 Hadoop streaming

您可以查看官方文档hadoop流媒体以了解更多信息,或者查看在Python(而不是Python,放入bash脚本(中编写Hadoop MapReduce程序,以了解如何使用它。

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