1. खास जानकारी
Cloud Dataproc, मैनेज की जा रही Spark और Hadoop सेवा है. इसकी मदद से, बैच प्रोसेसिंग, क्वेरी, स्ट्रीमिंग, और मशीन लर्निंग के लिए ओपन सोर्स डेटा टूल का फ़ायदा लिया जा सकता है. Cloud Dataproc ऑटोमेशन की मदद से, तेज़ी से क्लस्टर बनाए जा सकते हैं, उन्हें आसानी से मैनेज किया जा सकता है, और ज़रूरत न होने पर क्लस्टर को बंद करके पैसे बचाए जा सकते हैं. एडमिन पर कम समय और पैसा खर्च करके, नौकरी और डेटा पर फ़ोकस किया जा सकता है.
यह ट्यूटोरियल https://cloud.google.com/dataproc/overview से लिया गया है
आप इन चीज़ों के बारे में जानेंगे
- मैनेज किया जा रहा Cloud Dataproc क्लस्टर कैसे बनाएं (जिसमें Apache Spark पहले से इंस्टॉल किया गया हो)
- Spark जॉब सबमिट करने का तरीका
- क्लस्टर का साइज़ बदलने का तरीका
- Dataproc क्लस्टर के मास्टर नोड में एसएसएच कैसे करें
- क्लस्टर, जॉब, और फ़ायरवॉल के नियमों की जांच करने के लिए, gcloud इस्तेमाल करने का तरीका
- अपने क्लस्टर को शट डाउन करने का तरीका
आपको इन चीज़ों की ज़रूरत होगी
इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
Google Cloud Platform की सेवाएं इस्तेमाल करने का आपका अनुभव कैसा रहा?
2. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेटअप करना
- Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. (अगर आपके पास पहले से Gmail या G Suite खाता नहीं है, तो आपको एक खाता बनाना होगा.)
प्रोजेक्ट आईडी याद रखें. यह Google Cloud के सभी प्रोजेक्ट के लिए एक खास नाम होता है (ऊपर दिया गया नाम पहले ही ले लिया गया है और यह आपके लिए काम नहीं करेगा!). बाद में, इस कोडलैब को इस कोडलैब में PROJECT_ID
के तौर पर दिखाया जाएगा.
- इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी.
इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. "साफ़ करना" सेक्शन में दिए गए निर्देशों का पालन करना न भूलें सेक्शन में, संसाधनों को बंद करने का तरीका बताया गया है. इससे इस ट्यूटोरियल के अलावा बिलिंग की सुविधा नहीं मिलेगी. Google Cloud के नए उपयोगकर्ता, 300USD डॉलर के मुफ़्त में आज़माने वाले प्रोग्राम में हिस्सा ले सकते हैं.
3. Cloud Dataproc और Google Compute Engine एपीआई को चालू करना
स्क्रीन पर सबसे ऊपर बाईं ओर, मेन्यू आइकॉन पर क्लिक करें.
ड्रॉप-डाउन से एपीआई मैनेजर चुनें.
एपीआई और सेवाएं चालू करें पर क्लिक करें.
"Compute Engine" खोजें लिखें. "Google Compute Engine API" पर क्लिक करें पर क्लिक करें.
Google Compute Engine पेज पर, चालू करें पर क्लिक करें
इसके चालू होने के बाद, वापस जाने के लिए बाईं ओर वाले ऐरो पर क्लिक करें.
अब "Google Cloud Dataproc API" खोजें और उसे भी चालू कर सकें.
4. क्लाउड शेल शुरू करें
Debian आधारित इस वर्चुअल मशीन में ऐसे सभी डेवलपमेंट टूल मौजूद हैं जिनकी आपको ज़रूरत पड़ेगी. यह पांच जीबी की स्थायी होम डायरेक्ट्री उपलब्ध कराता है और Google Cloud में चलता है. यह नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस को बेहतर बनाता है. इसका मतलब है कि इस कोडलैब के लिए आपको सिर्फ़ एक ब्राउज़र की ज़रूरत होगी. हां, यह Chromebook पर काम करता है.
- Cloud Console से Cloud Shell को चालू करने के लिए, Cloud Shell को चालू करें पर क्लिक करें. प्रावधान करने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा.
Cloud Shell से कनेक्ट करने के बाद, आपको दिखेगा कि आपकी पुष्टि पहले ही हो चुकी है. साथ ही, यह प्रोजेक्ट पहले से ही आपके PROJECT_ID
पर सेट है.
gcloud auth list
कमांड आउटपुट
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
कमांड आउटपुट
[core] project = <PROJECT_ID>
अगर किसी कारण से, प्रोजेक्ट सेट नहीं है, तो बस निम्न आदेश जारी करें:
gcloud config set project <PROJECT_ID>
क्या आपको अपना PROJECT_ID
चाहिए? देखें कि आपने सेटअप के चरणों में किस आईडी का इस्तेमाल किया है या इसे Cloud Console के डैशबोर्ड में देखें:
Cloud Shell, डिफ़ॉल्ट रूप से कुछ एनवायरमेंट वैरिएबल सेट करता है. ये वैरिएबल, आने वाले समय में कमांड चलाने के दौरान काम आ सकते हैं.
echo $GOOGLE_CLOUD_PROJECT
कमांड आउटपुट
<PROJECT_ID>
- आखिर में, डिफ़ॉल्ट ज़ोन और प्रोजेक्ट कॉन्फ़िगरेशन सेट करें.
gcloud config set compute/zone us-central1-f
आपके पास कई तरह के ज़ोन चुनने का विकल्प होता है. ज़्यादा जानकारी के लिए, क्षेत्र और ज़ोन.
5. Cloud Dataproc क्लस्टर बनाएं
Cloud Shell लॉन्च होने के बाद, Cloud SDK gcloud कमांड या वर्चुअल मशीन इंस्टेंस पर उपलब्ध अन्य टूल को शुरू करने के लिए, कमांड लाइन का इस्तेमाल किया जा सकता है.
इस लैब में उपयोग करने के लिए एक क्लस्टर का नाम चुनें:
$ CLUSTERNAME=${USER}-dplab
चलिए, नया क्लस्टर बनाकर शुरुआत करते हैं:
$ gcloud dataproc clusters create ${CLUSTERNAME} \
--region=us-central1 \
--scopes=cloud-platform \
--tags codelab \
--zone=us-central1-c
इस ट्यूटोरियल के लिए, डिफ़ॉल्ट क्लस्टर की सेटिंग काफ़ी होनी चाहिए, जिनमें दो-वर्कर नोड शामिल हैं. ऊपर दिए गए निर्देश में, उस भौगोलिक ज़ोन के बारे में बताने के लिए --zone
विकल्प शामिल है जिसमें क्लस्टर बनाया जाएगा. साथ ही, दो बेहतर विकल्प, --scopes
और --tags
शामिल हैं. इनके बारे में नीचे तब बताया गया है, जब उन सुविधाओं का इस्तेमाल किया जा रहा है. क्लस्टर सेटिंग को पसंद के मुताबिक बनाने के लिए, कमांड लाइन फ़्लैग इस्तेमाल करने के बारे में जानकारी के लिए, Cloud SDK टूल gcloud dataproc clusters create
कमांड देखें.
6. अपने क्लस्टर में Spark जॉब सबमिट करें
आप Cloud Dataproc API jobs.submit
अनुरोध की मदद से, gcloud
कमांड लाइन टूल का इस्तेमाल करके या Google Cloud Platform कंसोल से जॉब सबमिट कर सकते हैं. एसएसएच का इस्तेमाल करके, अपने क्लस्टर में मशीन इंस्टेंस से कनेक्ट करें. इसके बाद, इंस्टेंस से जॉब चलाएं.
Cloud Shell कमांड लाइन में मौजूद gcloud
टूल का इस्तेमाल करके, जॉब सबमिट करें:
$ gcloud dataproc jobs submit spark --cluster ${CLUSTERNAME} \
--class org.apache.spark.examples.SparkPi \
--jars file:///usr/lib/spark/examples/jars/spark-examples.jar -- 1000
जैसे-जैसे काम शुरू होगा, आपको अपनी क्लाउड शेल विंडो में आउटपुट दिखेगा.
Control-C डालकर आउटपुट को रोकें. इससे gcloud
निर्देश बंद हो जाएगा, लेकिन काम अब भी Dataproc क्लस्टर पर चलता रहेगा.
7. जॉब की सूची बनाएं और फिर से कनेक्ट करें
कार्यों की सूची प्रिंट करें:
$ gcloud dataproc jobs list --cluster ${CLUSTERNAME}
हाल ही में सबमिट की गई नौकरी, सूची में सबसे ऊपर दिखती है. जॉब आईडी को कॉपी करें और इसे "jobId
" की जगह चिपकाएं डालें. कमांड, बताए गए जॉब से फिर से कनेक्ट होगा और उसका आउटपुट दिखाएगा:
$ gcloud dataproc jobs wait jobId
काम पूरा होने पर, आउटपुट में Pi के मान का अनुमान शामिल होगा.
8. क्लस्टर का साइज़ बदलें
बड़े कंप्यूटेशन (कंप्यूटेशन) को चलाने के लिए, अपने क्लस्टर में ज़्यादा नोड जोड़े जा सकते हैं. ऐसा करने से, क्लस्टर की रफ़्तार को बढ़ाया जा सकता है. Dataproc, आपको किसी भी समय अपने क्लस्टर में नोड जोड़ने और उससे नोड हटाने की सुविधा देता है.
क्लस्टर कॉन्फ़िगरेशन की जांच करें:
$ gcloud dataproc clusters describe ${CLUSTERNAME}
कुछ रोके जा सकने वाले नोड जोड़कर क्लस्टर को बड़ा करें:
$ gcloud dataproc clusters update ${CLUSTERNAME} --num-secondary-workers=2
क्लस्टर की फिर से जांच करें:
$ gcloud dataproc clusters describe ${CLUSTERNAME}
ध्यान दें कि मूल क्लस्टर के ब्यौरे में मौजूद workerConfig
के अलावा, अब एक secondaryWorkerConfig
भी उपलब्ध है. इसमें पहले से काम कर रहे कर्मचारियों के लिए दो instanceNames
शामिल हैं. नए नोड के चालू होने के दौरान, Dataproc, क्लस्टर की स्थिति को तैयार के तौर पर दिखाता है.
आपने दो नोड से शुरुआत की थी और अब आपके पास चार नोड हैं, इसलिए आपकी Spark जॉब करीब दोगुनी तेज़ी से चलेगी.
9. क्लस्टर में एसएसएच
एसएसएच के ज़रिए मास्टर नोड से कनेक्ट करें, जिसके इंस्टेंस का नाम हमेशा क्लस्टर का नाम होता है, जिसमें -m
जुड़ा होता है:
$ gcloud compute ssh ${CLUSTERNAME}-m --zone=us-central1-c
Cloud Shell पर पहली बार ssh कमांड चलाने पर, आपके खाते के लिए ssh कुंजियां जनरेट होंगी. आप एक लंबा पासवर्ड चुन सकते हैं या अभी के लिए एक खाली लंबे पासवर्ड का इस्तेमाल कर सकते हैं. आप चाहें, तो ssh-keygen
का इस्तेमाल करके इसे बाद में बदल भी सकते हैं.
इंस्टेंस पर, होस्टनेम की जांच करें:
$ hostname
क्योंकि आपने क्लस्टर बनाते समय --scopes=cloud-platform
बताया था, इसलिए आप अपने क्लस्टर पर gcloud
कमांड चला सकते हैं. अपने प्रोजेक्ट में क्लस्टर की सूची बनाएं:
$ gcloud dataproc clusters list
काम पूरा होने के बाद, एसएसएच कनेक्शन से लॉग आउट करें:
$ logout
10. टैग की जांच करें
क्लस्टर बनाते समय, आपने क्लस्टर के हर नोड में टैग जोड़ने के लिए, एक --tags
विकल्प शामिल किया था. टैग का इस्तेमाल हर नोड में फ़ायरवॉल के नियमों को जोड़ने के लिए किया जाता है. आपने इस कोडलैब में, फ़ायरवॉल के मिलते-जुलते नियम नहीं बनाए हैं. हालांकि, अब भी किसी नोड पर टैग और नेटवर्क पर फ़ायरवॉल के नियमों की जांच की जा सकती है.
मास्टर नोड का विवरण प्रिंट करें:
$ gcloud compute instances describe ${CLUSTERNAME}-m --zone us-central1-c
आउटपुट के आखिर में tags:
खोजें और देखें कि उसमें codelab
शामिल है.
फ़ायरवॉल के नियमों को प्रिंट करें:
$ gcloud compute firewall-rules list
SRC_TAGS
और TARGET_TAGS
कॉलम को नोट करें. टैग को फ़ायरवॉल नियम में अटैच करके, आप यह तय कर सकते हैं कि इसका इस्तेमाल उन सभी नोड पर किया जाना चाहिए जिनमें वह टैग है.
11. अपने क्लस्टर को शट डाउन करें
Cloud Dataproc API clusters.delete
अनुरोध के ज़रिए, gcloud dataproc clusters delete
के एक्ज़ीक्यूटेबल का इस्तेमाल करके कमांड लाइन से या Google Cloud Platform Console से क्लस्टर को शट डाउन किया जा सकता है.
Cloud Shell कमांड लाइन का इस्तेमाल करके, क्लस्टर को शट डाउन करते हैं:
$ gcloud dataproc clusters delete ${CLUSTERNAME} --region us-central1
12. बधाई हो!
आपने Dataproc क्लस्टर बनाने, स्पार्क जॉब सबमिट करने, क्लस्टर का साइज़ बदलने, अपने मास्टर नोड में लॉग इन करने के लिए ssh इस्तेमाल करने, क्लस्टर, जॉब, और फ़ायरवॉल के नियमों की जांच करने के लिए gcloud का इस्तेमाल करने, और gcloud का इस्तेमाल करके अपने क्लस्टर को शट डाउन करने का तरीका सीखा है!
ज़्यादा जानें
- Dataproc दस्तावेज़: https://cloud.google.com/dataproc/overview
- कंसोल कोडलैब का इस्तेमाल करके, Dataproc को इस्तेमाल करना
लाइसेंस
इस काम को Creative Commons एट्रिब्यूशन 3.0 सामान्य लाइसेंस और Apache 2.0 लाइसेंस के तहत लाइसेंस मिला है.