हाडोप पिग ट्यूटोरियल: अपाचे पिग क्या है? Archiटेकचर, उदाहरण

⚡ स्मार्ट सारांश

Apache Pig, Hadoop पर बड़े डेटा सेट का विश्लेषण करने के लिए एक उच्च-स्तरीय प्लेटफ़ॉर्म है, जो Pig Latin डेटा-फ़्लो भाषा को एक रनटाइम के साथ जोड़ता है जो प्रत्येक स्क्रिप्ट को MapReduce, Tez या अन्य प्रारूपों में संकलित करता है। Spark नौकरियां स्वचालित रूप से।

  • 🔘 दो घटक: पिग लैटिन भाषा प्रदान करता है और पिग रनटाइम प्रत्येक स्क्रिप्ट को क्लस्टर जॉब में बदल देता है।
  • निष्पादन प्रकार: वर्तमान रिलीज़ में -x फ़्लैग के साथ चयनित छह एक्ज़ीक्यूशन प्रकार उपलब्ध हैं, जो स्थानीय से लेकर Spark.
  • आवश्यक: एक कार्यशील हैडूप इंस्टॉलेशन के साथ-साथ JavaHADOOP_HOME और JAVA_HOME निर्यातित होने के साथ, पहले से मौजूद होना चाहिए।
  • 🧪 उदाहरण सहित: चार कथनों वाली एक स्क्रिप्ट SalesJan2009.csv फ़ाइल को लोड करती है, इसे देश के अनुसार समूहित करती है और उत्पाद गणनाओं को संग्रहीत करती है।
  • डेटा मॉडल: स्केलर प्रकारों के साथ-साथ टपल, बैग और मैप की मदद से पिग नेस्टेड और शिथिल रूप से संरचित फाइलों को पढ़ सकता है।
  • 📈 वर्तमान संस्करण: Apache Pig 0.18.0 सितंबर 2025 में Hadoop 3 और Tez के साथ आया। Spark और Python 3 समर्थन।

यह Hadoop Pig ट्यूटोरियल Apache Pig आर्किटेक्चर, इंस्टॉलेशन और एक उदाहरण के साथ Pig Latin तकनीक को कवर करता है।

यह ट्यूटोरियल अपाचे पिग के पीछे के विचार से शुरू होता है, फिर इसे स्थापित करने और एक संपूर्ण पिग लैटिन स्क्रिप्ट को शुरू से अंत तक चलाने की प्रक्रिया को विस्तार से बताता है।

अपाचे पिग क्या है?

सुअर एक उच्च स्तरीय है प्रोग्रामिंग भाषा बड़े डेटा सेटों के विश्लेषण के लिए उपयोगी। पिग याहू! के विकास प्रयासों का परिणाम है।

मैप रिड्यूस फ्रेमवर्क में, प्रोग्राम को मैप और रिड्यूस चरणों की एक श्रृंखला में अनुवादित करने की आवश्यकता होती है। हालाँकि, यह एक ऐसा प्रोग्रामिंग मॉडल नहीं है जिससे डेटा विश्लेषक परिचित हों। इसलिए, इस अंतर को पाटने के लिए, एक पूर्ण रूप से संशोधित (abs) विधि का उपयोग किया जाता है।tracपिग नामक संरचना का निर्माण इसके ऊपर किया गया था। Hadoop.

अपाचे पिग लोगों को बड़े डेटा सेट के विश्लेषण पर अधिक ध्यान केंद्रित करने और मैप रिड्यूस प्रोग्राम लिखने में कम समय बिताने में सक्षम बनाता है। सूअरों की तरह, जो कुछ भी खा लेते हैं, अपाचे पिग प्रोग्रामिंग भाषा को किसी भी प्रकार के डेटा पर काम करने के लिए डिज़ाइन किया गया है। इसीलिए इसका नाम पिग रखा गया है! नीचे दिया गया प्रोजेक्ट मैस्कॉट भी इसी बात को दर्शाता है।

कार्टून में दिखाए गए सुअर को अपाचे पिग के शुभंकर के रूप में इस्तेमाल किया गया है, जो यह दर्शाता है कि सुअर किसी भी प्रकार के डेटा को संसाधित कर सकता है।

