Разница между Pig в локальном режиме и pig-withouthadoop.jar

Я хотел знать, каков прирост или потеря производительности, если я использую свинью в локальном режиме (который внутренне вызывает уменьшение карты) по сравнению с использованием файла PIG-withouthadoop.jar.?

Действительно ли PIG-withouthadoop.jar не использует hadoop???

И если я хочу использовать Pig только без кластеров, например, спроектировать поток данных, то что мне использовать? Свинья в локальном режиме ИЛИ свинка без файла hadoop.jar??

В настоящее время я написал свой скрипт, используя локальный режим свиньи, и, пытаясь развернуть на сервере и настроить PIG в локальном режиме, я думаю, что мне также нужно установить HADOOP_HOME в переменных среды перед установкой переменной PIG_HOME.

Пожалуйста совет..

Заранее спасибо. :)


person Argho Chatterjee    schedule 30.03.2015    source источник
comment
ждали долго .. любезно поделитесь своими мыслями или поделитесь светом по этому вопросу .. с уважением .. :)   -  person Argho Chatterjee    schedule 31.03.2015
comment
Я знаю, что если я добавлю HADOOP_BIN= в свой файл свиньи, расположенный в $PIG_HOME/bin, то мне больше не нужно настраивать hadoop_home, так что же здесь происходит... что тогда ему не нужен хауп??   -  person Argho Chatterjee    schedule 01.04.2015


Ответы (2)


Позвольте мне ответить на ваш вопрос в последовательности:

1) Когда мы говорим о производительности, то если считать размер файла и скрипт Pig постоянными, при работе в локальном режиме и режиме Hadoop. Тогда, безусловно, обработка будет быстрее в локальном режиме, так как все задачи выполняются в одной JVM, но в случае режима Hadoop входной файл будет перенесен на узлы данных, тогда скрипт Pig или UDF также получат переносятся в кластер. Это потребует больше времени, хотя в обоих случаях скрипты свиньи и UDF будут внутренне преобразованы в задачу карты и сокращения, а количество построенных классов карты и сокращения всегда будет одинаковым в обоих случаях. Мы можем проверить это с помощью команды EXPLAIN.

2) Нет. Pig внутри содержит набор банок Hadoop. Итак, если вы не запустили Hadoop с помощью команды start-all.sh, pig будет работать, поскольку использует встроенные jar-файлы Hadoop. Теперь интересно то, что если вы установили hadoop, а затем используете свинью без запуска Hadoop, то иногда это не будет работать из-за несоответствия версии Hadoop. Поэтому, чтобы быть в безопасности, запустите Hadoop явно. Итак, Pig всегда использует Hadoop. :)

3) Всегда используйте локальный режим Hadoop, если размер файла меньше. Как уже объяснялось, Pig по умолчанию поставляется с jar-файлами Hadoop.

4) Да, вам нужно установить это, если вы явно используете Hadoop.

person hello_abhishek    schedule 26.02.2016

Локальный режим буквально запускает Pig, HDFS и MR1 (или YARN+MR2) на одной JVM.

Не очень важно сравнивать разницу в производительности в режимах local и cluster. Локальный режим обычно используется для тестирования или запуска небольших заданий MR, которые могут работать на 1 узле.

Что касается pig-withouthadoop.jar, я понимаю, как можно истолковать название jar как означающее, что Pig не будет использовать Hadoop. Но это не тот случай.

Свинья упаковывает две банки, соответствующие исполнению:

  • pig.jar, который представляет собой "uber jar", который также включает все jar-файлы hadoop и mapreduce. Вы можете буквально взять эту банку на коробку, на которой еще не установлен hadoop, и запустить свинью (после установки правильных конфигураций и среды).
  • Но на большинстве кластеров уже установлен и настроен хауп. В этом случае вы используете pig-withouthadoop.jar. Эта банка в два раза меньше, чем банка убера, по понятным причинам.

В любом случае вам необходимо убедиться, что конфигурации Hadoop hdfs-site.xml, mapred-site.xml и т. д. находятся в стандартном расположении (обычно /etc/hadoop/conf/). чтобы свинка работала.

person user3730028    schedule 25.02.2016