हाडोप पिग ट्यूटोरियल: अपाचे पिग क्या है? Archiटेकचर, उदाहरण
हम सुअर के परिचय से शुरू करेंगे
अपाचे पिग क्या है?
पिग एक उच्च स्तरीय प्रोग्रामिंग भाषा है जो बड़े डेटा सेट का विश्लेषण करने के लिए उपयोगी है। पिग याहू में विकास प्रयासों का परिणाम था!
मैपरिड्यूस फ्रेमवर्क में, प्रोग्राम को मैप और रिड्यूस चरणों की एक श्रृंखला में अनुवादित करने की आवश्यकता होती है। हालाँकि, यह एक प्रोग्रामिंग मॉडल नहीं है जिससे डेटा विश्लेषक परिचित हैं। इसलिए, इस अंतर को पाटने के लिए, Hadoop के शीर्ष पर Pig नामक एक अमूर्तता का निर्माण किया गया।
अपाचे पिग लोगों को अधिक ध्यान केंद्रित करने में सक्षम बनाता है थोक डेटा सेट का विश्लेषण करना और मैप-रिड्यूस प्रोग्राम लिखने में कम समय लगाना। सूअरों की तरह, जो कुछ भी खा लेते हैं, अपाचे सूअर प्रोग्रामिंग भाषा किसी भी तरह के डेटा पर काम करने के लिए डिज़ाइन किया गया है। इसीलिए इसका नाम पिग रखा गया है!
इस शुरुआती अपाचे पिग ट्यूटोरियल में, आप सीखेंगे-
- सुअर क्या है?
- सुअर Archiटेक्चर
- .. पूर्वापेक्षाएँ
- पिग को कैसे डाउनलोड और इंस्टॉल करें
- उदाहरण सुअर स्क्रिप्ट
सुअर Archiटेक्चर
RSI Archiसुअर की संरचना में दो घटक होते हैं:
-
पिग लैटिन, जो एक भाषा है
-
एक रनटाइम वातावरण, पिगलैटिन प्रोग्राम चलाने के लिए.
पिग लैटिन प्रोग्राम में कई ऑपरेशन या ट्रांसफ़ॉर्मेशन होते हैं जो आउटपुट बनाने के लिए इनपुट डेटा पर लागू होते हैं। ये ऑपरेशन एक डेटा फ़्लो का वर्णन करते हैं जिसे Hadoop Pig निष्पादन वातावरण द्वारा एक निष्पादन योग्य प्रतिनिधित्व में अनुवादित किया जाता है। नीचे, इन परिवर्तनों के परिणाम MapReduce जॉब्स की श्रृंखला हैं जिनके बारे में प्रोग्रामर को पता नहीं होता है। इसलिए, एक तरह से, Hadoop में Pig प्रोग्रामर को निष्पादन की प्रकृति के बजाय डेटा पर ध्यान केंद्रित करने की अनुमति देता है।
पिगलैटिन एक अपेक्षाकृत कठोर भाषा है जो डाटा प्रोसेसिंग से परिचित कीवर्ड जैसे, जॉइन, ग्रुप और फ़िल्टर का उपयोग करती है।
निष्पादन मोड:
Hadoop में Pig के दो निष्पादन मोड हैं:
-
स्थानीय मोड: इस मोड में, Hadoop Pig भाषा एकल रूप में चलती है JVM और स्थानीय फ़ाइल सिस्टम का उपयोग करता है। यह मोड केवल Hadoop में Pig का उपयोग करके छोटे डेटासेट के विश्लेषण के लिए उपयुक्त है
-
मैप रिड्यूस मोड: इस मोड में, पिग लैटिन में लिखे गए प्रश्नों का अनुवाद किया जाता है मानचित्र छोटा करना जॉब्स और एक Hadoop क्लस्टर पर चलाए जाते हैं (क्लस्टर छद्म या पूरी तरह से वितरित हो सकता है)। पूरी तरह से वितरित क्लस्टर के साथ MapReduce मोड बड़े डेटासेट पर Pig चलाने के लिए उपयोगी है।
पिग को कैसे डाउनलोड और इंस्टॉल करें
अब इस अपाचे पिग ट्यूटोरियल में, हम सीखेंगे कि पिग को कैसे डाउनलोड और इंस्टॉल किया जाए:
वास्तविक प्रक्रिया शुरू करने से पहले, सुनिश्चित करें कि आपके पास Hadoop इंस्टॉल है। यूजर को 'hduser' में बदलें (Hadoop कॉन्फ़िगरेशन के दौरान इस्तेमाल की गई आईडी, आप अपने Hadoop कॉन्फ़िगरेशन के दौरान इस्तेमाल की गई यूजरआईडी पर स्विच कर सकते हैं)
चरण 1) पिग हैडोप के नवीनतम स्थिर संस्करण को किसी भी मिरर साइट से डाउनलोड करें जो यहां उपलब्ध है
http://pig.apache.org/releases.html
चुनते हैं tar.gz (और नहीं src.tar.gz) डाउनलोड करने के लिए फ़ाइल.
चरण 2) एक बार डाउनलोड पूरा हो जाने पर, डाउनलोड की गई tar फ़ाइल वाली डायरेक्टरी पर जाएँ और tar को उस स्थान पर ले जाएँ जहाँ आप Pig Hadoop को सेटअप करना चाहते हैं। इस मामले में, हम /usr/local पर जाएँगे
पिग हडॉप फ़ाइलों वाली निर्देशिका में ले जाएँ
cd /usr/local
नीचे दिए अनुसार tar फ़ाइल की सामग्री निकालें
sudo tar -xvf pig-0.12.1.tar.gz
स्टेप 3)। सुधारे ~ / .bashrc पिग से संबंधित पर्यावरण चर जोड़ने के लिए
प्रारंभिक ~ / .bashrc अपनी पसंद के किसी भी टेक्स्ट एडिटर में फ़ाइल खोलें और नीचे दिए गए संशोधन करें-
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
चरण 4) अब, नीचे दिए गए आदेश का उपयोग करके इस पर्यावरण कॉन्फ़िगरेशन को स्रोत करें
. ~/.bashrc
चरण 5) हमें पुनः संकलन की आवश्यकता है सुअर समर्थन के लिए हाडोप 2.2.0
ऐसा करने के लिए ये चरण हैं-
PIG होम निर्देशिका पर जाएँ
cd $PIG_HOME
चींटी स्थापित करें
sudo apt-get install ant
नोट: डाउनलोड शुरू हो जाएगा और आपकी इंटरनेट स्पीड के अनुसार समय लेगा।
PIG को पुनः संकलित करें
sudo ant clean jar-all -Dhadoopversion=23
कृपया ध्यान दें कि इस पुनर्संकलन प्रक्रिया में कई घटक डाउनलोड किए जाते हैं। इसलिए, सिस्टम को इंटरनेट से कनेक्ट होना चाहिए।
इसके अलावा, यदि यह प्रक्रिया कहीं अटक गई है और आपको 20 मिनट से अधिक समय तक कमांड प्रॉम्प्ट पर कोई गतिविधि नहीं दिखती है, तो दबाएं Ctrl + सी और उसी आदेश को पुनः चलाएँ।
हमारे मामले में, इसमें 20 मिनट लगते हैं
कदम 6) का परीक्षण करें सुअर कमांड का उपयोग करके स्थापना
pig -help
उदाहरण सुअर स्क्रिप्ट
हम प्रत्येक देश में बेचे गए उत्पादों की संख्या जानने के लिए पिग स्क्रिप्ट का उपयोग करेंगे।
इनपुट: हमारा इनपुट डेटा सेट एक CSV फ़ाइल है, SalesJan2009.csv
कदम 1) Hadoop प्रारंभ करें
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
कदम 2) बिग डेटा में पिग एक फ़ाइल लेता है एचडीएफएस मैपरिड्यूस मोड में और परिणामों को वापस एचडीएफएस में संग्रहीत करता है।
प्रतिलिपि फ़ाइल SalesJan2009.csv (स्थानीय फ़ाइल सिस्टम पर संग्रहीत, ~/इनपुट/SalesJan2009.csv) को HDFS (Hadoop वितरित फ़ाइल सिस्टम) होम निर्देशिका में परिवर्तित करना
यहाँ इस अपाचे पिग उदाहरण में, फ़ाइल फ़ोल्डर इनपुट में है। यदि फ़ाइल किसी अन्य स्थान पर संग्रहीत है तो उसे वह नाम दें
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
सत्यापित करें कि फ़ाइल वास्तव में कॉपी की गई है या नहीं.
$HADOOP_HOME/bin/hdfs dfs -ls /
चरण 3) पिग विन्यास
सबसे पहले, $PIG_HOME/conf पर जाएँ
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
प्रारंभिक सुअर.गुण अपनी पसंद के टेक्स्ट एडिटर का उपयोग करके, और लॉग फ़ाइल पथ निर्दिष्ट करें pig.logfile
sudo gedit pig.properties
लॉगर त्रुटियों को लॉग करने के लिए इस फ़ाइल का उपयोग करेगा।
चरण 4) 'pig' कमांड चलाएँ, जिससे Pig कमांड प्रॉम्प्ट प्रारंभ हो जाएगा, जो एक इंटरैक्टिव शेल Pig क्वेरीज़ है।
pig
चरण 5)पिग के लिए ग्रन्ट कमांड प्रॉम्प्ट में, नीचे दिए गए पिग कमांड को क्रम से निष्पादित करें।
— A. डेटा युक्त फ़ाइल लोड करें.
salesTable = LOAD '/SalesJan2009.csv' USING PigStorage(',') AS (Transaction_date:chararray,Product:chararray,Price:chararray,Payment_Type:chararray,Name:chararray,City:chararray,State:chararray,Country:chararray,Account_Created:chararray,Last_Login:chararray,Latitude:chararray,Longitude:chararray);
इस आदेश के बाद Enter दबाएँ।
— बी. डेटा को देश क्षेत्र के अनुसार समूहित करें
GroupByCountry = GROUP salesTable BY Country;
— सी. प्रत्येक टपल के लिए 'ग्रुपबायकंट्री', फॉर्म का परिणामी स्ट्रिंग उत्पन्न करें -> देश का नाम: बेचे गए उत्पादों की संख्या
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
इस आदेश के बाद Enter दबाएँ।
— D. डेटा फ्लो के परिणामों को निर्देशिका में संग्रहीत करें 'pig_output_sales' एचडीएफएस पर
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
इस कमांड को निष्पादित होने में कुछ समय लगेगा। एक बार हो जाने पर, आपको निम्न स्क्रीन दिखाई देगी
चरण 6) परिणाम कमांड इंटरफ़ेस के माध्यम से देखा जा सकता है,
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
परिणाम वेब इंटरफेस के माध्यम से भी देखे जा सकते हैं-
वेब इंटरफेस के माध्यम से परिणाम-
प्रारंभिक http://localhost:50070/
एक वेब ब्राउज़र में।
अब चयन 'फ़ाइल सिस्टम ब्राउज़ करें' और ऊपर तक नेविगेट करें /उपयोगकर्ता/hduser/pig_output_sales
प्रारंभिक भाग-आर-00000