यह प्रोजेक्ट अभी भी सक्रिय है। अपाचे पिग 0.18.0 इसे 15 सितंबर 2025 को जारी किया गया था और इसमें Hadoop 3, Tez 0.10, Hive 3 के लिए समर्थन जोड़ा गया है। Spark 3, एचबेस 2 और Python 3 के अनुसार अपाचे पिग रिलीज़ पेजनीचे दिया गया विस्तृत विवरण मूल रूप से बहुत पुराने 0.12.1 संस्करण के लिए लिखा गया था, इसलिए कुछ चरणों में यह उल्लेख किया गया है कि वर्तमान संस्करण अलग तरह से व्यवहार करता है।

सुअर Archiटेक्चर

पिग की वास्तुकला में दो घटक शामिल हैं:

  1. पिग लैटिन, जो एक भाषा है
  2. एक रनटाइम वातावरण, पिग लैटिन कार्यक्रम चलाने के लिए।

पिग लैटिन प्रोग्राम में कई ऑपरेशन या रूपांतरण होते हैं जो इनपुट डेटा पर लागू होकर आउटपुट उत्पन्न करते हैं। ये ऑपरेशन डेटा प्रवाह का वर्णन करते हैं, जिसे हैडूप पिग निष्पादन वातावरण द्वारा निष्पादन योग्य रूप में परिवर्तित किया जाता है। मूल रूप से, इन रूपांतरणों के परिणाम कई आउटपुट होते हैं। मानचित्र छोटा करना ऐसे कार्य जिनके बारे में प्रोग्रामर को जानकारी नहीं होती। इसलिए, एक तरह से, Hadoop में Pig प्रोग्रामर को निष्पादन की प्रकृति के बजाय डेटा पर ध्यान केंद्रित करने की अनुमति देता है।

पिग लैटिन एक अपेक्षाकृत कठोर भाषा है जो डेटा प्रोसेसिंग से परिचित कीवर्ड का उपयोग करती है, जैसे कि जॉइन, ग्रुप और फ़िल्टर। नीचे दिया गया आरेख tracयह ग्रंट शेल से एक स्क्रिप्ट को पार्सर, ऑप्टिमाइज़र और कंपाइलर के माध्यम से निष्पादन इंजन तक पहुंचाता है।

अपाचे पिग आर्किटेक्चर आरेख पिग लैटिन स्क्रिप्ट को पार्सर, ऑप्टिमाइज़र और कंपाइलर से गुजरते हुए निष्पादन इंजन तक पहुंचने को दर्शाता है।

निष्पादन मोड

Hadoop में Pig के दो निष्पादन मोड हैं, और नीचे दिए गए इंस्टॉलेशन विवरण में इन दोनों का उपयोग किया गया है:

  1. स्थानीय मोड: इस मोड में, हैडूप पिग भाषा एक ही ड्राइव में चलती है। JVM और यह स्थानीय फ़ाइल सिस्टम का उपयोग करता है। यह मोड केवल Hadoop में Pig का उपयोग करके छोटे डेटासेट के विश्लेषण के लिए उपयुक्त है।
  2. मैप रिड्यूस मोड: इस मोड में, पिग लैटिन में लिखी गई क्वेरीज़ को मैप रिड्यूस जॉब्स में अनुवादित किया जाता है और उन्हें हैडूप क्लस्टर पर चलाया जाता है (क्लस्टर स्यूडो-डिस्ट्रिब्यूटेड या पूरी तरह से डिस्ट्रिब्यूटेड हो सकता है)। पूरी तरह से डिस्ट्रिब्यूटेड क्लस्टर वाला मैप रिड्यूस मोड बड़े डेटासेट पर पिग चलाने के लिए उपयोगी है।

ये दोनों क्लासिक जोड़ी हैं। वर्तमान रिलीज़ में वास्तव में छह निष्पादन प्रकार या एक्ज़ीक्यूशनटाइप उपलब्ध हैं, जिनमें से प्रत्येक को एक ही तरीके से चुना जाता है। -x ध्वज, जैसा कि प्रलेखित है Pig 0.18.0 आरंभ करने की मार्गदर्शिका.

