Cloud Dataflow में बिग डेटा टेक्स्ट प्रोसेसिंग पाइपलाइन चलाएं

1. खास जानकारी

Cloud-Dataflow.png

Dataflow क्या है?

Dataflow एक ऐसी मैनेज की गई सेवा है जिसकी मदद से, डेटा प्रोसेसिंग के कई तरह के पैटर्न लागू किए जा सकते हैं. इस साइट पर मौजूद दस्तावेज़ में आपको Dataflow का इस्तेमाल करके, बैच और स्ट्रीमिंग डेटा प्रोसेसिंग पाइपलाइन को डिप्लॉय करने का तरीका बताया गया है. इसमें, सेवा सुविधाओं का इस्तेमाल करने के निर्देश भी दिए गए हैं.

Apache बीम SDK, एक ओपन सोर्स प्रोग्रामिंग मॉडल है. इसकी मदद से, बैच और स्ट्रीमिंग पाइपलाइन, दोनों डेवलप किए जा सकते हैं. Apache बीम प्रोग्राम से अपनी पाइपलाइन बनाई जाती है और फिर उन्हें Dataflow सेवा पर चलाया जाता है. Apache बीम दस्तावेज़, Apache बीम प्रोग्रामिंग मॉडल, SDK टूल, और अन्य रनर के बारे में गहराई से सैद्धांतिक जानकारी और रेफ़रंस कॉन्टेंट देता है.

तेज़ी से डेटा के आंकड़े स्ट्रीम करना

Dataflow की मदद से, स्ट्रीमिंग डेटा पाइपलाइन को तेज़ और आसान तरीके से डेवलप किया जा सकता है. ऐसा करने पर डेटा इंतज़ार का समय कम होता है.

ऑपरेशन और मैनेजमेंट को आसान बनाना

टीम को सर्वर क्लस्टर को मैनेज करने के बजाय, प्रोग्रामिंग पर फ़ोकस करने दें. ऐसा इसलिए, क्योंकि Dataflow का बिना सर्वर वाला तरीका, डेटा इंजीनियरिंग के वर्कलोड से ऑपरेशनल ओवरहेड को हटा देता है.

मालिकाना हक की कुल लागत कम करना

संसाधन ऑटो स्केलिंग के साथ लागत के हिसाब से बैच प्रोसेसिंग की सुविधा जोड़ी गई है. इसका मतलब है कि Dataflow बिना किसी सीमा के, सीज़न के हिसाब से और ज़्यादा खर्च वाले वर्कलोड को मैनेज करने के लिए, वर्चुअल तौर पर अनगिनत क्षमता देता है.

मुख्य सुविधाएं

अपने-आप काम करने वाले संसाधन का मैनेजमेंट और काम के डाइनैमिक तरीके के बीच संतुलन

Dataflow प्रोसेस करने के दौरान संसाधनों को अपने-आप प्रावधान और मैनेज करने की सुविधा देता है, ताकि इंतज़ार का समय कम किया जा सके और ज़्यादा से ज़्यादा इस्तेमाल किया जा सके. इससे, आपको इंस्टेंस को स्पिन अप करने या उन्हें खुद सुरक्षित करने की ज़रूरत नहीं पड़ती. काम के बंटवारे की सुविधा अपने-आप काम करती है और इसे इस तरह ऑप्टिमाइज़ किया जाता है कि ज़रूरत के समय होने वाले काम के बीच डाइनैमिक तरीके से दोबारा संतुलन न बने. "हॉट की" खोजने की ज़रूरत नहीं है या अपने इनपुट डेटा को प्रीप्रोसेस करें.

हॉरिज़ॉन्टल ऑटो स्केलिंग

बेहतर सीटीआर के लिए, कर्मचारियों के संसाधनों की हॉरिज़ॉन्टल ऑटो स्केलिंग से कीमत के साथ-साथ परफ़ॉर्मेंस बेहतर होती है.

बैच प्रोसेसिंग के लिए, संसाधन शेड्यूल करने की ज़रूरत के हिसाब से शुल्क

