我想执行一个存储在hdfs中的shell脚本,其中包含一个向脚本传递参数的选项。我已经验证了以下工作 hadoop fs -cat hdfs://path_to_script/sample.sh | exec bash
我想做以下工作 hadoop fs -cat hdfs://path_to_script/sample.sh param1 param2 param3 param4 | exec bash
问题是cat命令期望文件流式传输到stdout,但参数是存储在hdfs中的文件夹和文件。还有别的办法吗?
3条答案
按热度按时间vsmadaxz1#
您可以尝试:
jfewjypa2#
这将执行hdfs中的shell脚本
oxalkeyp3#
您可以尝试以下方法:;它使用单独的
hadoop fs cat
(在进程替换中)检索每个文件并将其呈现给sample.sh
作为要打开读取的文件名。如果
sample.sh
已经知道如何从hdfs中读取数据了可能就足够了。这个
-s
选项告诉bash从标准输入读取脚本,这样就不会出错param1
作为要运行的脚本的名称。