एक्जीटाइप आदेश जहां काम चलता है
स्थानीय सुअर -x स्थानीय स्थानीय फ़ाइल प्रणाली के विरुद्ध एक एकल JVM
तेज़ लोकल सुअर -x तेज़_स्थानीय टेज़ रनटाइम का उपयोग करने वाला एक एकल जेवीएम (प्रायोगिक)
Spark स्थानीय सुअर -x स्पार्क_लोकल एक सिंगल जेवीएम का उपयोग करते हुए Spark रनटाइम (प्रायोगिक)
मानचित्र छोटा करना सुअर या सुअर -x मैप रिड्यूस एचडीएफएस के साथ एक हैडूप क्लस्टर; यह डिफ़ॉल्ट सेटिंग है।
तेज सुअर -x तेज टेज़ इंजन चलाने वाला एक हैडूप क्लस्टर
Spark सुअर -x स्पार्क A SparkYARN या Mesos क्लस्टर के साथ HDFS

पिग लैटिन डेटा प्रकार और Operaमरोड़

स्क्रिप्ट लिखने से पहले यह जानना ज़रूरी है कि Pig क्या-क्या डेटा संभाल सकता है और उस पर क्या-क्या कर सकता है। इसका डेटा मॉडल पूरी तरह से नेस्टेड है, जिसकी वजह से Pig लॉग फ़ाइलें और अन्य ऐसे इनपुट पढ़ सकता है जिन्हें रिलेशनल टेबल अस्वीकार कर देती है।

पिग लैटिन में टाइप के दो परिवार होते हैं:

  • स्केलर प्रकार: int, long, float, double, chararray, bytearray, boolean, datetime, biginteger और bigdecimalउदाहरण स्क्रिप्ट बाद में प्रत्येक कॉलम को इस प्रकार घोषित करती है। chararray.
  • जटिल प्रकार: a टपल यह फ़ील्ड का एक क्रमबद्ध सेट है और एक पंक्ति की तरह व्यवहार करता है; बैग यह टुपल्स का एक अव्यवस्थित संग्रह है और एक टेबल की तरह व्यवहार करता है; नक्शा यह कुंजी और मान युग्मों का एक समूह है जिसकी कुंजी एक होनी चाहिए chararray.

ऑपरेटर कुछ ही नौकरियों में विभाजित हैं, और उनमें से मुट्ठी भर लोग लगभग हर पाइपलाइन का संचालन करते हैं:

Operaटो यह क्या करता है
लोड करें / स्टोर करें फाइल सिस्टम से एक संबंध पढ़ें और परिणाम वापस लिखें
फ़िल्टर केवल उन्हीं टुपल्स को रखें जो किसी शर्त से मेल खाते हों।
प्रत्येक के लिए… उत्पन्न करें नए फ़ील्ड बनाते हुए, कॉलम दर कॉलम काम करें
समूह / सह-समूह एक कुंजी के आधार पर एक संबंध, या दो या अधिक संबंधों को समूहबद्ध करें
शामिल हों आंतरिक या बाहरी जोड़ के साथ संबंधों को संयोजित करें
संघ / विभाजन संबंधों को आपस में मिलाएं, या एक संबंध को कई भागों में विभाजित करें।
क्रमबद्ध करें / विशिष्ट / सीमा टुपल्स की संख्या को क्रमबद्ध करें, डुप्लिकेट हटाएं और सीमित करें।
सारांश प्रस्तुत करें / वर्णन करें / समझाएं / उदाहरण दें परिणामों, स्कीमाओं, निष्पादन योजनाओं और नमूना रन का निरीक्षण करें

चारों निरीक्षण ऑपरेटरों के पास ग्रंट शॉर्टकट भी हैं, जिससे समय की बचत होती है।ping डीबगिंग के दौरान: \d डंप के लिए, \de वर्णन करने के लिए, \e व्याख्या के लिए और \i उदाहरण के लिए।

.. पूर्वापेक्षाएँ

Pig एक क्लाइंट-साइड टूल है। यह स्क्रिप्ट को पार्स करता है, काम की योजना बनाता है और जॉब सबमिट करता है, लेकिन यह अपना खुद का स्टोरेज या क्लस्टर प्रदान नहीं करता है, इसलिए पहले एक कार्यशील Hadoop इंस्टॉलेशन होना आवश्यक है। Apache की आवश्यकताएँ संक्षिप्त हैं।