नौकरी के शेड्यूल को आसानी से प्रोसेस करने के लिए, जैसे कि रात भर की नौकरियां, फ़्लेक्सिबल रिसॉर्स शेड्यूलिंग (FlexRS) से बैच प्रोसेसिंग के लिए कम कीमत मिलती है. इन सुविधाजनक जॉब को इस गारंटी के साथ एक सूची में रखा जाता है कि इन्हें छह घंटे की समयसीमा में पूरा करने के लिए मिल जाएगा.

यह ट्यूटोरियल https://cloud.google.com/dataflow/docs/quickstarts/quickstart-java-maven से लिया गया है

आपको इनके बारे में जानकारी मिलेगी

  • Java SDK टूल का इस्तेमाल करके, Apache बीम के साथ Maven प्रोजेक्ट बनाने का तरीका
  • Google Cloud Platform Console का इस्तेमाल करके, उदाहरण के तौर पर एक पाइपलाइन चलाएं
  • Cloud Storage से जुड़ी बकेट और उसके कॉन्टेंट को मिटाने का तरीका

आपको इन चीज़ों की ज़रूरत होगी

  • ब्राउज़र, जैसे कि Chrome या Firefox

इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?

इसे सिर्फ़ पढ़ें इसे पढ़ें और कसरतों को पूरा करें

Google Cloud Platform की सेवाएं इस्तेमाल करने का आपका अनुभव कैसा रहा?

शुरुआती इंटरमीडिएट कुशल

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेटअप करना

  1. Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. (अगर आपके पास पहले से Gmail या G Suite खाता नहीं है, तो आपको एक खाता बनाना होगा.)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

प्रोजेक्ट आईडी याद रखें. यह Google Cloud के सभी प्रोजेक्ट के लिए एक खास नाम होता है (ऊपर दिया गया नाम पहले ही ले लिया गया है और यह आपके लिए काम नहीं करेगा!). बाद में, इस कोडलैब को इस कोडलैब में PROJECT_ID के तौर पर दिखाया जाएगा.

  1. इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी.

इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. "साफ़ करना" सेक्शन में दिए गए निर्देशों का पालन करना न भूलें सेक्शन में, संसाधनों को बंद करने का तरीका बताया गया है. इससे इस ट्यूटोरियल के अलावा बिलिंग की सुविधा नहीं मिलेगी. Google Cloud के नए उपयोगकर्ता, 300USD डॉलर के मुफ़्त में आज़माने वाले प्रोग्राम में हिस्सा ले सकते हैं.

एपीआई चालू करना

स्क्रीन पर सबसे ऊपर बाईं ओर, मेन्यू आइकॉन पर क्लिक करें.

2bfc27ef9ba2ec7d.png

चुनें एपीआई और सेवाएं > डैशबोर्ड पर क्लिक करें.

5b65523a6cc0afa6.png

+ एपीआई और सेवाएं चालू करें चुनें.

81ed72192c0edd96.png

"Compute Engine" खोजें लिखें. "Compute Engine API" पर क्लिक करें पर क्लिक करें.

3f201e991c7b4527.png

Google Compute Engine पेज पर, चालू करें पर क्लिक करें

ac121653277fa7bb.png

इसके चालू होने के बाद, वापस जाने के लिए ऐरो पर क्लिक करें.

अब नीचे दिए गए एपीआई खोजें और उन्हें भी चालू करें:

  • क्लाउड डेटाफ़्लो
  • स्टैकड्राइवर
  • Cloud Storage
  • क्लाउड मेमोरी JSON
  • BigQuery
  • Cloud Pub/Sub
  • Cloud Datastore
  • Cloud Resource Manager API

3. नया Cloud Storage बकेट बनाना

Google Cloud Platform Console में, स्क्रीन के सबसे ऊपर बाईं ओर मेन्यू आइकॉन पर क्लिक करें:

2bfc27ef9ba2ec7d.png

नीचे स्क्रोल करें और Cloud Storage > स्टोरेज सब-सेक्शन में ब्राउज़र:

2b6c3a2a92b47015.png

