توفير مجموعة أدوات Hadoop/Spark المُدارة واستخدامها من خلال Cloud Dataproc (سطر الأوامر)

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. الإعداد والمتطلبات

إعداد بيئة ذاتية

  1. سجِّل الدخول إلى Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. (إذا لم يكن لديك حساب على Gmail أو G Suite، عليك إنشاء حساب.)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

يُرجى تذكُّر رقم تعريف المشروع، وهو اسم فريد في جميع مشاريع Google Cloud (سبق أن تم استخدام الاسم أعلاه ولن يكون مناسبًا لك). ستتم الإشارة إليها لاحقًا في هذا الدرس التطبيقي حول الترميز باسم PROJECT_ID.

  1. بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد Google Cloud.

إنّ تنفيذ هذا الدرس التطبيقي حول الترميز لن يكون مكلفًا أو مكلفًا على الإطلاق. احرص على اتّباع أي تعليمات في قسم "الحذف سريعًا". الذي يقدم لك نصائح حول كيفية إيقاف تشغيل الموارد حتى لا تتكبّد أي فواتير خارج نطاق هذا البرنامج التعليمي. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج الفترة التجريبية المجانية التي تبلغ قيمتها 300 دولار أمريكي.

3- تفعيل واجهتَي Cloud Dataproc وGoogle Compute Engine

انقر على رمز القائمة في أعلى يمين الشاشة.

2bfc27ef9ba2ec7d.png

اختر مدير واجهة برمجة التطبيقات من القائمة المنسدلة.

408af5f32c4b7c25.png

انقر على تفعيل واجهات برمجة التطبيقات والخدمات (Enable APIs and Services).

a9c0e84296a7ba5b.png

ابحث عن "Compute Engine" في مربع البحث. انقر على "Google Compute Engine API". في قائمة النتائج التي تظهر.

b6adf859758d76b3.png

في صفحة Google Compute Engine، انقر على تفعيل.

da5584a1cbc77104.png

وبعد تفعيلها، انقر على السهم الذي يشير إلى اليمين للرجوع.

ابحث الآن عن "Google Cloud Dataproc API". وتمكينه أيضًا.

f782195d8e3d732a.png

4. بدء Cloud Shell

هذا الجهاز الافتراضي المستند إلى نظام دبيان محمل بكل أدوات التطوير التي ستحتاج إليها. وتوفّر هذه الشبكة دليلاً رئيسيًا دائمًا بسعة 5 غيغابايت ويتم تشغيله في Google Cloud، ما يحسّن بشكل كبير من أداء الشبكة والمصادقة. وهذا يعني أنّ كل ما ستحتاجه في هذا الدرس التطبيقي حول الترميز هو متصفّح (نعم، يعمل على جهاز Chromebook).

  1. لتفعيل Cloud Shell من Cloud Console، ما عليك سوى النقر على تفعيل Cloud Shell fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q (من المفترَض أن تستغرق عملية الإعداد والاتصال بالبيئة بضع دقائق فقط).

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

لقطة شاشة يوم 14-06-2017 في الساعة 10.13.43 مساءً.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، يمكنك استخدام سطر الأوامر لاستدعاء أمر 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.

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. 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.