تهیه و استفاده از Hadoop/Spark Cluster مدیریت شده با Cloud Dataproc (خط فرمان)

1. بررسی اجمالی

Cloud Dataproc یک سرویس Spark و Hadoop مدیریت شده است که به شما امکان می دهد از ابزارهای داده منبع باز برای پردازش دسته ای، پرس و جو، پخش جریانی و یادگیری ماشین استفاده کنید. اتوماسیون Cloud Dataproc به شما کمک می کند تا خوشه ها را به سرعت ایجاد کنید، آنها را به راحتی مدیریت کنید و با خاموش کردن خوشه ها در زمانی که به آنها نیاز ندارید، در هزینه خود صرفه جویی کنید. با صرف زمان و هزینه کمتر برای مدیریت، می توانید روی شغل و داده های خود تمرکز کنید.

این آموزش از https://cloud.google.com/dataproc/overview اقتباس شده است

چیزی که یاد خواهید گرفت

  • نحوه ایجاد یک کلاستر Cloud Dataproc مدیریت شده (با Apache Spark از قبل نصب شده ).
  • نحوه ارسال شغل Spark
  • نحوه تغییر اندازه یک خوشه
  • نحوه وارد کردن ssh به گره اصلی یک خوشه Dataproc
  • نحوه استفاده از gcloud برای بررسی کلاسترها، مشاغل و قوانین فایروال
  • چگونه خوشه خود را تعطیل کنیم

آنچه شما نیاز دارید

چگونه از این آموزش استفاده خواهید کرد؟

فقط از طریق آن را بخوانید آن را بخوانید و تمرینات را کامل کنید

تجربه خود را در استفاده از سرویس‌های پلتفرم ابری Google چگونه ارزیابی می‌کنید؟

تازه کار متوسط مسلط

2. راه اندازی و الزامات

تنظیم محیط خود به خود

  1. به کنسول Cloud وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. (اگر قبلاً یک حساب Gmail یا G Suite ندارید، باید یک حساب ایجاد کنید .)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJHHXieCvXw5 Zw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aTQz5GpG0T

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3UUUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3UUUO1A8CXUF

شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژه های Google Cloud (نام بالا قبلاً گرفته شده است و برای شما کار نخواهد کرد، متأسفیم!). بعداً در این آزمایشگاه کد به عنوان PROJECT_ID نامیده خواهد شد.

  1. در مرحله بعد، برای استفاده از منابع Google Cloud، باید صورت‌حساب را در Cloud Console فعال کنید .

اجرا کردن از طریق این کد لبه نباید هزینه زیادی داشته باشد، اگر اصلاً باشد. حتماً دستورالعمل‌های موجود در بخش «تمیز کردن» را دنبال کنید که به شما توصیه می‌کند چگونه منابع را خاموش کنید تا بیش از این آموزش متحمل صورت‌حساب نشوید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

3. APIهای Cloud Dataproc و Google Compute Engine را فعال کنید

روی نماد منو در سمت چپ بالای صفحه کلیک کنید.

2bfc27ef9ba2ec7d.png

از منوی کشویی API Manager را انتخاب کنید.

408af5f32c4b7c25.png

روی Enable APIs and Services کلیک کنید.

a9c0e84296a7ba5b.png

"موتور محاسباتی" را در کادر جستجو جستجو کنید. در لیست نتایج ظاهر شده روی "Google Compute Engine API" کلیک کنید.

b6adf859758d76b3.png

در صفحه Google Compute Engine روی Enable کلیک کنید

da5584a1cbc77104.png

پس از فعال شدن، روی فلش سمت چپ کلیک کنید تا به عقب برگردید.

اکنون "Google Cloud Dataproc API" را جستجو کرده و آن را نیز فعال کنید.

f782195d8e3d732a.png

4. Cloud Shell را راه اندازی کنید

این ماشین مجازی مبتنی بر دبیان با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این دایرکتوری اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد شبکه و احراز هویت را بسیار افزایش می دهد. این بدان معنی است که تمام چیزی که برای این کد لبه نیاز دارید یک مرورگر است (بله، روی کروم بوک کار می کند).

  1. برای فعال کردن Cloud Shell از Cloud Console، کافی است روی Activate Cloud Shell کلیک کنید. fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7P6XFNqNqVB7p6FQNqNqVBQ7P6XfNqSw P-X3Q (تهیه و اتصال به محیط فقط چند لحظه طول می کشد).

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1NYAd

Screen Shot 2017-06-14 at 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-J9XBzuUgaz7VvaxNrkP2TAn93DrxZHQ4PhZ5

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 است که در زیر توضیح داده می شود که از ویژگی هایی که آنها فعال می کنند استفاده کنید. برای اطلاعات در مورد استفاده از پرچم های خط فرمان برای سفارشی کردن تنظیمات خوشه، دستور gcloud dataproc clusters create را ببینید.

6. یک کار Spark را به کلاستر خود ارسال کنید

می‌توانید از طریق یک درخواست jobs.submit API Cloud Dataproc، با استفاده از ابزار خط فرمان 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 برای کارگران preemptible است. Dataproc وضعیت خوشه را به عنوان آماده نشان می دهد که گره های جدید در حال بوت شدن هستند.

از آنجایی که شما با دو گره شروع کرده اید و اکنون چهار گره دارید، کارهای Spark شما باید دو برابر سریعتر اجرا شوند.

9. SSH به Cluster

از طریق 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 برای اضافه کردن یک برچسب به هر گره در خوشه اضافه کردید. از تگ ها برای پیوست کردن قوانین فایروال به هر گره استفاده می شود. شما هیچ قانون فایروال منطبقی را در این Codelab ایجاد نکرده‌اید، اما همچنان می‌توانید برچسب‌های یک گره و قوانین فایروال را در شبکه بررسی کنید.

شرح گره اصلی را چاپ کنید:

$ 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 Generic و مجوز Apache 2.0 مجوز دارد.