2014-01-21 185 views
-2

任何一個可以告訴我這是什麼以下grep命令這樣做:Hadoop的grep命令

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

這不是Linux的grep命令,順便說一句。 –

回答

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作業。第一個作業計算匹配字符串發生的次數,第二個作業按匹配字符串的頻率排序並將輸出存儲在單個輸出文件中。

你問的是什麼正則表達式本身是什麼?其餘的看起來很直接。

+0

此外,更具體地說,通過傳遞grep參數,它會告訴主程序來自hadoop - * - examples.jar關於運行的內容(檢查清單文件以查看主程序是什麼)。還有很多其他示例程序,如pi等 – Marcin

0

免責聲明:我沒有運行這個例子,我拉後只看http://wiki.apache.org/hadoop/Grep

回答CLI調用:斌/ 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:一 第2組:乙 如果值爲1,那麼結果就是a。組0是完全匹配的,而不是原始字符串,在這種情況下它恰好是相同的。

0

除了其他人的評論,該命令有點令人困惑,因爲它不完全遵循這些示例。有一個'jar'和jar的名字,然後是'grep'命令,而不是'fullpath.Grep'。這僅僅意味着它正在那個罐子裏尋找命令。