Translate

понеділок, 19 листопада 2012 р.

BigData with Pig


Apache Pig - це інструмент для швидкого створення програм на основі алгоритму мап-редюс,  використовує Hadoop на нижньому рівні. Як і Hadoop, є породженням корпорації Yahoo!
В основі до швидкого написання мап-редюс програм лежить використання скриптової мови Pig Latin. Ви пишеte лише відносно пpостий скрипт на SQL-подійбній мові навіть не замислюючись особливо над мап-редюс підходом, далі використовує Піг для того щоб виконати цей скрипт, який створює мап-редюс джоби, конфігурить і запускає їх. І він ще має вбудований оптимізатор, який оптимізує ваший скрипт, якщо ви раптом натупите!



Звичайно, на відміну від звичайно SQL вам знадобиться куди більше ф-цій для обробки даних зважаючи на те що схемою тут і не пахне. Для вирішення цього завдання Піг пропонує вам можливість написати власну ф-цію обробки даних за допомогою механізму User Defined Function (UDF), або взяти вже готову з апачівського PigBank чи Linkedin Data-Fu
Підозрюю, що у декого виникне підозра - "Піг скрипт має виконуватися значно повільніше". Насправді недовіра до Пігу доволі висока, як і до всього нового, та він себе вже добре зарекомендував в таких корпораціях як Yahoo!, Twitter, Linkedin, Nokia (o_O). і як показує їх практика, Піг скрипти лише трохи поступаються натівним мап-редюсам, але при цьому займають у 20 развів менше коду та вимагають у 16 раз менше часу на імплементацію. Хоча слід признати що 20% у швидкості ви певно втратите

Реальний приклад використання Pig: стаття, що я нещодавно прочитав і яка здалася мені доволі цікавою. Ідея полягає в тому, що за допомогою Піг скрипта та музичної бази даних ми спробуємо знайти екзотичні та популярні пісні з різних куточків світу. Кого зацікавило, раджу
http://blog.cloudera.com/blog/2012/08/process-a-million-songs-with-apache-pig/ (ті хто дочиають до кінця - молодці і зможуть насолодитися рідкісними африканськими піснями)

3 коментарі: