1. সংক্ষিপ্ত বিবরণ
ক্লাউড ডেটাপ্রোক একটি পরিচালিত স্পার্ক এবং হ্যাডোপ পরিষেবা যা আপনাকে ব্যাচ প্রসেসিং, কোয়েরি, স্ট্রিমিং এবং মেশিন লার্নিংয়ের জন্য ওপেন সোর্স ডেটা টুলের সুবিধা নিতে দেয়। ক্লাউড ডেটাপ্রোক অটোমেশন আপনাকে দ্রুত ক্লাস্টার তৈরি করতে, সহজেই সেগুলি পরিচালনা করতে এবং যখন আপনার প্রয়োজন হয় না তখন ক্লাস্টারগুলি বন্ধ করে অর্থ সাশ্রয় করতে সহায়তা করে। প্রশাসনে কম সময় এবং অর্থ ব্যয় করে, আপনি আপনার কাজ এবং আপনার ডেটাতে মনোনিবেশ করতে পারেন।
এই টিউটোরিয়ালটি https://cloud.google.com/dataproc/overview থেকে গৃহীত।
তুমি কি শিখবে
- কিভাবে একটি পরিচালিত ক্লাউড ডেটাপ্রোক ক্লাস্টার তৈরি করবেন ( অ্যাপাচি স্পার্ক আগে থেকে ইনস্টল করে )।
- কিভাবে একটি স্পার্ক জব জমা দিতে হয়
- কিভাবে একটি ক্লাস্টারের আকার পরিবর্তন করবেন
- ডেটাপ্রোক ক্লাস্টারের মাস্টার নোডে কীভাবে ssh করবেন
- ক্লাস্টার, জব এবং ফায়ারওয়াল নিয়ম পরীক্ষা করার জন্য gcloud কীভাবে ব্যবহার করবেন
- আপনার ক্লাস্টারটি কীভাবে বন্ধ করবেন
তোমার যা লাগবে
- একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
এই টিউটোরিয়ালটি কীভাবে ব্যবহার করবেন?
গুগল ক্লাউড প্ল্যাটফর্ম পরিষেবা ব্যবহারের অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন অথবা বিদ্যমান একটি পুনরায় ব্যবহার করুন। (যদি আপনার ইতিমধ্যেই একটি Gmail বা G Suite অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)
প্রোজেক্ট আইডি মনে রাখবেন, সমস্ত গুগল ক্লাউড প্রোজেক্টের জন্য একটি অনন্য নাম (উপরের নামটি ইতিমধ্যেই নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এই কোডল্যাবে পরে এটিকে PROJECT_ID হিসাবে উল্লেখ করা হবে।
- এরপর, গুগল ক্লাউড রিসোর্স ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে।
এই কোডল্যাবটি চালাতে খুব বেশি খরচ হবে না, এমনকি যদি কিছু হয়ও। "ক্লিনিং আপ" বিভাগে থাকা যেকোনো নির্দেশাবলী অনুসরণ করতে ভুলবেন না যা আপনাকে পরামর্শ দেয় যে কীভাবে রিসোর্সগুলি বন্ধ করতে হবে যাতে এই টিউটোরিয়ালের বাইরে আপনাকে বিলিংয়ের সম্মুখীন না হতে হয়। গুগল ক্লাউডের নতুন ব্যবহারকারীরা $300USD ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।
৩. ক্লাউড ডেটাপ্রোক এবং গুগল কম্পিউট ইঞ্জিন এপিআই সক্ষম করুন
স্ক্রিনের উপরের বাম দিকে মেনু আইকনে ক্লিক করুন।

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

Enable APIs and Services এ ক্লিক করুন।

অনুসন্ধান বাক্সে "কম্পিউট ইঞ্জিন" অনুসন্ধান করুন। প্রদর্শিত ফলাফল তালিকায় "গুগল কম্পিউট ইঞ্জিন API" এ ক্লিক করুন।

গুগল কম্পিউট ইঞ্জিন পৃষ্ঠায় সক্ষম করুন ক্লিক করুন

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

৪. ক্লাউড শেল শুরু করুন
এই ডেবিয়ান-ভিত্তিক ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে পূর্ণ। এটি একটি স্থায়ী 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এর অর্থ হল এই কোডল্যাবের জন্য আপনার যা প্রয়োজন তা হল একটি ব্রাউজার (হ্যাঁ, এটি একটি Chromebook এ কাজ করে)।
- ক্লাউড কনসোল থেকে ক্লাউড শেল সক্রিয় করতে, কেবল ক্লাউড শেল সক্রিয় করুন ক্লিক করুন
(পরিবেশের সাথে সংযোগ স্থাপন এবং সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে)।
একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণিত এবং প্রকল্পটি ইতিমধ্যেই আপনার 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 খুঁজছেন? সেটআপ ধাপে আপনি কোন আইডি ব্যবহার করেছেন তা দেখুন অথবা ক্লাউড কনসোল ড্যাশবোর্ডে এটি দেখুন:
ক্লাউড শেল ডিফল্টরূপে কিছু পরিবেশ ভেরিয়েবল সেট করে, যা ভবিষ্যতের কমান্ড চালানোর সময় কার্যকর হতে পারে।
echo $GOOGLE_CLOUD_PROJECT
কমান্ড আউটপুট
<PROJECT_ID>
- অবশেষে, ডিফল্ট জোন এবং প্রকল্প কনফিগারেশন সেট করুন।
gcloud config set compute/zone us-central1-f
আপনি বিভিন্ন ধরণের অঞ্চল বেছে নিতে পারেন। আরও তথ্যের জন্য, অঞ্চল এবং অঞ্চল দেখুন।
৫. একটি ক্লাউড ডেটাপ্রোক ক্লাস্টার তৈরি করুন
ক্লাউড শেল চালু হওয়ার পরে, আপনি কমান্ড লাইন ব্যবহার করে ক্লাউড 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 কমান্ডটি দেখুন।
৬. আপনার ক্লাস্টারে একটি স্পার্ক জব জমা দিন
আপনি ক্লাউড ডেটাপ্রোক 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
কাজটি শেষ হলে, আউটপুটে পাই এর মানের একটি আনুমানিক পরিমাণ অন্তর্ভুক্ত থাকবে।

৮. ক্লাস্টারের আকার পরিবর্তন করুন
বৃহত্তর গণনা চালানোর জন্য, আপনার ক্লাস্টারে আরও নোড যোগ করার প্রয়োজন হতে পারে যাতে এটি দ্রুত হয়। 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
১২. অভিনন্দন!
তুমি শিখেছো কিভাবে Dataproc ক্লাস্টার তৈরি করতে হয়, Spark জব জমা দিতে হয়, ক্লাস্টারের আকার পরিবর্তন করতে হয়, ssh ব্যবহার করে তোমার মাস্টার নোডে লগ ইন করতে হয়, gcloud ব্যবহার করে ক্লাস্টার, জব এবং ফায়ারওয়াল নিয়ম পরীক্ষা করতে হয় এবং gcloud ব্যবহার করে তোমার ক্লাস্টার বন্ধ করতে হয়!
আরও জানুন
- ডেটাপ্রোক ডকুমেন্টেশন: https://cloud.google.com/dataproc/overview
- কনসোল কোডল্যাব ব্যবহার করে ডেটাপ্রোক শুরু করা
লাইসেন্স
এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন ৩.০ জেনেরিক লাইসেন্স এবং অ্যাপাচি ২.০ লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।