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

Hadoop command to run bash script in hadoop cluster

我有一个 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,但还是不清楚。

您要找的是Hadoop streaming

您可以查看官方文档Hadoop Streaming to find out more or look at Writing An Hadoop MapReduce Program In Python(而不是python,放入您的bash脚本中)以了解如何使用它。

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

我知道这是一个旧的 post,但我自己偶然发现了它,并认为我可以为将来添加一些信息。

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

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

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