1. نظرة عامة
Cloud Dataproc هي خدمة مُدارة من Spark وHadoop تتيح لك الاستفادة من أدوات البيانات المفتوحة المصدر لمعالجة الطلبات على دفعات، وإجراء طلبات البحث، وبث المحتوى، وتعلُّم الآلة. يساعدك التشغيل الآلي في Cloud Dataproc في إنشاء المجموعات بسرعة وإدارتها بسهولة وتوفير المال من خلال إيقاف المجموعات عند عدم الحاجة إليها. مع قضاء وقت ومال أقل على الإدارة، يمكنك التركيز على وظائفك وبياناتك.
هذا الدليل التوجيهي مقتبس من https://cloud.google.com/dataproc/overview.
ما ستتعرَّف عليه
- طريقة إنشاء مجموعة Cloud Dataproc مُدارة (في حال تثبيت Apache Spark مسبقًا)
- كيفية تقديم وظيفة Spark
- كيفية تغيير حجم مجموعة
- كيفية إرسال بروتوكول النقل الآمن (SSH) إلى العقدة الرئيسية لمجموعة Dataproc
- كيفية استخدام gcloud لفحص المجموعات والوظائف وقواعد جدار الحماية
- كيفية إيقاف المجموعة
المتطلبات
كيف ستستخدم هذا البرنامج التعليمي؟
ما هو تقييمك لتجربتك في استخدام خدمات Google Cloud Platform؟
2. الإعداد والمتطلبات
إعداد بيئة ذاتية
- سجِّل الدخول إلى Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. (إذا لم يكن لديك حساب على Gmail أو G Suite، عليك إنشاء حساب.)
يُرجى تذكُّر رقم تعريف المشروع، وهو اسم فريد في جميع مشاريع Google Cloud (سبق أن تم استخدام الاسم أعلاه ولن يكون مناسبًا لك). ستتم الإشارة إليها لاحقًا في هذا الدرس التطبيقي حول الترميز باسم PROJECT_ID
.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد Google Cloud.
إنّ تنفيذ هذا الدرس التطبيقي حول الترميز لن يكون مكلفًا أو مكلفًا على الإطلاق. احرص على اتّباع أي تعليمات في قسم "الحذف سريعًا". الذي يقدم لك نصائح حول كيفية إيقاف تشغيل الموارد حتى لا تتكبّد أي فواتير خارج نطاق هذا البرنامج التعليمي. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج الفترة التجريبية المجانية التي تبلغ قيمتها 300 دولار أمريكي.
3- تفعيل واجهتَي Cloud Dataproc وGoogle Compute Engine
انقر على رمز القائمة في أعلى يمين الشاشة.
اختر مدير واجهة برمجة التطبيقات من القائمة المنسدلة.
انقر على تفعيل واجهات برمجة التطبيقات والخدمات (Enable APIs and Services).
ابحث عن "Compute Engine" في مربع البحث. انقر على "Google Compute Engine API". في قائمة النتائج التي تظهر.
في صفحة Google Compute Engine، انقر على تفعيل.
وبعد تفعيلها، انقر على السهم الذي يشير إلى اليمين للرجوع.
ابحث الآن عن "Google Cloud Dataproc API". وتمكينه أيضًا.
4. بدء Cloud Shell
هذا الجهاز الافتراضي المستند إلى نظام دبيان محمل بكل أدوات التطوير التي ستحتاج إليها. وتوفّر هذه الشبكة دليلاً رئيسيًا دائمًا بسعة 5 غيغابايت ويتم تشغيله في Google Cloud، ما يحسّن بشكل كبير من أداء الشبكة والمصادقة. وهذا يعني أنّ كل ما ستحتاجه في هذا الدرس التطبيقي حول الترميز هو متصفّح (نعم، يعمل على جهاز Chromebook).
- لتفعيل Cloud Shell من Cloud Console، ما عليك سوى النقر على تفعيل 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، يمكنك استخدام سطر الأوامر لاستدعاء أمر gcloud في حزمة تطوير البرامج (SDK) في السحابة الإلكترونية أو الأدوات الأخرى المتاحة على مثيل الجهاز الافتراضي.
اختر اسم مجموعة لاستخدامه في هذا التمرين المعملي:
$ CLUSTERNAME=${USER}-dplab
لنبدأ بإنشاء مجموعة جديدة:
$ gcloud dataproc clusters create ${CLUSTERNAME} \
--region=us-central1 \
--scopes=cloud-platform \
--tags codelab \
--zone=us-central1-c
يجب أن تكون إعدادات المجموعة الافتراضية، التي تتضمن عقدتين عامتين، كافية لهذا البرنامج التعليمي. يتضمن الأمر أعلاه الخيار --zone
لتحديد المنطقة الجغرافية التي سيتم إنشاء المجموعة فيها، وخياران متقدمان، هما --scopes
و--tags
، وسيتم توضيحهما أدناه عند استخدام الميزات المفعَّلة. راجِع أمر حزمة تطوير البرامج (SDK) في السحابة الإلكترونية gcloud dataproc clusters create
للحصول على معلومات عن استخدام علامات سطر الأوامر لتخصيص إعدادات المجموعة.
6- إرسال مهمة Spark إلى مجموعتك
يمكنك إرسال مهمة من خلال طلب Cloud Dataproc API jobs.submit
، باستخدام أداة سطر الأوامر gcloud
، أو من وحدة تحكّم Google Cloud Platform. يمكنك أيضًا الاتصال بمثيل جهاز في المجموعة باستخدام بروتوكول النقل الآمن (SSH)، ثم تنفيذ مهمة من المثيل.
لنرسل مهمة باستخدام أداة gcloud
من سطر أوامر Cloud Shell:
$ gcloud dataproc jobs submit spark --cluster ${CLUSTERNAME} \
--class org.apache.spark.examples.SparkPi \
--jars file:///usr/lib/spark/examples/jars/spark-examples.jar -- 1000
أثناء تنفيذ المهمة، سيظهر لك الناتج في نافذة Cloud Shell.
يمكنك مقاطعة الإخراج من خلال إدخال 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. SSH في المجموعة
الاتصال عبر ssh بالعقدة الرئيسية، التي يكون اسم المثيل الخاص بها دائمًا اسم المجموعة مع إلحاق -m
:
$ gcloud compute ssh ${CLUSTERNAME}-m --zone=us-central1-c
عند تشغيل أمر ssh للمرة الأولى على Cloud Shell، سيتم إنشاء مفاتيح ssh لحسابك هناك. يمكنك اختيار عبارة مرور أو استخدام عبارة مرور فارغة في الوقت الحالي وتغييرها لاحقًا باستخدام "ssh-keygen
" إذا أردت ذلك.
على سبيل المثال، تحقَّق من اسم المضيف:
$ hostname
بما أنّك حدّدت المجموعة --scopes=cloud-platform
عند إنشاء المجموعة، يمكنك تنفيذ أوامر gcloud
في المجموعة. ضع قائمة بالمجموعات العنقودية في مشروعك:
$ gcloud dataproc clusters list
سجِّل الخروج من اتصال ssh عند الانتهاء:
$ 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.
لنغلق المجموعة باستخدام سطر أوامر Cloud Shell:
$ gcloud dataproc clusters delete ${CLUSTERNAME} --region us-central1
12. تهانينا!
لقد تعلّمت كيفية إنشاء مجموعة Dataproc وإرسال مهمة Spark وتغيير حجم مجموعة واستخدام SSH لتسجيل الدخول إلى العقدة الرئيسية واستخدام gcloud لفحص المجموعات والوظائف وقواعد جدار الحماية وإيقاف المجموعة باستخدام gcloud.
مزيد من المعلومات
الترخيص
هذا العمل مرخّص بموجب ترخيص Creative Commons Attribution 3.0 العام وترخيص Apache 2.0.