अब आपको Cloud Storage ब्राउज़र दिखेगा. यह मान लें कि किसी ऐसे प्रोजेक्ट का इस्तेमाल किया जा रहा है जिसमें फ़िलहाल Cloud Storage बकेट नहीं है, तो आपको एक नया बकेट बनाने का न्योता दिखेगा. बकेट बनाने के लिए, बकेट बनाएं बटन दबाएं:

a711016d5a99dc37.png

अपने बकेट के लिए कोई नाम डालें. डायलॉग बॉक्स के नोट के मुताबिक, हर Cloud Storage में बकेट के नाम अलग-अलग होने चाहिए. इसलिए, अगर आपने कोई ऐसा नाम चुना है जो ज़ाहिर हो सकता है, जैसे कि "टेस्ट", तो आपको शायद यह पता चल जाएगा कि किसी दूसरे व्यक्ति ने पहले ही इस नाम की बकेट बना ली है और आपको गड़बड़ी का मैसेज मिलेगा.

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

3a5458648cfe3358.png

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

3bda986ae88c4e71.png

हालांकि, आपको दिखने वाले बकेट का नाम अलग होगा, क्योंकि वे सभी प्रोजेक्ट के लिए अलग-अलग होने चाहिए.

4. क्लाउड शेल शुरू करें

Cloud Shell चालू करें

  1. Cloud Console में, Cloud Shell चालू करें H7JlbhKGHITmsxhQIcLwoe5HXZMhDlYue4K-SPszMxUxDjIeWfOHBfxDHYpmLQTzUmQ7Xx8o6OJANnQF0iBuUyfp1RzVad_4nCa0zLUDZLGFGFl पर क्लिक करें.

zlNW0HehB_AFW1qZ4AyebSQUdWm95n7TbnOr7UVm3j9dFcg6oWApJRlC0jnU1Mvb-IQp-trP1Px8xKNwt6o3pP6fyih947sEhOFI4IRF0W7WZk6hFqZDUGXQQXrw21GuMm2ecHrbzQ

अगर आपने Cloud Shell का इस्तेमाल पहले कभी नहीं किया है, तो आपको इसके बारे में जानकारी देने वाली एक इंटरमीडिएट स्क्रीन (पेज के फ़ोल्ड के नीचे) दिखेगी. अगर ऐसा है, तो जारी रखें पर क्लिक करें (यह आपको फिर कभी नहीं दिखेगा). एक बार इस्तेमाल होने वाली स्क्रीन कुछ इस तरह दिखती है:

kEPbNAo_w5C_pi9QvhFwWwky1cX8hr_xEMGWySNIoMCdi-Djx9AQRqWn-__DmEpC7vKgUtl-feTcv-wBxJ8NwzzAp7mY65-fi2LJo4twUoewT1SUjd6Y3h81RG3rKIkqhoVlFR-G7w

प्रावधान करने और Cloud Shell से कनेक्ट होने में कुछ ही समय लगेगा.

pTv5mEKzWMWp5VBrg2eGcuRPv9dLInPToS-mohlrqDASyYGWnZ_SwE-MzOWHe76ZdCSmw0kgWogSJv27lrQE8pvA5OD6P1I47nz8vrAdK7yR1NseZKJvcxAZrPb8wRxoqyTpD-gbhA

इस वर्चुअल मशीन में ऐसे सभी डेवलपमेंट टूल मौजूद हैं जिनकी आपको ज़रूरत पड़ेगी. यह पांच जीबी की स्थायी होम डायरेक्ट्री उपलब्ध कराता है और Google Cloud में चलता है. यह नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस को बेहतर बनाता है. अगर सभी नहीं, तो इस कोडलैब में आपका बहुत सारा काम बस किसी ब्राउज़र या आपके Chromebook से किया जा सकता है.

Cloud Shell से कनेक्ट करने के बाद, आपको दिखेगा कि आपकी पुष्टि पहले ही हो चुकी है. साथ ही, यह प्रोजेक्ट पहले से ही आपके प्रोजेक्ट आईडी पर सेट है.

  1. यह पुष्टि करने के लिए Cloud Shell में नीचे दिया गया कमांड चलाएं कि आपकी पुष्टि हो गई है:
gcloud auth list

कमांड आउटपुट

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
gcloud config list project

कमांड आउटपुट

[core]
project = <PROJECT_ID>

अगर ऐसा नहीं है, तो आप इसे इस निर्देश की मदद से सेट कर सकते हैं:

gcloud config set project <PROJECT_ID>

कमांड आउटपुट

Updated property [core/project].

5. Maven प्रोजेक्ट बनाना

Cloud Shell के लॉन्च होने के बाद, Apache बीम के लिए Java SDK टूल का इस्तेमाल करके Maven प्रोजेक्ट बनाना शुरू करें.

Apache बीम, डेटा पाइपलाइन के लिए ओपन सोर्स प्रोग्रामिंग मॉडल है. इन पाइपलाइन को Apache बीम प्रोग्राम के साथ तय किया जाता है. साथ ही, अपनी पाइपलाइन को एक्ज़ीक्यूट करने के लिए, Dataflow जैसे रनर को चुना जा सकता है.

अपने शेल में mvn archetype:generate कमांड को इस तरह चलाएं:

  mvn archetype:generate \
     -DarchetypeGroupId=org.apache.beam \
     -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
     -DarchetypeVersion=2.46.0 \
     -DgroupId=org.example \
     -DartifactId=first-dataflow \
     -Dversion="0.1" \
     -Dpackage=org.apache.beam.examples \
     -DinteractiveMode=false

निर्देश चलाने के बाद, आपको अपनी मौजूदा डायरेक्ट्री के नीचे first-dataflow नाम की एक नई डायरेक्ट्री दिखेगी. first-dataflow में एक Maven प्रोजेक्ट शामिल है. इसमें Java के लिए, Cloud Dataflow SDK टूल और पाइपलाइन के उदाहरण शामिल हैं.

6. Cloud Dataflow पर टेक्स्ट प्रोसेस करने वाला पाइपलाइन चलाएं

सबसे पहले, अपने प्रोजेक्ट आईडी और Cloud Storage बकेट के नामों को एनवायरमेंट वैरिएबल के तौर पर सेव करके शुरुआत करते हैं. Cloud Shell में ऐसा किया जा सकता है. <your_project_id> को अपने प्रोजेक्ट आईडी से बदलना न भूलें.

 export PROJECT_ID=<your_project_id>

अब हम Cloud Storage बकेट के लिए भी ऐसा ही करेंगे. याद रखें, <your_bucket_name> को उस यूनीक नाम से बदलना याद रखें जिसका इस्तेमाल आपने पिछले चरण में बकेट बनाने के लिए किया था.

 export BUCKET_NAME=<your_bucket_name>

first-dataflow/ डायरेक्ट्री में बदलें.

 cd first-dataflow

हम WordCount नाम की एक पाइपलाइन चलाने वाले हैं, जो टेक्स्ट को पढ़ती है, टेक्स्ट की लाइनों को अलग-अलग शब्दों में टोकन करती है, और उनमें से हर शब्द की फ़्रीक्वेंसी काउंट करती है. सबसे पहले हम पाइपलाइन चलाएंगे. इसके बाद, हम हर चरण पर नज़र रखेंगे कि क्या चल रहा है.

अपने शेल या टर्मिनल विंडो में, mvn compile exec:java निर्देश देकर पाइपलाइन शुरू करें. --project, --stagingLocation, और --output आर्ग्युमेंट के लिए, नीचे दिया गया निर्देश उन एनवायरमेंट वैरिएबल के बारे में बताता है जिन्हें आपने इस चरण में पहले सेट अप किया था.

 mvn compile exec:java \
      -Pdataflow-runner compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--project=${PROJECT_ID} \
      --stagingLocation=gs://${BUCKET_NAME}/staging/ \
      --output=gs://${BUCKET_NAME}/output \
      --runner=DataflowRunner \
      --region=us-central1 \
      --gcpTempLocation=gs://${BUCKET_NAME}/temp"

जब काम चल रहा हो, तो नौकरी की सूची में नौकरी ढूंढें.

Google Cloud Platform कंसोल में Cloud Dataflow वेब यूज़र इंटरफ़ेस (यूआई) खोलें. आपको चल रहा है की स्थिति के साथ अपना शब्दों की संख्या का काम दिखाई देना चाहिए:

3623be74922e3209.png

अब पाइपलाइन पैरामीटर पर नज़र डालते हैं. काम के नाम पर क्लिक करके शुरू करें:

816d8f59c72797d7.png

किसी नौकरी को चुनने पर, आपको कार्रवाई करने वाला ग्राफ़ देखने का विकल्प मिलता है. पाइपलाइन का एक्ज़ीक्यूशन ग्राफ़, पाइपलाइन में हर ट्रांसफ़ॉर्म को एक बॉक्स के रूप में दिखाता है, जिसमें ट्रांसफ़ॉर्म का नाम और कुछ स्थिति की जानकारी होती है. ज़्यादा जानकारी देखने के लिए, हर चरण के सबसे ऊपर दाएं कोने में मौजूद कैरेट पर क्लिक करें:

80a972dd19a6f1eb.png

आइए देखते हैं कि पाइपलाइन हर चरण पर डेटा को कैसे बदलती है:

  • पढ़ें: इस चरण में, पाइपलाइन किसी इनपुट सोर्स से पढ़ती है. इस मामले में, यह Cloud Storage से एक टेक्स्ट फ़ाइल है, जिसमें शेक्सपियर के नाटक किंग लीयर का पूरा टेक्स्ट है. हमारी पाइपलाइन फ़ाइल की लाइन को लाइन के हिसाब से पढ़ती है और हर लाइन को PCollection आउटपुट करती है, जहां हमारी टेक्स्ट फ़ाइल की हर लाइन, कलेक्शन का एक एलिमेंट है.
  • CountWords: CountWords चरण के दो हिस्से होते हैं. सबसे पहले, यह हर लाइन को अलग-अलग शब्दों में टोकन करने के लिए, ExtractWords नाम के पैरलल डू फ़ंक्शन (ParDo) का इस्तेमाल करता है. ExtractWords का आउटपुट एक नया PCollection है, जहां हर एलिमेंट एक शब्द है. अगला चरण, Count, Java SDK टूल से मिले ट्रांसफ़ॉर्म का इस्तेमाल करता है. यह पासकोड, वैल्यू पेयर दिखाता है, जहां कुंजी एक यूनीक शब्द होती है और वैल्यू जितनी बार होती है उतनी बार वैल्यू होती है. CountWords को लागू करने का तरीका यहां दिया गया है. साथ ही, GitHub पर पूरी WordCount.java फ़ाइल देखी जा सकती है:
 /**
   * A PTransform that converts a PCollection containing lines of text into a PCollection of
   * formatted word counts.
   *
   * <p>Concept #3: This is a custom composite transform that bundles two transforms (ParDo and
   * Count) as a reusable PTransform subclass. Using composite transforms allows for easy reuse,
   * modular testing, and an improved monitoring experience.
   */
  public static class CountWords
      extends PTransform<PCollection<String>, PCollection<KV<String, Long>>> {
    @Override
    public PCollection<KV<String, Long>> expand(PCollection<String> lines) {

      // Convert lines of text into individual words.
      PCollection<String> words = lines.apply(ParDo.of(new ExtractWordsFn()));

      // Count the number of times each word occurs.
      PCollection<KV<String, Long>> wordCounts = words.apply(Count.perElement());

      return wordCounts;
    }
  }
  • MapElements: यह नीचे कॉपी किए गए FormatAsTextFn को शुरू करता है. यह हर कुंजी और वैल्यू पेयर को प्रिंट की जा सकने वाली स्ट्रिंग में फ़ॉर्मैट करता है.
  /** A SimpleFunction that converts a Word and Count into a printable string. */
  public static class FormatAsTextFn extends SimpleFunction<KV<String, Long>, String> {
    @Override
    public String apply(KV<String, Long> input) {
      return input.getKey() + ": " + input.getValue();
    }
  }
  • WriteCounts: इस चरण में हम प्रिंट की जा सकने वाली स्ट्रिंग को शार्ड की गई कई टेक्स्ट फ़ाइलों में लिखते हैं.

हम कुछ मिनट में, पाइपलाइन से मिलने वाले आउटपुट को देखेंगे.

अब ग्राफ़ की दाईं ओर मौजूद फ़ाइल की जानकारी पेज पर एक नज़र डालें, जिसमें वे पाइपलाइन पैरामीटर शामिल हैं जिन्हें हमने mvn compile exec:java कमांड में शामिल किया था.

9723815a1f5bf08b.png

208a7f0d6973acf6.png

पाइपलाइन के लिए कस्टम काउंटर भी देखे जा सकते हैं. इस मामले में, यह पता चलता है कि एक्ज़ीक्यूशन के दौरान अब तक कितनी खाली लाइनें मिली हैं. ऐप्लिकेशन से जुड़ी खास मेट्रिक को ट्रैक करने के लिए, अपनी पाइपलाइन में नए काउंटर जोड़े जा सकते हैं.

a2e2800e2c6893f8.png

गड़बड़ी के खास मैसेज देखने के लिए, कंसोल के सबसे नीचे मौजूद लॉग आइकॉन पर क्लिक करें.

23c64138a1027f8.png

पैनल डिफ़ॉल्ट रूप से जॉब लॉग के ऐसे मैसेज दिखाता है जो काम की पूरी स्थिति की रिपोर्ट करते हैं. काम की प्रोग्रेस और स्थिति बताने वाले मैसेज को फ़िल्टर करने के लिए, गंभीरता की कम से कम वैल्यू चुनने वाले टूल का इस्तेमाल किया जा सकता है.

94ba42015fdafbe2.png

ग्राफ़ में कोई पाइपलाइन चरण चुनने से, वह व्यू आपके कोड से जनरेट होने वाले लॉग में बदल जाता है. साथ ही, पाइपलाइन चरण में चलने वाला जनरेट किया गया कोड भी, लॉग में बदल जाता है.

जॉब लॉग पर वापस जाने के लिए, ग्राफ़ के बाहर क्लिक करके या दाईं ओर मौजूद साइड पैनल में 'बंद करें' बटन का इस्तेमाल करके, चरण से चुने हुए का निशान हटाएं.

आपकी पाइपलाइन पर चलने वाले Compute Engine इंस्टेंस के लिए, वर्कर लॉग को देखने के लिए, लॉग टैब में मौजूद वर्कर लॉग बटन का इस्तेमाल किया जा सकता है. वर्कर लॉग में, आपके कोड से जनरेट की गई लॉग लाइन और उस पर चलने वाले Dataflow के जनरेट किए गए कोड को बनाया जाता है.

अगर पाइपलाइन में हो रही किसी गड़बड़ी को डीबग करने की कोशिश की जा रही है, तो वर्कर के लॉग में अक्सर अतिरिक्त लॉग इन होते हैं, जिससे समस्या को हल करने में मदद मिलती है. ध्यान रखें कि ये लॉग सभी कर्मचारियों के लिए एक साथ इकट्ठा किए जाते हैं और इन्हें फ़िल्टर किया जा सकता है और खोजा जा सकता है.

5a53c244f28d5478.png

डेटाफ़्लो मॉनिटरिंग इंटरफ़ेस सिर्फ़ सबसे हाल के लॉग मैसेज दिखाता है. लॉग पैनल की दाईं ओर मौजूद, Google Cloud के निगरानी करने की सुविधा वाले लिंक पर क्लिक करके सभी लॉग देखे जा सकते हैं.

2bc704a4d6529b31.png

