我有一个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,但仍不清楚。
答案 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
启用参数。