1

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

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

前任:

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

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

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

4

3 回答 3

3

我知道这是一篇旧帖子,但我自己只是偶然发现它,并认为我可以为将来添加一些信息。

就像 Camille 所说,但这也适用于参数,例如,如果您使用的是 bash。

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

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

于 2019-07-23T13:04:16.133 回答
1

您要查找的内容称为Hadoop streaming.

您可以查看官方文档Hadoop Streaming以了解更多信息,或查看使用 Python 编写 Hadoop MapReduce 程序(而不是 python,放入您的 bash 脚本)以了解如何使用它。

于 2018-04-04T18:48:21.110 回答
0

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

于 2018-06-27T15:01:00.627 回答