मॉनिटरिंग→लॉग पेज में, अलग-अलग तरह के लॉग को देखने के बारे में खास जानकारी यहां दी गई है:

  • job-message लॉग में जॉब-लेवल के ऐसे मैसेज होते हैं जिन्हें Dataflow के अलग-अलग कॉम्पोनेंट जनरेट करते हैं. उदाहरणों में ऑटो स्केलिंग कॉन्फ़िगरेशन, वर्कर कब स्टार्ट या शट डाउन होता है, काम के चरण पर प्रोग्रेस, और काम की गड़बड़ियां शामिल होती हैं. कर्मचारी-लेवल की ऐसी गड़बड़ियां जो उपयोगकर्ता कोड को क्रैश करने की वजह से शुरू होती हैं और वर्कर के लॉग में मौजूद होती हैं. ये गड़बड़ियां नौकरी के मैसेज लॉग में भी लागू की जाती हैं.
  • कर्मचारियों के लॉग, Dataflow के कर्मचारी बनाते हैं. वर्कर, पाइपलाइन का ज़्यादातर काम करते हैं. उदाहरण के लिए, डेटा पर ParDos लागू करना. वर्कर लॉग में आपके कोड और Dataflow से लॉग किए गए मैसेज होते हैं.
  • worker-startup लॉग ज़्यादातर Dataflow जॉब पर मौजूद होते हैं. साथ ही, ये स्टार्टअप प्रोसेस से जुड़े मैसेज कैप्चर कर सकते हैं. स्टार्टअप प्रोसेस में, Cloud Storage से जॉब के जार डाउनलोड करना और फिर वर्कर शुरू करना शामिल होता है. अगर कर्मियों को शुरू करने में कोई समस्या आती है, तो इन लॉग को देखा जा सकता है.
  • shuffler लॉग में, कर्मियों के मैसेज होते हैं. ये समानांतर पाइपलाइन ऑपरेशन के नतीजों को इकट्ठा करते हैं.
  • docker और kubelet लॉग में इन सार्वजनिक टेक्नोलॉजी से जुड़े मैसेज होते हैं. इनका इस्तेमाल Dataflow वर्कर पर किया जाता है.

अगले चरण में, हम जांच करेंगे कि आपका काम हो गया है या नहीं.

7. देखें कि आपका काम हो गया है या नहीं

Google Cloud Platform कंसोल में Cloud Dataflow वेब यूज़र इंटरफ़ेस (यूआई) खोलें.

आपको शुरुआत में चल रहा है की स्थिति के साथ अपना वर्डकाउंट जॉब दिखेगा, फिर पूरा हुआ:

4c408162416d03a2.png

इस काम को पूरा होने में करीब तीन से चार मिनट लगेंगे.

क्या आपको याद है कि आपने पाइपलाइन कब चलाई थी और आपने आउटपुट बकेट तय की थी? आइए, नतीजे पर नज़र डालते हैं (क्योंकि यह नहीं देखना है कि King Lear का हर शब्द कितनी बार आया?!). Google Cloud Platform Console में, Cloud Storage ब्राउज़र पर वापस जाएं. अपने बकेट में, आपको वे आउटपुट फ़ाइलें और स्टेजिंग फ़ाइलें दिखाई देंगी जो आपके काम ने बनाई हैं:

25a5d3d4b5d0b567.png

8. अपने संसाधनों को बंद करना

Google Cloud Platform Console में जाकर, अपने संसाधनों को बंद किया जा सकता है.

Google Cloud Platform Console में Cloud Storage ब्राउज़र खोलें.

2b6c3a2a92b47015.png

आपने जो बकेट बनाई है उसके बगल में मौजूद चेकबॉक्स को चुनें. साथ ही, बकेट और उसके कॉन्टेंट को हमेशा के लिए मिटाने के लिए, मिटाएं पर क्लिक करें.

2f7780bdf10b69ba.png

8051ef293a8e5cfe.png

9. बधाई हो!

आपने Cloud Dataflow SDK टूल की मदद से Maven प्रोजेक्ट बनाने, Google Cloud Platform Console का इस्तेमाल करके उदाहरण के तौर पर एक पाइपलाइन चलाने, और इससे जुड़े Cloud Storage बकेट और उसके कॉन्टेंट को मिटाने का तरीका सीखा है.

ज़्यादा जानें

लाइसेंस

इस काम को Creative Commons एट्रिब्यूशन 3.0 सामान्य लाइसेंस और Apache 2.0 लाइसेंस के तहत लाइसेंस मिला है.