2015-03-30 3 views
0

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

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

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

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

Просьба советом ..

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

+0

ждем надолго .. любезно предоставите какие-либо мысли или поделитесь некоторым светом на вопрос .. привет. :) –

+0

Я знаю, что если я добавлю HADOOP_BIN = в свой файл свиньи, расположенный в $ PIG_HOME/bin, тогда я donot нужно настроить hadoop_home больше, так что происходит здесь ... что ему тогда не нужно hadoop? –

ответ

2

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

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

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

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

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

2

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

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

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

Pig упаковывает две банки, имеющие отношение к исполнению:

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

Либо пути вы должны будете обеспечить Hadoop конфиги HDFS-site.xml, mapred-site.xml и т.д. находятся в стандартном положении (/и т.д./Hadoop/CONF/ обычно) для свиней работать ,