घटक आवश्यकता इसकी आवश्यकता क्यों है
Hadoop Hadoop 2.x या 3.x, जिसमें HADOOP_HOME निर्यात किया गया हो यह HDFS और निष्पादन इंजन प्रदान करता है। HADOOP_HOME के ​​बिना, Pig 0.18.0 एम्बेडेड Hadoop 2.7.3 पर वापस चला जाता है।
Java Java 1.7 या उसके बाद के संस्करण में, JAVA_HOME को इंस्टॉलेशन रूट पर सेट किया गया हो। पिग और हैडूप डेमन हैं Java कार्यक्रमों
Python (वैकल्पिक) Python 2.7 स्ट्रीमिंग के लिए ही आवश्यक है Python उपयोगकर्ता परिभाषित कार्य
चींटी (वैकल्पिक) चींटी 1.8 Pig को स्रोत से बनाते या पुनः संकलित करते समय ही इसकी आवश्यकता होती है।

उस सूची के साथ दो व्यावहारिक बिंदु भी हैं। पहला, सब कुछ एक ऐसे लिनक्स उपयोगकर्ता के रूप में चलाएँ जिसके पास पहले से ही एक होम डायरेक्टरी हो। एचडीएफएस और इस पर लिखने की अनुमति; यह ट्यूटोरियल उपयोग करता है hduserHadoop सेटअप के दौरान बनाया गया खाता। दूसरा, MapReduce मोड में Pig लॉन्च करने से पहले क्लस्टर शुरू करें, क्योंकि NameNode और ResourceManager के बंद होने पर Pig तुरंत विफल हो जाता है। यदि Hadoop अभी तक स्थापित नहीं है, तो आगे की प्रक्रिया करें। Hadoop को कैसे स्थापित करें पहले।

पिग को कैसे डाउनलोड और इंस्टॉल करें

अब इस अपाचे पिग ट्यूटोरियल में, हम सीखेंगे कि पिग को कैसे डाउनलोड और इंस्टॉल किया जाए:

वास्तविक प्रक्रिया शुरू करने से पहले, सुनिश्चित करें कि आपके सिस्टम में Hadoop इंस्टॉल है। उपयोगकर्ता आईडी को 'hduser' में बदलें (यह वही आईडी है जिसका उपयोग Hadoop को कॉन्फ़िगर करते समय किया गया था; आप अपनी Hadoop कॉन्फ़िगरेशन के दौरान उपयोग की गई उपयोगकर्ता आईडी का उपयोग कर सकते हैं)।

पिग इंस्टॉलेशन शुरू होने से पहले लिनक्स उपयोगकर्ता को एचडीयूज़र में बदलने के लिए टर्मिनल कमांड।

चरण 1) Pig Hadoop का नवीनतम स्थिर संस्करण नीचे दिए गए किसी भी मिरर साइट से डाउनलोड करें।

https://pig.apache.org/releases.html

नीचे दिखाए अनुसार, डाउनलोड करने के लिए tar.gz फ़ाइल का चयन करें (src.tar.gz का नहीं)।

Apache Pig ने tar.gz वितरण का चयन करने के लिए डाउनलोड पृष्ठ जारी किया है।

चरण 2) डाउनलोड पूरा होने के बाद, डाउनलोड की गई tar फ़ाइल वाली डायरेक्टरी में जाएं और tar फ़ाइल को उस स्थान पर ले जाएं जहां आप Pig Hadoop को सेटअप करना चाहते हैं। इस मामले में, हम इसे /usr/local में ले जाएंगे।

टर्मिनल डाउनलोड की गई पिग टार फ़ाइल को /usr/local डायरेक्टरी में स्थानांतरित कर रहा है।

उस डायरेक्टरी में जाएं जिसमें पिग हैडूप फाइलें होंगी।

cd /usr/local

Extracटार फाइल की सामग्री नीचे दी गई है।

sudo tar -xvf pig-0.12.1.tar.gz

टर्मिनल पूर्वtracsudo tar -xvf कमांड का उपयोग करके पिग आर्काइव को टिंग करना

