Разлики между PIG срещу MapReduce

Pig е скриптов език, използван за изследване на големи масиви данни. Pig Latin е разширение на Hadoop, което опростява програмирането на Hadoop, като дава език за обработка на данни на високо ниво. Тъй като Pig е сценарист, ние можем да постигнем функционалността, като напишем много малко редове код. MapReduce е решение за мащабиране на обработката на данни. MapReduce не е програма, а рамка за писане на разпределени програми за обработка на данни. Програмите, написани с помощта на структурата MapReduce, успешно са мащабирани на хиляди машини.

Въведение в PIG

Pig е поток от данни и език на високо ниво. Прасето работи с която и да е от версиите в Hadoop.

Компоненти на прасето

  • Pig Latin - език, използван за изразяване на потоци от данни
  • Pig Engine - двигател отгоре на Hadoop

Предимства на PIG

  • Премахва необходимостта потребителите да настройват Hadoop
  • Изолира потребителите от промени в интерфейсите на Hadoop.
  • Увеличаване на производителността.
  1. В един тест 10 реда от Pig Latin - 200 реда на Java
  2. Това, което отнема 4 часа за писане на Java, отнема около 15 минути на прасен латински език
  3. Отворена система за програмисти, които не са Java

Ако сме наясно с HIVE и PIG, няма нужда да се грижим за кода, ако Hadoop версията е надстроена до по-висока версия.

Например: ако версията на Hadoop е 2.6, сега тя е надградена до 2.7. PIG поддържа във всяка версия, няма нужда да се притеснявате дали кодът работи или не във висшите версии.

Характеристики на PIG

Прасето латински е език за поток на данни

  • Осигурява поддръжка за типове данни - long, float, char matray, схеми и функции
  • Разширява се и поддържа дефинирани от потребителя функции
  • Метаданните не се изискват, но се използват, когато са налични
  • Работи с файлове в HDFS
  • Осигурява общи операции като ПРИЛОЖЕТЕ, ГРУПА, ФИЛТЪР, СОРТ

Сценарий за използване на PIG

  • Обработка на уеб лог
  • Обработка на данни за уеб платформи за търсене
  • Специални заявки в големи масиви от данни
  • Бързо прототипиране на алгоритми за обработка на големи масиви данни

Кой използва Pig

  • Yahoo, един от най-тежките потребители на Hadoop, управлява 40% от всичките си Hadoop задачи при прасе.
  • Twitter също е друг известен потребител на Pig

Въведение в MapReduce

  • В миналото обработката на все по-големи набори от данни беше проблем. Всички ваши данни и изчисления трябваше да се поберат на една машина. За да работите върху повече данни, трябваше да купите по-голяма, по-скъпа машина.
  • И така, какво е решението за обработката на голям обем от данни, когато това вече не е технически или финансово възможно да се направи на една машина?
  • MapReduce е решение за мащабиране на обработката на данни.

MapReduce има 3 етапа / фази

Стъпките по-долу се изпълняват последователно.

  • Фаза на картографиране

Вход от файловата система HDFS.

  • Разбъркайте и подредете

Въвеждането на разбъркване и сортиране е изход на картограф

  • редуктор

Входът към редуктора се извежда за разбъркване и сортиране.

MapReduce ще разбере данните по отношение на само комбинация Key-value.

  • Основната цел на фазата на картата е да прочете всички входни данни и да ги трансформира или филтрира. Преобразуваните или филтрирани данни се анализират по-нататък по бизнес логика във фазата на намаляване, въпреки че фазата на намаляване не е строго необходима.
  • Основната цел на редуциращата фаза е да се използва бизнес логика за отговор на въпрос и решаване на проблем.

Сравнение между главата на PIG и MapReduce (Инфографика)

По-долу са най-добрите 4 сравнения между PIG и MapReduce

Ключови разлики между PIG срещу MapReduce

По-долу са най-важните разлики между PIG срещу MapReduce

PIG или MapReduce По-бързо

Всички задания за PIG се пренаписват в MapReduce.so, намаляването на картата е само по-бързо.

Неща, които не могат да бъдат в PIG

Когато нещо е трудно да се изрази в Pig, вие ще приключите с изпълнение, т.е. изграждане на нещо от няколко примитива

Няколко примера:

  • Сложни групи или присъединявания
  • Комбиниране на много набори от данни
  • Сложно използване на разпределения кеш (репликирано присъединяване)
  • Сложни кръстосани продукти
  • Правете луди неща в вложен ГОРЕЧ

