hadoop grep命令

时间:2014-01-21 17:42:54

标签: hadoop grep

任何人都可以告诉我以下grep命令的作用:

 $ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'

3 个答案:

答案 0 :(得分:2)

http://wiki.apache.org/hadoop/Grep

  

Grep示例从文本文件中提取匹配的字符串,并计算它们发生的时间。

     

要运行该示例,请键入以下命令:

bin/hadoop org.apache.hadoop.examples.Grep <indir> <outdir> <regex> [<group>]
  

该命令与Unix grep调用的工作方式不同:它不显示完整的匹配行,只显示匹配的字符串,因此为了显示与“foo”匹配的行,请使用。 foo。作为正则表达式。

     

程序按顺序运行两个map / reduce作业。第一个作业计算匹配字符串发生的次数,第二个作业按频率对匹配的字符串进行排序,并将输出存储在单个输出文件中。

你在问这个正则表达式本身是什么吗?其余的看起来很直截了当。

答案 1 :(得分:0)

免责声明:我没有运行这个例子,只是在看http://wiki.apache.org/hadoop/Grep

之后就开始回答

CLI调用是:bin / hadoop org.apache.hadoop.examples.Grep [],你想知道。

我怀疑这是正则表达式中的分组。 (随机链接 - http://www.exampledepot.com/egs/java.util.regex/Group.html

正如Hadoop Grep链接所述

该命令与Unix grep调用的工作方式不同:它不显示完整的匹配行,但只显示匹配的字符串 我从中得到的是,如果你指定值(一个数字),它将只输出该组的值。

举个例子(从群组链接拉出来)

输入:aba 正则表达式:(a(b)*)+ 第0组:aba 第1组:a 第2组:b 如果值为1则结果为a。组0是完全匹配,而不是原始字符串。在这种情况下,它恰好是相同的。

答案 2 :(得分:0)

除了其他人的评论之外,该命令有点令人困惑,因为它并不完全遵循示例。有一个'jar'和jar的名字,然后是'grep'命令,而不是'fullpath.Grep'。它只是意味着它正在寻找该命令的jar。