चरण 3) Pig से संबंधित पर्यावरण चर जोड़ने के लिए ~/.bashrc फ़ाइल को संशोधित करें।

अपनी पसंद के किसी भी टेक्स्ट एडिटर में ~/.bashrc फ़ाइल खोलें और नीचे दिए गए बदलाव करें।

export PIG_HOME=<Installation directory of Pig>
export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH

टेक्स्ट एडिटर में bashrc फ़ाइल में जोड़ी गई PIG_HOME और PATH निर्यात लाइनें दिखाई गई हैं।

चरण 4) अब, नीचे दिए गए कमांड का उपयोग करके इस पर्यावरण कॉन्फ़िगरेशन को सोर्स करें।

. ~/.bashrc

टर्मिनल द्वारा bashrc फ़ाइल को सोर्स किया जा रहा है ताकि नए Pig पर्यावरण चर प्रभावी हो सकें।

चरण 5) हमें Hadoop 2.2.0 को सपोर्ट करने के लिए Pig को पुनः कंपाइल करने की आवश्यकता है।

इसे करने के लिए ये चरण हैं।

पिग होम डायरेक्टरी पर जाएं।

cd $PIG_HOME

Ant इंस्टॉल करें।

sudo apt-get install ant

Pig को पुनः संकलित करने की तैयारी में apt-get का उपयोग करके टर्मिनल पर Apache Ant स्थापित किया जा रहा है।

ध्यान दें: डाउनलोड शुरू हो जाएगा और आपकी इंटरनेट स्पीड के अनुसार इसमें समय लगेगा।

पिग को पुनः संकलित करें।

sudo ant clean jar-all -Dhadoopversion=23

टर्मिनल पर Ant टारगेट चल रहा है जो Hadoop 2 लाइन के लिए Pig को रीकम्पाइल करता है।

कृपया ध्यान दें कि इस पुनर्संकलन प्रक्रिया में कई घटक डाउनलोड किए जाते हैं, इसलिए सिस्टम का इंटरनेट से कनेक्ट होना आवश्यक है।

इसके अलावा, यदि यह प्रक्रिया कहीं अटक जाती है और आपको 20 मिनट से अधिक समय तक कमांड प्रॉम्प्ट पर कोई गतिविधि दिखाई नहीं देती है, तो Ctrl + c दबाएं और उसी कमांड को दोबारा चलाएं।

हमारे मामले में, इसमें 20 मिनट लगते हैं।

इस उदाहरण में पिग रीकंपाइलेशन से प्राप्त टर्मिनल आउटपुट, जिसमें लगभग बीस मिनट लगे।

यह पुनर्संकलन चरण 0.12.1 युग से संबंधित है, जब शिप किए गए जार हैडूप 1 के विरुद्ध बनाए गए थे और -Dhadoopversion=23 इस फ़्लैग ने एंट बिल्ड को हैडूप 0.23 और 2.x लाइन पर स्विच कर दिया है। अपाचे पिग 0.18.0 में ऐसे बाइनरी शामिल हैं जो पहले से ही हैडूप 2.7 और उससे ऊपर के संस्करणों के साथ-साथ हैडूप 3 पर भी चलते हैं, इसलिए वर्तमान रिलीज़ पर आप आमतौर पर टारबॉल को अनपैक कर सकते हैं और सीधे नीचे दिए गए परीक्षण पर जा सकते हैं।

चरण 6) कमांड का उपयोग करके पिग इंस्टॉलेशन का परीक्षण करें

pig -help

स्थापना के बाद Pig कमांड लाइन विकल्पों को सूचीबद्ध करने वाले pig -help कमांड का आउटपुट

उदाहरण सुअर स्क्रिप्ट

Pig इंस्टॉल हो जाने के बाद, इस Apache Pig ट्यूटोरियल के बाकी हिस्से में एक पूरी स्क्रिप्ट चलाई जाएगी। हम Pig स्क्रिप्ट का उपयोग करके प्रत्येक देश में बेचे गए उत्पादों की संख्या ज्ञात करेंगे।

इनपुट: हमारा इनपुट डेटा सेट एक CSV फ़ाइल है। SalesJan2009.csv.

चरण 1) Hadoop शुरू करें।

$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh

चरण 2) बिग डेटा में पिग (Pig) मैप रिड्यूस मोड में एचडीएफएस से एक फाइल लेता है और परिणामों को वापस एचडीएफएस में संग्रहीत करता है।

स्थानीय फ़ाइल सिस्टम पर ~/input/SalesJan2009.csv पर संग्रहीत फ़ाइल SalesJan2009.csv को HDFS (Hadoop Distributed File System) होम डायरेक्टरी में कॉपी करें।

इस अपाचे पिग उदाहरण में, फ़ाइल इनपुट फ़ोल्डर में है। यदि फ़ाइल किसी अन्य स्थान पर संग्रहीत है, तो उस फ़ोल्डर का नाम दें।

$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /

टर्मिनल स्थानीय फ़ाइल सिस्टम से SalesJan2009.csv फ़ाइल को HDFS में कॉपी कर रहा है।

जांचें कि फाइल वास्तव में कॉपी हुई थी या नहीं।

$HADOOP_HOME/bin/hdfs dfs -ls /

HDFS रूट लिस्टिंग से पुष्टि होती है कि SalesJan2009.csv फ़ाइल कॉपी हो गई थी।

चरण 3) सुअर विन्यास।

सबसे पहले, $PIG_HOME/conf पर जाएं और मूल प्रॉपर्टीज़ फ़ाइल की एक प्रति सुरक्षित रखें।

cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original

Pig कॉन्फ़िगरेशन को संपादित करने से पहले टर्मिनल pig.properties फ़ाइल का बैकअप ले रहा है।

अपनी पसंद के किसी टेक्स्ट एडिटर का उपयोग करके pig.properties फ़ाइल खोलें और pig.logfile का उपयोग करके लॉग फ़ाइल का पथ निर्दिष्ट करें।

sudo gedit pig.properties

pig.properties कॉन्फ़िगरेशन फ़ाइल को टेक्स्ट एडिटर में लॉग फ़ाइल सेटिंग पर खोलें।

लॉगर त्रुटियों को लॉग करने के लिए इस फ़ाइल का उपयोग करेगा।

चरण 4) 'pig' कमांड चलाएं, जिससे Pig कमांड प्रॉम्प्ट शुरू हो जाएगा, जो Pig क्वेरी के लिए एक इंटरैक्टिव शेल है।

pig

pig कमांड चलने के बाद Grunt इंटरेक्टिव शेल शुरू हो जाता है

चरण 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 दबाएँ।

Grunt शेल LOAD स्टेटमेंट को स्वीकार करता है जो बिक्री CSV फ़ाइल को एक रिलेशन में पढ़ता है।

— बी. डेटा को देश के आधार पर समूहित करें।

GroupByCountry = GROUP salesTable BY Country;

Grunt शेल GROUP स्टेटमेंट को स्वीकार करता है जो बिक्री संबंधों को देश के अनुसार समूहित करता है।

— C. 'GroupByCountry' में प्रत्येक टपल के लिए, देश का नाम: बेचे गए उत्पादों की संख्या के रूप में परिणामी स्ट्रिंग उत्पन्न करें।

CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));

इस आदेश के बाद Enter दबाएँ।

Grunt शेल FOREACH GENERATE स्टेटमेंट को स्वीकार करता है जो देश और संख्या स्ट्रिंग बनाता है।

— डी. डेटा प्रवाह के परिणामों को एचडीएफएस पर 'pig_output_sales' निर्देशिका में संग्रहीत करें।

STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');

Grunt शेल STORE स्टेटमेंट को स्वीकार करता है जो pig_output_sales डायरेक्टरी में आउटपुट लिखता है।

इस कमांड को निष्पादित होने में कुछ समय लगेगा। पूरा होने पर, आपको निम्न स्क्रीन दिखाई देगी।

STORE कमांड के निष्पादन के बाद कंसोल स्क्रीन दिखाई देगी।

चरण 6) परिणाम को कमांड इंटरफेस के माध्यम से देखा जा सकता है।

$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000

परिणाम फ़ाइल का कमांड लाइन आउटपुट जिसमें प्रत्येक देश में बेचे गए उत्पादों की सूची दी गई है।

परिणाम वेब इंटरफेस के माध्यम से भी देखे जा सकते हैं।

वेब ब्राउज़र में http://localhost:50070/ खोलें।

पोर्ट 50070 हैडूप 2 पर नेमनोड वेब यूआई है। हैडूप 3 ने उसी पेज को पोर्ट 9870 पर स्थानांतरित कर दिया है, इसलिए यदि आपका क्लस्टर हैडूप 3 चला रहा है तो उस पते का उपयोग करें।

HDFS फ़ाइल सिस्टम को ब्राउज़ करने के लिए Hadoop NameNode वेब इंटरफ़ेस का उपयोग किया जाता है।

अब 'ब्राउज़ द फाइलसिस्टम' चुनें और /user/hduser/pig_output_sales पर जाएं।

एचडीएफएस ब्राउज़र एचडीयूज़र होम पाथ के अंतर्गत pig_output_sales निर्देशिका को प्रदर्शित करता है।

स्क्रिप्ट द्वारा उत्पन्न देश और उत्पाद-गणना युग्मों को पढ़ने के लिए part-r-00000 खोलें।

पार्ट-आर-00000 आउटपुट फ़ाइल का ब्राउज़र दृश्य जिसमें देश और उत्पाद गणना जोड़े शामिल हैं

अपाचे पिग बनाम हाइव बनाम मैप रिड्यूस

पिग का मूल्यांकन शायद ही कभी अकेले किया जाता है। आमतौर पर यह सवाल उठता है कि क्या कोई नौकरी पिग के अंतर्गत आती है या नहीं। करंड या फिर हाथ से लिखे गए मैप रिड्यूस प्रोग्राम में, क्योंकि ये तीनों ही अंततः एक ही क्लस्टर पर जॉब के रूप में समाप्त होते हैं।

पहलू मैप रिड्यूस (Java) अपाचे सुअर अपाचे हाइव
इंटरफेस Java API पिग लैटिन, एक डेटा-फ्लो स्क्रिप्टिंग भाषा हाइवक्यूएलएक SQL बोली
पेट की मांसपेशियों का स्तरtracउत्पादन निम्न मध्यम हाई
सामान्य उपयोगकर्ता Java विकासक डेटा इंजीनियर या शोधकर्ता SQL में निपुण विश्लेषक
यह डेटा उपयुक्त है कोई भी चीज़, मैन्युअल रूप से संभाली गई संरचित और अर्ध-संरचित; लोड करते समय स्कीमा वैकल्पिक है मेटास्टोर में पंजीकृत संरचित तालिकाएँ
Code आयतन अधिकांश रेखाएँ कम पंक्तियाँ किसी क्वेरी के लिए सबसे कम पंक्तियाँ
इस रूप में चलता है एक मैप रिड्यूस जॉब यह MapReduce, Tez या किसी अन्य फॉर्मेट में कंपाइल होता है। Spark नौकरियों यह MapReduce, Tez या किसी अन्य फॉर्मेट में कंपाइल होता है। Spark नौकरियों
सबसे अच्छा पूर्ण नियंत्रण और अनुकूलित तर्क बहु-चरणीय ईटीएल पाइपलाइन तदर्थ पूछताछ और रिपोर्टिंग

व्यवहार में विभाजन सीधा है। Hive का उपयोग तब करें जब डेटा पहले से ही एक टेबल जैसा दिखता हो और प्रश्न SQL से संबंधित हो। Pig का उपयोग तब करें जब इनपुट अव्यवस्थित हो, जब पाइपलाइन एक क्वेरी के बजाय रूपांतरणों की एक श्रृंखला हो, या जब एक ही स्क्रिप्ट को ब्रांच और रीजॉइन करना हो। MapReduce का उपयोग केवल तभी करें जब दोनों में से कोई भी पूर्ण रूप से मान्य न हो।tracक्योंकि पंक्तियों की संख्या तेजी से बढ़ती है, इसलिए तर्क को व्यक्त करना संभव नहीं है।