В тези случаи Pig ще забави куп работни места на MapReduce, което би могло да стане с по-малко.

Използване на сценарии MapReduce

  • Когато има сложни неща за постигане, използвайте MapReduce.

Развитието е много по-бързо в PIG?

  • По-малко редове код, т.е. по-малкият код, спестяват времето на разработчика.
  • По-малко грешки на ниво Java, за да се справят, но тези грешки са по-трудни за откриване.

В допълнение към горните разлики поддържа PIG

  • Тя позволява на разработчиците да съхраняват данни навсякъде в тръбопровода.
  • Декларира планове за изпълнение.
  • Той предоставя на операторите да изпълняват ETL (Extract, Transform и Load) функции.

Сравнение между главата на PIG и MapReduce

По-долу са списъците с точки, опишете сравненията между PIG и MapReduce

Основа за сравнение

PIG

MapReduce

Операции
  • Език на потока от данни.
  • Език на високо ниво.
  • Извършването на операции за присъединяване при прасе е просто
  • Език за обработка на данни.
  • Език на ниско ниво
  • Доста трудно да се извършат операциите за присъединяване.
Линии на код и многословиеПодход с много въпроси, като по този начин се намалява дължината на кодовете.изискват почти 10 пъти повече брой линии за изпълнение на една и съща задача.
компилацияНяма нужда от компилация. При изпълнение всеки оператор Apache Pig се преобразува вътрешно в задача на MapReduce.Заданията MapReduce имат дълъг процес на компилиране.
Преносимост на кодаРаботи с някоя от версиите в HadoopБез гаранция, която поддържа всяка версия на Hadoop

Заключение - PIG срещу MapReduce

Пример: трябва да преброим повторението на думите, присъстващи в изречението.

Какъв е по-добрият начин да направите програмата?

PIG или MapReduce

Писане на програмата на прасе

input_lines = LOAD '/tmp/word.txt' AS (ред: chararray);

думи = FOREACH input_lines GENERATE FLATTEN (TOKENIZE (line)) AS word;

filtered_words = ФИЛТЪР думи по дума MATCHES '\\ w +';

word_groups = GROUP филтрирани_words BY word;

word_count = FOREACH word_groups GENERATE COUNT (filtered_words) AS count, group AS word;

order_word_count = ORDER word_count BY count DESC;

STORE нареден_word_count INTO '/tmp/results.txt';

Писане на програмата в MapReduce.

импортиране на org.apache.hadoop.fs.Path;

импортиране на org.apache.hadoop.io.IntWritable;

импортиране на org.apache.hadoop.io.Text;

импортиране на org.apache.hadoop.mapreduce.lib.input.FileInputFormat;

импортиране на org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

импортиране на org.apache.hadoop.mapreduce.Job;

публична класа WordCount (

public static void main (String () args) хвърля изключение (

ако (args.length! = 2) (

System.out.printf (

„Използване: WordCount \ n“);

System.exit (-1);

)

@SuppressWarnings ( "неодобрение")

Работа = нова работа ();

job.setJarByClass (WordCount.class);

job.setJobName („Брой на думите“);

FileInputFormat.setInputPaths (работа, нов Path (args (0)));

FileOutputFormat.setOutputPath (работа, нов Path (args (1)));

job.setMapperClass (WordMapper.class);

job.setReducerClass (SumReducer.class);

job.setOutputKeyClass (Text.class);

job.setOutputValueClass (IntWritable.class);

булев успех = job.waitForCompletion (вярно);

System.exit (успех? 0: 1);

)

)

Ако функционалността може да бъде постигната от PIG, какво е ползването на функционалността за писане в MapReduce (Дълги кодове).

Винаги използвайте правилния инструмент за работата, по-бързо и по-добре.

Препоръчителен член

Това беше полезно ръководство за PIG срещу MapReduce, тук обсъдихме тяхното значение, сравненията на главата, ключовите разлики и заключенията. Можете също да разгледате следните статии, за да научите повече -

  1. Pig vs Spark - 10 полезни разлики за научаване
  2. Apache Pig vs Apache Hive - Топ 12 полезни разлики
  3. Най-добрите 15 неща, които трябва да знаете за MapReduce срещу Spark
  4. Как работи MapReduce?
  5. Разпределен кеш в Hadoop

Категория: