ক্লাউড ডেটাপ্রোক (কমান্ড লাইন) সহ একটি পরিচালিত হ্যাডুপ/স্পার্ক ক্লাস্টারের ব্যবস্থা করা এবং ব্যবহার করা

১. সংক্ষিপ্ত বিবরণ

ক্লাউড ডেটাপ্রোক একটি পরিচালিত স্পার্ক এবং হ্যাডুপ পরিষেবা, যা আপনাকে ব্যাচ প্রসেসিং, কোয়েরিং, স্ট্রিমিং এবং মেশিন লার্নিংয়ের জন্য ওপেন সোর্স ডেটা টুল ব্যবহারের সুযোগ দেয়। ক্লাউড ডেটাপ্রোক অটোমেশন আপনাকে দ্রুত ক্লাস্টার তৈরি করতে, সহজে সেগুলো পরিচালনা করতে এবং প্রয়োজন না হলে ক্লাস্টার বন্ধ করে অর্থ সাশ্রয় করতে সাহায্য করে। প্রশাসনিক কাজে কম সময় ও অর্থ ব্যয় হওয়ায়, আপনি আপনার কাজ এবং ডেটার উপর মনোযোগ দিতে পারেন।

এই টিউটোরিয়ালটি https://cloud.google.com/dataproc/overview থেকে গৃহীত হয়েছে।

আপনি যা শিখবেন

  • কীভাবে একটি পরিচালিত ক্লাউড ডেটাপ্রোক ক্লাস্টার তৈরি করবেন (যেখানে অ্যাপাচি স্পার্ক আগে থেকেই ইনস্টল করা থাকবে )।
  • স্পার্ক জব কীভাবে জমা দেবেন
  • একটি ক্লাস্টারের আকার কীভাবে পরিবর্তন করবেন
  • ডেটাপ্রোক ক্লাস্টারের মাস্টার নোডে কীভাবে ssh করবেন
  • ক্লাস্টার, জব এবং ফায়ারওয়াল নিয়ম পরীক্ষা করতে কীভাবে gcloud ব্যবহার করবেন
  • আপনার ক্লাস্টার কীভাবে বন্ধ করবেন

আপনার যা যা লাগবে

আপনি এই টিউটোরিয়ালটি কীভাবে ব্যবহার করবেন?

শুধু পুরোটা পড়ুন এটি পড়ুন এবং অনুশীলনগুলো সম্পূর্ণ করুন।

গুগল ক্লাউড প্ল্যাটফর্ম পরিষেবা ব্যবহারের অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?

শিক্ষানবিশ মধ্যবর্তী দক্ষ

২. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিতে পরিবেশ সেটআপ

  1. ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। (যদি আপনার আগে থেকে Gmail বা G Suite অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLpGtQd5Q55

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5 OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

প্রজেক্ট আইডিটি মনে রাখবেন, যা সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে ব্যবহৃত হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এই কোডল্যাবে এটিকে পরবর্তীতে PROJECT_ID হিসাবে উল্লেখ করা হবে।

  1. এরপরে, গুগল ক্লাউড রিসোর্স ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে।

এই কোডল্যাবটি চালাতে খুব বেশি খরচ হওয়ার কথা নয়, এমনকি আদৌ কোনো খরচ নাও হতে পারে। "পরিষ্কার-পরিচ্ছন্নতা" (Cleaning up) বিভাগে দেওয়া নির্দেশাবলী অবশ্যই অনুসরণ করবেন, যেখানে রিসোর্স বন্ধ করার পরামর্শ দেওয়া হয়েছে, যাতে এই টিউটোরিয়ালের বাইরে আপনার কোনো বিল না আসে। গুগল ক্লাউডের নতুন ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।

৩. ক্লাউড ডেটাপ্রোক এবং গুগল কম্পিউট ইঞ্জিন এপিআই সক্রিয় করুন।

স্ক্রিনের উপরের বাম দিকের মেনু আইকনটিতে ক্লিক করুন।

2bfc27ef9ba2ec7d.png

ড্রপ ডাউন থেকে এপিআই ম্যানেজার নির্বাচন করুন।

408af5f32c4b7c25.png

এপিআই এবং পরিষেবাগুলি সক্ষম করুন -এ ক্লিক করুন।

a9c0e84296a7ba5b.png

সার্চ বক্সে "Compute Engine" লিখে সার্চ করুন। প্রদর্শিত ফলাফলের তালিকা থেকে "Google Compute Engine API"-তে ক্লিক করুন।

b6adf859758d76b3.png

Google Compute Engine পেজে Enable-এ ক্লিক করুন।

da5584a1cbc77104.png

একবার এটি চালু হয়ে গেলে, ফিরে যাওয়ার জন্য বাম দিকের তীরচিহ্নে ক্লিক করুন।

এখন 'Google Cloud Dataproc API' অনুসন্ধান করুন এবং এটিও সক্রিয় করুন।

f782195d8e3d732a.png

৪. ক্লাউড শেল চালু করুন

এই ডেবিয়ান-ভিত্তিক ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এর মানে হলো, এই কোডল্যাবের জন্য আপনার শুধু একটি ব্রাউজার প্রয়োজন হবে (হ্যাঁ, এটি ক্রোমবুকেও কাজ করে)।

  1. ক্লাউড কনসোল থেকে ক্লাউড শেল সক্রিয় করতে, কেবল 'Activate Cloud Shell'-এ ক্লিক করুন। fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q (পরিবেশের জন্য ব্যবস্থা করতে এবং সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগা উচিত)।

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

Screen Shot 2017-06-14 at 10.13.43 PM.png

ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনি দেখতে পাবেন যে আপনাকে ইতিমধ্যেই প্রমাণীকৃত করা হয়েছে এবং প্রজেক্টটি আপনার 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 খুঁজছেন? সেটআপের ধাপগুলিতে আপনি কোন আইডি ব্যবহার করেছিলেন তা দেখে নিন অথবা ক্লাউড কনসোল ড্যাশবোর্ডে এটি খুঁজে দেখুন:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqA BYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

ক্লাউড শেল ডিফল্টরূপে কিছু এনভায়রনমেন্ট ভেরিয়েবলও সেট করে, যা ভবিষ্যতে কমান্ড চালানোর সময় কাজে লাগতে পারে।

echo $GOOGLE_CLOUD_PROJECT

কমান্ড আউটপুট

<PROJECT_ID>
  1. অবশেষে, ডিফল্ট জোন এবং প্রজেক্ট কনফিগারেশন সেট করুন।
gcloud config set compute/zone us-central1-f

আপনি বিভিন্ন ধরনের জোন বেছে নিতে পারেন। আরও তথ্যের জন্য, অঞ্চল ও জোন দেখুন।

৫. একটি ক্লাউড ডেটাপ্রোক ক্লাস্টার তৈরি করুন

ক্লাউড শেল চালু হওয়ার পর, আপনি কমান্ড লাইন ব্যবহার করে ক্লাউড এসডিকে-এর gcloud কমান্ড অথবা ভার্চুয়াল মেশিন ইনস্ট্যান্সে উপলব্ধ অন্যান্য টুলগুলো চালু করতে পারবেন।

এই ল্যাবে ব্যবহারের জন্য একটি ক্লাস্টার নাম নির্বাচন করুন:

$ CLUSTERNAME=${USER}-dplab

চলুন একটি নতুন ক্লাস্টার তৈরি করে শুরু করা যাক:

$ gcloud dataproc clusters create ${CLUSTERNAME} \
  --region=us-central1 \
  --scopes=cloud-platform \
  --tags codelab \
  --zone=us-central1-c

ডিফল্ট ক্লাস্টার সেটিংস, যাতে দুটি ওয়ার্কার নোড অন্তর্ভুক্ত রয়েছে, এই টিউটোরিয়ালের জন্য যথেষ্ট হওয়া উচিত। উপরের কমান্ডটিতে --zone অপশনটি রয়েছে, যা ক্লাস্টার তৈরির ভৌগোলিক অঞ্চল নির্দিষ্ট করে। এছাড়াও এতে দুটি অ্যাডভান্সড অপশন, --scopes এবং --tags অন্তর্ভুক্ত আছে, যেগুলো ব্যবহারের মাধ্যমে ফিচারগুলো সক্রিয় হয়, সে সম্পর্কে নিচে ব্যাখ্যা করা হয়েছে। ক্লাস্টার সেটিংস কাস্টমাইজ করতে কমান্ড লাইন ফ্ল্যাগ ব্যবহারের তথ্যের জন্য ক্লাউড এসডিকে gcloud dataproc clusters create কমান্ডটি দেখুন।

৬. আপনার ক্লাস্টারে একটি স্পার্ক জব জমা দিন।

আপনি ক্লাউড ডেটাপ্রোক এপিআই (Cloud Dataproc API)-এর jobs.submit রিকোয়েস্টের মাধ্যমে, gcloud কমান্ড লাইন টুল ব্যবহার করে, অথবা গুগল ক্লাউড প্ল্যাটফর্ম কনসোল (Google Cloud Platform Console ) থেকে একটি জব সাবমিট করতে পারেন। এছাড়াও, আপনি SSH ব্যবহার করে আপনার ক্লাস্টারের কোনো মেশিন ইনস্ট্যান্সে কানেক্ট করতে পারেন এবং তারপর সেই ইনস্ট্যান্স থেকে একটি জব রান করতে পারেন।

চলুন ক্লাউড শেল কমান্ড লাইন থেকে 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 ক্লাস্টারে চলতে থাকবে।

৭. চাকরির তালিকা তৈরি করুন এবং পুনরায় সংযোগ স্থাপন করুন

কাজের একটি তালিকা প্রিন্ট করুন:

$ gcloud dataproc jobs list --cluster ${CLUSTERNAME}

সর্বশেষ জমা দেওয়া কাজটি তালিকার শীর্ষে রয়েছে। জব আইডিটি কপি করে নিচের কমান্ডে " jobId "-এর জায়গায় পেস্ট করুন। কমান্ডটি নির্দিষ্ট জবটির সাথে পুনরায় সংযোগ স্থাপন করবে এবং এর আউটপুট প্রদর্শন করবে:

$ gcloud dataproc jobs wait jobId

কাজটি শেষ হলে, আউটপুটে পাই (Pi)-এর মানের একটি আনুমানিক মান অন্তর্ভুক্ত থাকবে।

493928df54f61386.png

৮. ক্লাস্টারের আকার পরিবর্তন করুন

বৃহত্তর গণনা চালানোর জন্য, এর গতি বাড়াতে আপনি আপনার ক্লাস্টারে আরও নোড যোগ করতে চাইতে পারেন। Dataproc আপনাকে যেকোনো সময় আপনার ক্লাস্টারে নোড যোগ করতে এবং অপসারণ করতে দেয়।

ক্লাস্টার কনফিগারেশন পরীক্ষা করুন:

$ gcloud dataproc clusters describe ${CLUSTERNAME}

কিছু প্রিএম্পটিবল নোড যোগ করে ক্লাস্টারটিকে আরও বড় করুন:

$ gcloud dataproc clusters update ${CLUSTERNAME} --num-secondary-workers=2

ক্লাস্টারটি আবার পরীক্ষা করুন:

$ gcloud dataproc clusters describe ${CLUSTERNAME}

উল্লেখ্য যে, মূল ক্লাস্টার বিবরণের workerConfig এর পাশাপাশি এখন একটি secondaryWorkerConfig ও রয়েছে, যাতে প্রিএমপ্টিবল ওয়ার্কারদের জন্য দুটি instanceNames অন্তর্ভুক্ত আছে। নতুন নোডগুলো বুট হওয়ার সময় Dataproc ক্লাস্টারের স্ট্যাটাস রেডি দেখাচ্ছে।

যেহেতু আপনি দুটি নোড দিয়ে শুরু করেছিলেন এবং এখন আপনার চারটি নোড আছে, আপনার স্পার্ক জবগুলো প্রায় দ্বিগুণ দ্রুত চলবে।

৯. ক্লাস্টারে SSH করুন

ssh-এর মাধ্যমে মাস্টার নোডে সংযোগ করুন, যার ইনস্ট্যান্স নামটি সর্বদা ক্লাস্টার নামের শেষে -m যুক্ত থাকে:

$ gcloud compute ssh ${CLUSTERNAME}-m --zone=us-central1-c

আপনি যখন ক্লাউড শেলে প্রথমবার কোনো ssh কমান্ড চালাবেন, তখন এটি আপনার অ্যাকাউন্টের জন্য ssh কী তৈরি করবে। আপনি একটি পাসফ্রেজ বেছে নিতে পারেন, অথবা আপাতত একটি ফাঁকা পাসফ্রেজ ব্যবহার করে পরে চাইলে ssh-keygen ব্যবহার করে তা পরিবর্তন করতে পারেন।

ইনস্ট্যান্সটিতে হোস্টনেমটি যাচাই করুন:

$ hostname

যেহেতু আপনি ক্লাস্টার তৈরি করার সময় --scopes=cloud-platform নির্দিষ্ট করেছিলেন, তাই আপনি আপনার ক্লাস্টারে gcloud কমান্ড চালাতে পারেন। আপনার প্রোজেক্টের ক্লাস্টারগুলির তালিকা দেখুন:

$ gcloud dataproc clusters list

কাজ শেষ হলে ssh সংযোগ থেকে লগ আউট করুন:

$ logout

১০. ট্যাগগুলো পরীক্ষা করুন

আপনি যখন আপনার ক্লাস্টার তৈরি করেছিলেন, তখন ক্লাস্টারের প্রতিটি নোডে একটি ট্যাগ যোগ করার জন্য একটি --tags অপশন অন্তর্ভুক্ত করেছিলেন। প্রতিটি নোডের সাথে ফায়ারওয়াল নিয়ম সংযুক্ত করতে ট্যাগ ব্যবহার করা হয়। আপনি এই কোডল্যাবে কোনো অনুরূপ ফায়ারওয়াল নিয়ম তৈরি করেননি, কিন্তু তারপরেও আপনি একটি নোডের ট্যাগ এবং নেটওয়ার্কের ফায়ারওয়াল নিয়মগুলো পরীক্ষা করে দেখতে পারেন।

মাস্টার নোডের বিবরণ প্রিন্ট করুন:

$ gcloud compute instances describe ${CLUSTERNAME}-m --zone us-central1-c

আউটপুটের শেষের দিকে tags: খুঁজুন এবং দেখুন যে এর মধ্যে codelab অন্তর্ভুক্ত আছে।

ফায়ারওয়াল নিয়মগুলো প্রিন্ট করুন:

$ gcloud compute firewall-rules list

SRC_TAGS এবং TARGET_TAGS কলামগুলো লক্ষ্য করুন। একটি ফায়ারওয়াল নিয়মের সাথে একটি ট্যাগ সংযুক্ত করার মাধ্যমে, আপনি নির্দিষ্ট করতে পারেন যে এটি সেই ট্যাগযুক্ত সমস্ত নোডে ব্যবহৃত হবে।

১১. আপনার ক্লাস্টার বন্ধ করুন।

আপনি Cloud Dataproc API-এর clusters.delete অনুরোধের মাধ্যমে, কমান্ড লাইন থেকে gcloud dataproc clusters delete এক্সিকিউটেবল ব্যবহার করে, অথবা Google Cloud Platform Console থেকে একটি ক্লাস্টার বন্ধ করতে পারেন।

চলুন ক্লাউড শেল কমান্ড লাইন ব্যবহার করে ক্লাস্টারটি বন্ধ করে দিই:

$ gcloud dataproc clusters delete ${CLUSTERNAME} --region us-central1

১২. অভিনন্দন!

আপনি শিখেছেন কীভাবে একটি ডেটাপ্রোক ক্লাস্টার তৈরি করতে হয়, একটি স্পার্ক জব জমা দিতে হয়, ক্লাস্টারের আকার পরিবর্তন করতে হয়, ssh ব্যবহার করে আপনার মাস্টার নোডে লগ ইন করতে হয়, gcloud ব্যবহার করে ক্লাস্টার, জব এবং ফায়ারওয়াল নিয়ম পরীক্ষা করতে হয় এবং gcloud ব্যবহার করে আপনার ক্লাস্টার বন্ধ করতে হয়!

আরও জানুন

লাইসেন্স

এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন ৩.০ জেনেরিক লাইসেন্স এবং অ্যাপাচি ২.০ লাইসেন্সের অধীনে লাইসেন্সকৃত।