सुअर भी पारिस्थितिकी तंत्र के बाकी हिस्सों के साथ आराम से रहता है। स्क्वूप और फ्लूम कच्चे डेटा को लैंड करें, पिग या हाइव उसे आकार दें, और एक शेड्यूलर जैसे कि अपाचे ऊज़ी यह चरणों को एक दोहराने योग्य पाइपलाइन में पिरोता है। इन उपकरणों की व्यापक उपयोगिता को समझने के लिए, मार्गदर्शिका देखें। बड़ा डेटा और सारांश बड़े डेटा उपकरणहस्तलिखित स्क्रिप्ट के वाणिज्यिक ईटीएल विकल्प के लिए, देखें Talend.

अक्सर पूछे जाने वाले प्रश्न

जी हां। अपाचे पिग 0.18.0 15 सितंबर 2025 को जारी किया गया था और इसमें हैडूप 3, टेज़ 0.10, हाइव 3 के लिए समर्थन शामिल किया गया था। Spark 3, एचबेस 2 और Python 3. विकास की गति याहू! के दिनों की तुलना में धीमी है, लेकिन परियोजना को बंद नहीं किया गया है।

एआई सहायक एक सामान्य विवरण से रूपांतरण तर्क तैयार करते हैं, जॉइन कुंजी सुझाते हैं, रन के बीच स्कीमा विचलन को चिह्नित करते हैं, और क्लस्टर लॉग को संभावित कारण में सारांशित करते हैं। आउटपुट को एक प्रारंभिक मसौदा मानें जिसे अभी भी वास्तविक डेटा के साथ विश्लेषण करने की आवश्यकता है।

कोपायलट आसानी से विश्वसनीय पिग लैटिन भाषा तैयार कर लेता है क्योंकि इसका सिंटैक्स सार्वजनिक रिपॉजिटरी में अच्छी तरह से मौजूद है। हालांकि, यह फंक्शन के नाम मनगढ़ंत बना सकता है और फ़ील्ड की स्थिति में गड़बड़ी कर सकता है, इसलिए तैयार की गई स्क्रिप्ट पर भरोसा करने से पहले किसी सैंपल पर DESCRIBE और ILLUSTRATE कमांड चलाकर देखें।

Pig तभी चलता है जब कोई स्टेटमेंट मैटेरियलाइजेशन को बाध्य करता है। LOAD और FOREACH स्टेटमेंट्स की श्रृंखला को वैलिडेट किया जाता है, लेकिन DUMP या STORE स्टेटमेंट आने तक वे कभी नहीं चलते, इसलिए ट्रांसफॉर्मेशन के बाद समाप्त होने वाली स्क्रिप्ट चुपचाप चलती रहती है।

DUMP टर्मिनल पर एक संबंध प्रिंट करता है और इसका उपयोग परीक्षण के लिए किया जाता है। STORE PigStorage जैसे स्टोर फ़ंक्शन के माध्यम से फ़ाइल सिस्टम में संबंध लिखता है। प्रोडक्शन स्क्रिप्ट हमेशा STORE के साथ समाप्त होनी चाहिए।

नहीं। AS क्लॉज़ वैकल्पिक है। इसके बिना, प्रत्येक फ़ील्ड को बाइटएरे के रूप में लोड किया जाता है और स्थिति के आधार पर संदर्भित किया जाता है, जैसे कि $0 और $1। स्कीमा घोषित करने से स्क्रिप्ट पठनीय हो जाती हैं और पिग को पहले ही टाइप-चेक करने की सुविधा मिलती है।

अधिकांश नई पाइपलाइनें शुरू होती हैं Sparkजिसमें एक बड़ा समुदाय और समृद्ध लाइब्रेरी हैं। पिग उन जगहों पर उपयोगी बना रहता है जहां पहले से स्क्रिप्ट मौजूद हैं, जहां टीम डेटा-फ्लो सिंटैक्स को प्राथमिकता देती है, या जहां पिग चलता है। Spark स्पार्क एक्जीक्यूटटाइप के माध्यम से।

Sqoop रिलेशनल टेबल को इम्पोर्ट करता है और Flume लॉग डेटा को HDFS में स्ट्रीम करता है। फिर Pig प्राप्त डेटा को ट्रांसफॉर्म करता है। Oozie इम्पोर्ट, ट्रांसफॉर्म और एक्सपोर्ट चरणों को एक शेड्यूल्ड वर्कफ़्लो में जोड़ता है, जिससे यह प्रक्रिया मैन्युअल रूप से चलाए बिना दोहराई जा सकती है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: