【问题标题】:suppress command line output hadoop fs command抑制命令行输出 hadoop fs 命令
【发布时间】:2017-06-12 16:10:25
【问题描述】:

我正在使用 Python 程序运行 hadoop mapreduce 作业,该程序创建不同的输入路径作为 mapreduce 作业的参数。我目前正在检查 hadoop fs 路径是否存在,在我将这些输入路径传递到 mapreduce 之前,使用以下命令:

hadoop fs -test -e 'filename'

然后我的 Python 程序与命令行通信并确定文件是否存在(当文件存在时 -test 返回 0,否则返回大于 1 的整数)。由于 Python 程序正在检查路径是否存在并将所有不存在的路径输出到单独的 .txt 文档,因此我不需要知道哪些路径不存在作为命令行警告。

我想知道如何抑制(或忽略)自动 hadoop fs 输出:

test: 'fileName': No such file or directory

因为我正在输入大量路径,其中不少路径在 hadoop fs 中不存在。

【问题讨论】:

    标签: hadoop command-line mapreduce suppress-warnings


    【解决方案1】:

    将错误/警告重定向到/dev/null/

    hdfs dfs -test -e I/dont/exist 2>/dev/null
    

    【讨论】:

    • 命令没问题。另外,最后我检查了一下,测试只返回一个数字,并且不会在屏幕上打印任何内容。您使用的是哪个版本的 hadoop?
    • 经过更多研究后,我正在使用 hadoop 2.6.0 我相信输出实际上来自 Python 包子进程,因为我使用它从我的 Python 类中调用命令行。这就是我现在所在的位置:Supress output from subprocess
    • 这看起来是正确的地方,因为hadoop test 不会将任何内容打印到标准输出。
    • 感谢您的帮助@philantrovert,我认为您的回答将帮助未来对hadoop -test -e 输出有疑问的用户
    猜你喜欢
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多