2014-01-21 2 views
-2

Может ли одно сказать мне, что делает следующую команду Grep сделать:Hadoop команда Grep

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

Это не команда grep Linux, кстати. –

ответ

2

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

Grep пример извлекает соответствующие строки из текстовых файлов и подсчитывает, сколько раз они произошли.

Чтобы запустить пример, введите следующую команду:

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

Команда работает иначе, чем в Grep вызова Unix: он не отображает полную совпадающую строку, но только строка соответствия , поэтому для отображения строк, соответствующих «foo», используйте. foo. как регулярное выражение.

Программа запускает две задачи map/reduce в последовательности. Первое задание подсчитывает, сколько раз встречалась совпадающая строка, а второе задание сортирует соответствующие строки по их частоте и сохраняет вывод в одном выходном файле.

Вы спрашиваете, что такое регулярное выражение? Остальное кажется прямым.

+0

Также, в частности, передавая аргумент grep, он сообщает основной программе из hadoop - * - examples.jar о том, что нужно запустить (проверьте файл манифеста, чтобы узнать, что является основной программой). Есть много других примеров таких программ, как pi и т. Д. – Marcin

0

Отказ от ответственности: я не запустить этот пример, и я потянув отвечать после того, как только глядя на http://wiki.apache.org/hadoop/Grep

Вызов АОН: бен/Hadoop org.apache.hadoop.examples.Grep [], и вы хотите знать, около .

Я подозреваю, что это группировка в регулярном выражении. (Случайная ссылка - http://www.exampledepot.com/egs/java.util.regex/Group.html)

Как было отмечено на ссылку Hadoop Grep

Команда работает иначе, чем в Grep вызова Unix: он не отображает полную совпадающую строку, но только согласующий строка Что взять из этого следует, что если вы укажете значение (число), оно выведет только значение для этой группы.

Для примера (тянущего по ссылке Group)

вход: аЬа регулярное выражение: (а (б) *) + группа 0: ABA группа 1: а группа 2: б Если значение для равно 1, то результатом будет a. Группа 0 - это полное совпадение, а не исходная строка. В этом случае это просто одно и то же.

0

В дополнение к комментариям других людей, команда немного запутанна, потому что она не точно соответствует примерам. Существует «jar» и имя jar, а затем команда «grep», а не «fullpath.Grep». Это просто означает, что он смотрит в эту банку для команды.

Смежные вопросы