Дълбоко гмуркане в свиня



Тази публикация в блога е дълбоко гмуркане в Pig и неговите функции. Ще намерите демонстрация за това как можете да работите на Hadoop, използвайки Pig, без зависимост от Java.

Една от най-големите причини, поради които популярността на Hadoop нарасна в последно време, е фактът, че функции като Pig и Hive работят върху него, позволявайки на непрограмисти с функционалност, която преди това беше изключителна за Java програмистите. Тези характеристики бяха следствие от нарастващото търсене на професионалисти от Hadoop. Други функции, които се използват от професионалистите на Hadoop от не-Java фонове, са Flume, Sqoop, HBase и Oozie.





За да разберете защо не се нуждаете от Java, за да научите Hadoop, разгледайте този блог .

1 История на свинете



Нека разберем как работят тези функции.

Всички знаем, че познанията по програмиране са необходимост за писане на кодове на MapReduce. Но какво ще стане, ако имам инструмент, който може да извърши кодирането, ако просто предоставя подробности? Това е мястото, където Свинята проявява мускулната си сила. Pig използва платформа, наречена Pig Latin, която абстрахира програмирането от идиома Java MapReduce в нотация, което прави MapReduce програмиране на високо ниво, подобно на SQL за RDBMS системи. Кодовете, написани на Pig Latin MapReduce, автоматично се преобразуват в еквивалентни функции MapReduce. Не е ли страхотно? Друг умопомрачителен факт е, че за замяна на 200 реда на Java са необходими само 10 реда свинско.



10 реда Pig = 200 реда Java

Това не само означава, че специалистите, които не са Java, използват Hadoop, но също така свидетелства за подчертаващия факт, че Pig се използва от равен брой технически разработчици.

Освен това, ако искате да напишете свой собствен MapReduce код, можете да го направите на който и да е от езиците като Perl, Python, Ruby или C. Някои основни операции, които можем да извършим на всеки набор от данни с помощта на Pig са Group, Join, Filter и Sort . Тези операции могат да се извършват върху структурирани, неструктурирани и също полуструктурирани данни. Те предоставят ad hoc начин за създаване и изпълнение на задания MapReduce на много големи набори от данни.

След това нека разберем Hive. Това е рамка за съхранение на данни в мащаб с отворен код, базирана на Hadoop за обобщаване на данни, заявки и анализ. Hive осигурява подобен на SQL интерфейс за Hadoop. Можете да използвате Hive, за да четете и пишете файлове в Hadoop и да стартирате отчетите си от BI инструмент. Някои типични функционалности на Hadoop са:

java cast cast към днешна дата

Позволете ми да ви покажа демонстрация, използвайки набор от данни Pig on Clickstream
Ние ще използваме тези данни за Clickstream и ще извършваме трансформации, присъединяване и групиране.

ClickStream е поредица от кликвания на мишката, направени от потребител по време на достъп до Интернет, особено като наблюдавани, за да се оценят интересите на човек за маркетингови цели. Използва се главно от уебсайтове за онлайн търговия на дребно като Flipkart и Amazon, които проследяват вашите дейности, за да генерират препоръки. Наборът от данни на Clickstream, който сме използвали, има следните полета:

1. Тип език, поддържан от уеб приложението

2. Тип браузър

3. Тип връзка

4. Идентификатор на държавата

5. Печат на времето

6. URL адрес

7. Състояние на потребителя

8. Тип потребител

Ще изглежда така със съответните полета.

По-долу е списъкът на типовете браузъри, които са били използвани от различни хора при сърфиране на определен уебсайт. Сред списъка са браузъри като Internet Explorer, Google Chrome, Lynx и т.н.

Типът интернет връзка може да бъде Lan / Modem / Wifi. Вижте изображението по-долу за пълния списък:

На следващото изображение ще намерите списъка с държави, от които уебсайтът е привлякъл аудитория, заедно с техните идентификационни номера.

След като съберем всички набори от данни, трябва да стартираме черупката на Pig’s Grunt, която се стартира, за да стартира командите на Pig.

Първото нещо, което трябва да направим при стартирането на черупката на Grunt, е да заредим данните на Clickstream в релацията на Pig. Релацията не е нищо друго освен таблица. По-долу е командата, която използваме, за да заредим файл, намиращ се в HDFS, в връзката на Pig.

Можем да проверим схемата на релацията чрез командата описва click_stream.

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

Сега имаме два референтни файла, но те трябва да бъдат свързани, за да образуват връзка.
Изпълняваме команда connection_ref, за да посочим вида на връзката.

Сега, когато имаме работеща връзка и установена връзка, ще ви покажем как можем да трансформираме тези данни.
За всеки запис в Clickstream ще генерираме нов запис в различен формат, т.е. трансформираните данни. Новият формат ще включва полета като TimeStamp, тип браузър, идентификатори на държави и още няколко.

Можем да извършим операция за филтриране, за да намалим големите данни. Различните типове потребители са администратори, гости или ботове. В нашата демонстрация съм филтрирал списъка за гостите.

Ако си спомняте, идентификаторът на страната присъства в Clickstream и ние заредихме файл country_ref, съдържащ имената на държавите заедно с неговите идентификатори. По този начин можем да извършим операция за присъединяване между двата файла и да обединим данните, за да получим прозрения.

Ако сме се присъединили към данните, тогава можем да открием различните държави, откъдето се намират потребителите, чрез групиране. След като разполагаме с тези данни, можем да извършим операция Count, за да идентифицираме броя на потребителите от определена държава.

Не е ракетна наука да се извличат прозрения от големите данни. Това са само някои от многото функции, които съм внедрил и с инструменти като Hive, Hbase, Oozie, Sqoop и Flume има съкровище от данни, които тепърва ще бъдат изследвани. Така че тези от вас, които се въздържат от изучаването на Hadoop, е време да се промените.

Имате въпрос към нас? Моля, споменете ги в раздела за коментари и ние ще се свържем с вас.

Подобни публикации:

4 начина за използване на R и Hadoop заедно

Всичко за сертифицирания разработчик на Cloudera за Apache Hadoop