微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Hadoop Streaming 实战: grep

原文链接https://my.oschina.net/zipu888/blog/549692

  streaming支持shell 命令的使用。但是,需要注意的是,对于多个命令,不能使用形如cat; grep 之类的多命令,而需要使用脚本,后面将具体介绍。

  下面示例用grep检索巨量数据:

   1. 待检索的数据放入hdfs
       $ hadoop fs -put localfile /user/hadoop/hadoopfile

       使用方法:hadoop fs -put ...
        从本地文件系统中复制单个或多个源路径到目标文件系统。也支持从标准输入中读取输入写入目标文件系统。

   2. 运行检索:
        $ hadoop streaming -input /user/hadoop/hadoopfile -output /user/hadoop/result -mapper "grep hello" -jobconf mapre.job.name="grep-test" -jobconf stream.non.zero.exit.is.failure=false -jobconf mapred.reduce.tasks=1 
       
         说明:
           -input  /user/hadoop/hadoopfile : 待处理文件目录
           -output /user/hadoop/result   :处理结果存放目录
-mapper "grep hello" :map程序
            -jobconf mapre.job.name="grep-test" :任务名
            -jobconf stream.non.zero.exit.is.failure=false  : map-reduce程序返回值不做判断;streaming认的情况下,mapper和reducer的返回值不是0,被认为异常任务,将被再次执行,认尝试4次都不是0,整个job都将失败。而grep在没有匹配结果时返回1。
            -jobconf mapred.reduce.tasks=1 : reduce任务数。 此处也可配置为0,为0配置表示告诉Map/reduce框架不要创建reducer任务

   3.  查看结果:
        $ hadoop fs –cat /user/hadoop/result/part-00000

转载于:https://my.oschina.net/zipu888/blog/549692

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