Cloud Dataproc (कमांड लाइन) के साथ, मैनेज किए जा रहे Hadoop/Spark क्लस्टर को मैनेज करना और उसका इस्तेमाल करना

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

Cloud Dataproc, मैनेज की जा रही Spark और Hadoop सेवा है. इसकी मदद से, बैच प्रोसेसिंग, क्वेरी, स्ट्रीमिंग, और मशीन लर्निंग के लिए ओपन सोर्स डेटा टूल का फ़ायदा लिया जा सकता है. Cloud Dataproc ऑटोमेशन की मदद से, तेज़ी से क्लस्टर बनाए जा सकते हैं, उन्हें आसानी से मैनेज किया जा सकता है, और ज़रूरत न होने पर क्लस्टर को बंद करके पैसे बचाए जा सकते हैं. एडमिन पर कम समय और पैसा खर्च करके, नौकरी और डेटा पर फ़ोकस किया जा सकता है.

यह ट्यूटोरियल https://cloud.google.com/dataproc/overview से लिया गया है

आप इन चीज़ों के बारे में जानेंगे

  • मैनेज किया जा रहा Cloud Dataproc क्लस्टर कैसे बनाएं (जिसमें Apache Spark पहले से इंस्टॉल किया गया हो)
  • Spark जॉब सबमिट करने का तरीका
  • क्लस्टर का साइज़ बदलने का तरीका
  • Dataproc क्लस्टर के मास्टर नोड में एसएसएच कैसे करें
  • क्लस्टर, जॉब, और फ़ायरवॉल के नियमों की जांच करने के लिए, gcloud इस्तेमाल करने का तरीका
  • अपने क्लस्टर को शट डाउन करने का तरीका

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

  • ब्राउज़र, जैसे कि 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 डॉलर के मुफ़्त में आज़माने वाले प्रोग्राम में हिस्सा ले सकते हैं.

3. Cloud Dataproc और Google Compute Engine एपीआई को चालू करना

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

2bfc27ef9ba2ec7d.png

ड्रॉप-डाउन से एपीआई मैनेजर चुनें.

408af5f32c4b7c25.png

एपीआई और सेवाएं चालू करें पर क्लिक करें.

a9c0e84296a7ba5b.png

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

b6adf859758d76b3.png

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

da5584a1cbc77104.png

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

अब "Google Cloud Dataproc API" खोजें और उसे भी चालू कर सकें.

f782195d8e3d732a.png

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

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

  1. Cloud Console से Cloud Shell को चालू करने के लिए, Cloud Shell को चालू करें fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q पर क्लिक करें. प्रावधान करने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा.

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

14-06-2017 को 10.13.43 PM.png पर स्क्रीन शॉट लिया गया

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 के डैशबोर्ड में देखें:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

Cloud Shell, डिफ़ॉल्ट रूप से कुछ एनवायरमेंट वैरिएबल सेट करता है. ये वैरिएबल, आने वाले समय में कमांड चलाने के दौरान काम आ सकते हैं.

echo $GOOGLE_CLOUD_PROJECT

कमांड आउटपुट

<PROJECT_ID>
  1. आखिर में, डिफ़ॉल्ट ज़ोन और प्रोजेक्ट कॉन्फ़िगरेशन सेट करें.
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 के मान का अनुमान शामिल होगा.

493928df54f61386.png

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 का इस्तेमाल करके अपने क्लस्टर को शट डाउन करने का तरीका सीखा है!

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

लाइसेंस

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