آمازون EMR در آمازون EKS یک گزینه استقرار برای آمازون EMR که به شما امکان می دهد بارهای کاری تجزیه و تحلیل را بر روی آن اجرا کنید سرویس الاستیک کوبرنتز آمازون (Amazon EKS). این یک گزینه جذاب است زیرا به شما امکان می دهد برنامه ها را بر روی یک منبع مشترک از منابع بدون نیاز به تهیه زیرساخت اجرا کنید. علاوه بر این، می توانید استفاده کنید Amazon EMR Studio برای ساخت کدهای تحلیلی که روی خوشه های آمازون EKS اجرا می شود. EMR Studio یک محیط توسعه یکپارچه مبتنی بر وب (IDE) با استفاده از نوت بوک های Jupyter کاملاً مدیریت شده است که می تواند به هر خوشه EMR، از جمله EMR در EKS، متصل شود. استفاده می کند AWS Single Sign-On (SSO) یا یک ارائه دهنده هویت سازگار (IdP) برای ورود مستقیم به استودیو EMR از طریق یک URL ایمن با استفاده از اعتبارنامه های شرکتی.
استقرار EMR Studio برای اتصال به EMR در EKS نیازمند ادغام چندین سرویس AWS است:
علاوه بر این، باید EMR زیر را روی اجزای EKS نصب کنید:
این پست به شما کمک می کند تا با اجرای یک اسکریپت، تمام اجزای لازم را بسازید و آنها را به هم بچسبانید. همچنین معماری این راهاندازی و نحوه کار اجزا با هم را توضیح میدهیم.
نمای کلی معماری
با EMR در EKS، میتوانید برنامههای Spark را در کنار انواع دیگر برنامهها در همان خوشه Amazon EKS اجرا کنید، که تخصیص منابع را بهبود میبخشد و مدیریت زیرساخت را سادهتر میکند. برای اطلاعات بیشتر در مورد نحوه عملکرد آمازون EMR در یک خوشه آمازون EKS، ببینید جدید – آمازون EMR در سرویس Amazon Elastic Kubernetes (EKS). EMR Studio یک IDE مبتنی بر وب ارائه می دهد که توسعه، تجسم و اشکال زدایی برنامه هایی را که در EMR اجرا می شوند را آسان می کند. برای اطلاعات بیشتر ببین Amazon EMR Studio (پیش نمایش): اولین تجربه IDE نوت بوک جدید با آمازون EMR.
هسته های اسپارک غلاف های برنامه ریزی شده ای در یک فضای نام در یک خوشه آمازون EKS هستند. EMR Studio از Jupyter Enterprise Gateway (JEG) برای راه اندازی هسته های Spark در Amazon EKS استفاده می کند. یک نقطه پایانی مدیریت شده از نوع JEG به عنوان یک استقرار Kubernetes در فضای نام مرتبط خوشه مجازی EMR ارائه می شود و به عنوان یک سرویس Kubernetes در معرض دید قرار می گیرد. هر خوشه مجازی EMR به یک فضای نام Kubernetes ثبت شده در خوشه Amazon EKS نگاشت می شود. خوشه های مجازی محاسبات فیزیکی یا ذخیره سازی را مدیریت نمی کنند، اما به فضای نام Kubernetes اشاره می کنند که در آن بار کاری برنامه ریزی شده است. هر خوشه مجازی می تواند چندین نقطه پایانی مدیریت شده داشته باشد که هر کدام هسته های پیکربندی شده خود را برای موارد استفاده و نیازهای مختلف دارند. نقاط پایانی مدیریتشده JEG، نقاط پایانی HTTPS را ارائه میکنند که توسط یک Application Load Balancer (ALB) سرویس میشوند، که فقط از طریق EMR Studio و نوتبوکهای خود میزبانی که در یک زیرشبکه خصوصی Amazon EKS VPC ایجاد شدهاند، قابل دسترسی هستند.
نمودار زیر معماری راه حل را نشان می دهد.
نقطه پایانی مدیریت شده در فضای نام آمازون EKS خوشه مجازی ایجاد می شود (در این مورد، sparkns
) و نقاط پایانی HTTPS از زیر شبکه های خصوصی سرویس می شوند. غلاف های هسته با نقش IAM اجرای کار که در نقطه پایانی مدیریت شده تعریف شده است اجرا می شوند. در طول ایجاد نقطه پایانی مدیریت شده، EMR در EKS از کنترلر AWS Load Balancer استفاده می کند kube-system
فضای نام برای ایجاد یک ALB با یک گروه هدف که به نقطه پایانی مدیریت شده JEG در فضای نام Kubernetes خوشه مجازی متصل می شود.
شما می توانید هسته هر نقطه پایانی مدیریت شده را به طور متفاوتی پیکربندی کنید. به عنوان مثال، برای اجازه استفاده از یک هسته Spark چسب AWS به عنوان کاتالوگ آنها، می توانید فایل JSON پیکربندی زیر را در - اعمال کنید -configuration-overrides
هنگام ایجاد یک نقطه پایانی مدیریت شده، پرچم گذاری کنید:
نقطه پایانی مدیریت شده یک استقرار Kubernetes است که توسط یک سرویس در داخل فضای نام پیکربندی شده (در این مورد، sparkns
). وقتی اطلاعات نقطه پایانی را ردیابی می کنیم، می توانیم ببینیم که چگونه استقرار دروازه سازمانی Jupyter با ALB و گروه هدف متصل می شود:
برای مشاهده نحوه اتصال، دو جلسه EMR Studio را در نظر بگیرید. ALB پورت 18888 را در معرض جلسات EMR Studio قرار می دهد. سرویس JEG پورت خارجی 18888 را روی ALB به پویا نگاشت می کند NodePort
در سرویس JEG (در این مورد، 30091). سرویس JEG ترافیک را به TargetPort
9547، که ترافیک را به جایگاه مناسب درایور Spark هدایت می کند. همانطور که در نمودار زیر نشان داده شده است، هر جلسه نوت بوک هسته مخصوص به خود را دارد که دارای درایور Spark و پادهای اجرایی مربوط به خود است.
EMR Studio را به یک خوشه مجازی و نقطه پایانی مدیریت شده متصل کنید
هر بار که کاربر یک خوشه مجازی و یک نقطه پایانی مدیریت شده را به Studio Workspace خود متصل می کند و یک جلسه Spark را راه اندازی می کند، درایورهای Spark و مجریان Spark برنامه ریزی می شوند. وقتی می دوید می توانید آن را ببینید kubectl
برای بررسی اینکه چه غلاف هایی راه اندازی شده اند:
هر جلسه هسته نوت بوک Spark یک پاد درایور و پادهای اجرایی را مستقر می کند که تا زمانی که جلسه کرنل بسته شود به کار خود ادامه می دهد.
کد موجود در سلول های نوت بوک در غلاف های اجرایی که در خوشه آمازون EKS مستقر شده بودند اجرا می شود.
EMR را در EKS و EMR Studio راه اندازی کنید
چندین مرحله و قطعات برای راه اندازی هر دو EMR در EKS و EMR Studio مورد نیاز است. فعال کردن AWS SSO یک پیش نیاز است. می توانید از دو اسکریپت راه اندازی ارائه شده در این بخش استفاده کنید یا به صورت دستی با استفاده از مراحل ارائه شده در این پست، آن را به صورت دستی اجرا کنید.
ما دو اسکریپت راه اندازی را در این پست ارائه می دهیم. یکی از اسکریپت bash است که استفاده می کند AWS CloudFormation، eksctl و رابط خط فرمان AWS (AWS CLI) دستوراتی را برای ارائه استقرار سرتاسری یک راه حل کامل ارائه می دهد. دیگری از کیت توسعه ابری AWS (AWS CDK) برای انجام این کار.
نمودار زیر معماری و اجزایی را که ما به کار می بریم نشان می دهد.
پیش نیازها
حتما پیش نیازهای زیر را تکمیل کنید:
برای اطلاعات در مورد IdP های پشتیبانی شده، مراجعه کنید AWS Single Sign-On را برای Amazon EMR Studio فعال کنید.
اسکریپت Bash
اسکریپت در دسترس است GitHub.
پیش نیازها
اسکریپت نیاز به استفاده از شما دارد AWS Cloud9. دستورالعمل های موجود در کارگاه آمازون EKS. حتما این دستورالعمل ها را به دقت دنبال کنید:
پس از استقرار دسکتاپ AWS Cloud9، به مراحل بعدی بروید.
تهیه
از کد زیر برای کلون کردن مخزن GitHub و آماده سازی پیش نیازهای AWS Cloud9 استفاده کنید:
پشته را مستقر کنید
قبل از اجرای اسکریپت، اطلاعات زیر را ارائه دهید:
- شناسه حساب AWS و منطقه، اگر دسکتاپ AWS Cloud9 شما در همان شناسه حساب یا منطقه ای نیست که می خواهید EMR را در EKS مستقر کنید.
- نام سرویس ذخیره سازی ساده آمازون (Amazon S3) سطل برای ایجاد
- کاربر AWS SSO باید با جلسه EMR Studio مرتبط شود
پس از اینکه اسکریپت پشته را مستقر کرد، URL به استودیوی EMR مستقر نشان داده می شود:
اسکریپت AWS CDK
اسکریپت های AWS CDK در دسترس هستند GitHub. شما باید آن را بررسی کنید main
شاخه. پشته ها یک خوشه آمازون EKS و EMR را روی خوشه مجازی EKS در یک VPC جدید با زیرشبکه های خصوصی و به صورت اختیاری مستقر می کنند. آمازون جریان هوای آپاچی را مدیریت کرد محیط (Amazon MWAA) و EMR Studio.
پیش نیازها
شما به AWS CDK نسخه 1.90.1 یا بالاتر نیاز دارید. برای اطلاعات بیشتر ببین شروع کار با AWS CDK.
ما از یک لیست پیشوند برای محدود کردن دسترسی به برخی از منابع به محدوده IP شبکه که تأیید می کنید استفاده می کنیم. ایجاد یک لیست پیشوند اگر قبلاً یکی ندارید
اگر قصد دارید از EMR Studio استفاده کنید، به AWS SSO نیاز دارید در حساب شما پیکربندی شده است.
تهیه
پس از کلون کردن مخزن و بررسی آن main
شاخه، ایجاد و فعال کردن یک محیط مجازی پایتون جدید:
اکنون وابستگی های پایتون را نصب کنید:
در نهایت CDK AWS را بوت استرپ کنید:
پشته ها را مستقر کنید
پشته های AWS CDK را با کد زیر ترکیب کنید:
این دستور چهار پشته تولید می کند:
- emr-eks-cdk - پشته اصلی
- mwaa-cdk – آمازون MWAA را اضافه می کند
- studio-cdk - پیش نیازهای EMR Studio را اضافه می کند
- studio-cdk-live - EMR Studio را اضافه می کند
نمودار زیر منابع به کار گرفته شده توسط پشته های AWS CDK را نشان می دهد.
با استقرار اولین پشته شروع کنید:
اگر می خواهید از Apache Airflow به عنوان ارکستراتور خود استفاده کنید، آن پشته را مستقر کنید:
استقرار اولین پشته EMR Studio:
منتظر بمانید تا نقطه پایانی مدیریت شده فعال شود. با اجرای کد زیر می توانید وضعیت را بررسی کنید:
شناسه خوشه مجازی در خروجی AWS CDK از پشته emr-eks-cdk موجود است.
هنگامی که نقطه پایانی فعال است، دومین پشته EMR Studio را مستقر کنید:
استقرار دستی
اگر ترجیح می دهید EMR را به صورت دستی در EKS و EMR Studio مستقر کنید، از مراحل این بخش استفاده کنید.
یک VPC راه اندازی کنید
اگر از Amazon EKS نسخه 1.18 استفاده میکنید، یک VPC راهاندازی کنید که دارای زیرشبکههای خصوصی و برچسبگذاری مناسب برای متعادلکنندههای بار خارجی است. برای برچسب گذاری، نگاه کنید به: تعادل بار برنامه در Amazon EKS و یک نقش سرویس EMR Studio ایجاد کنید.
یک خوشه آمازون EKS ایجاد کنید
یک خوشه آمازون EKS با حداقل یک گروه گره مدیریت شده راه اندازی کنید. برای دستورالعمل، نگاه کنید راه اندازی و شروع کار با آمازون EKS.
خطمشیها، نقشها، IdP و گواهی SSL/TLS مربوطه را ایجاد کنید
برای ایجاد خطمشیها، نقشها، IdP و گواهی SSL/TLS خود، مراحل زیر را تکمیل کنید:
- دسترسی خوشه ای را برای EMR در EKS فعال کنید.
- یک IdP در IAM بر اساس URL ارائه دهنده EKS OIDC ایجاد کنید.
- یک گواهی SSL/TLS ایجاد کنید و آن را در آن قرار دهید مدیر گواهی AWS.
- خطمشیها و نقشهای IAM مربوطه را ایجاد کنید:
- نقش اجرای شغل
- خط مشی اعتماد را به روز کنید برای نقش اجرای کار
- سیاست IAM را برای کنترلر AWS Load Balancer اجرا و ایجاد کنید
- نقش سرویس EMR Studio
- نقش کاربر EMR Studio
- خطمشیهای کاربر EMR Studio مرتبط با کاربران و گروه های AWS SSO
- خوشه آمازون EKS را با آمازون EMR ثبت کنید برای ایجاد خوشه مجازی EMR
- مناسب ایجاد کنید گروه های امنیتی به هر استودیوی EMR ایجاد شده متصل شود:
- گروه امنیت فضای کاری
- گروه امنیت موتور
- گروه های امنیتی را با تگ های مناسب تگ کنید. برای دستورالعمل، نگاه کنید یک نقش سرویس EMR Studio ایجاد کنید.
نصب های مورد نیاز در Amazon EKS
مستقر کنید کنترلر Load Balancer AWS در خوشه آمازون EKS اگر قبلاً این کار را نکرده اید.
EMR را روی قطعات مرتبط EKS ایجاد کنید و کاربر را به EMR Studio نقشه برداری کنید
مراحل زیر را انجام دهید:
- حداقل یک خوشه مجازی EMR مرتبط با خوشه آمازون EKS ایجاد کنید. برای دستورالعملها، مرحله 1 را ببینید آمازون EMR را در EKS برای EMR Studio راه اندازی کنید.
- حداقل یک نقطه پایانی مدیریت شده ایجاد کنید. برای دستورالعمل ها، مرحله 2 را ببینید آمازون EMR را در EKS برای EMR Studio راه اندازی کنید.
- حداقل یک EMR Studio ایجاد کنید. استودیو EMR را با زیرشبکه های خصوصی پیکربندی شده با آمازون EKS مرتبط کنید. برای دستورالعمل، نگاه کنید یک استودیو EMR ایجاد کنید.
- وقتی استودیو EMR در دسترس است، یک کاربر یا گروه AWS SSO را به استودیوی EMR نگاشت کنید و یک سیاست IAM مناسب را برای آن کاربر اعمال کنید.
از EMR Studio استفاده کنید
برای شروع استفاده از EMR Studio، مراحل زیر را انجام دهید:
- نشانی اینترنتی EMR Studio را توسط استودیوهای یک منطقه پیدا کنید:
- با URL فهرست شده، با استفاده از نام کاربری AWS SSO که قبلاً استفاده کرده اید، وارد شوید.
پس از احراز هویت، کاربر به داشبورد EMR Studio هدایت می شود.
- را انتخاب کنید ایجاد فضای کاری.
- برای نام فضای کاری، یک نام وارد کنید.
- برای زیرشبکه، زیرشبکه ای را انتخاب کنید که مربوط به یکی از زیرشبکه های مرتبط با گروه گره مدیریت شده است.
- برای مکان S3، یک سطل S3 را وارد کنید که می توانید محتوای نوت بوک را در آن ذخیره کنید.
- پس از ایجاد Workspace، یکی را انتخاب کنید که در آن است
Ready
وضعیت.
- در نوار کناری، نماد خوشه EMR را انتخاب کنید.
- تحت نوع خوشهانتخاب کنید خوشه EMR در EKS.
- خوشه مجازی موجود و نقطه پایان مدیریت شده موجود را انتخاب کنید.
- را انتخاب کنید ضمیمه کردن.
پس از پیوست شدن، EMR Studio هسته های موجود در آن را نمایش می دهد دفتر یادداشت و کنسول بخش.
- را انتخاب کنید PySpark (Kubernetes) برای راه اندازی یک هسته نوت بوک و شروع یک جلسه Spark.
از آنجا که پیکربندی نقطه پایانی در اینجا از چسب AWS برای متاستور خود استفاده میکند، میتوانید پایگاههای داده و جداول متصل به کاتالوگ دادههای چسب AWS را فهرست کنید. برای تست تنظیمات می توانید از اسکریپت مثال زیر استفاده کنید. اسکریپت را در صورت لزوم برای پایگاه داده و جدول مناسبی که در کاتالوگ داده خود دارید تغییر دهید:
پاک کردن
برای جلوگیری از تحمیل هزینههای آتی، منابعی را که در اینجا راهاندازی شدهاند با اجرای remove_setup.sh حذف کنید:
نتیجه
EMR در EKS به شما این امکان را میدهد که برنامهها را روی یک مجموعه مشترک از منابع در داخل یک خوشه آمازون EKS بدون نیاز به تهیه زیرساخت اجرا کنید. EMR Studio یک نوت بوک و ابزار کاملاً مدیریت شده Jupyter است که هسته هایی را فراهم می کند که روی خوشه های EMR اجرا می شوند، از جمله خوشه های مجازی در Amazon EKS. در این پست، معماری نحوه اتصال EMR Studio با EMR در EKS را شرح دادیم و اسکریپت هایی را برای استقرار خودکار همه اجزا برای اتصال این دو سرویس ارائه کردیم.
اگر سوال یا پیشنهادی دارید، لطفا نظر خود را بنویسید.
درباره نویسنده
رندی دیفاو یک معمار اصلی راه حل در خدمات وب آمازون است. او با مشتریان AWS برای ارائه راهنمایی و کمک فنی در پروژه های پایگاه داده کار می کند و به آنها کمک می کند ارزش راه حل های خود را هنگام استفاده از AWS بهبود بخشند.
متیو تان یک معمار ارشد راه حل های تجزیه و تحلیل در خدمات وب آمازون است و به مشتریانی که راه حل هایی را با سرویس های AWS Analytics در مورد حجم کاری تحلیلی خود توسعه می دهند، راهنمایی می کند.
- '
- "
- 100
- 7
- 9
- دسترسی
- حساب
- فعال
- معرفی
- تخصیص
- آمازون
- آمازون خدمات وب
- علم تجزیه و تحلیل
- آپاچی
- کاربرد
- برنامه های کاربردی
- معماری
- تصدیق
- AWS
- متعادل کننده
- ساختن
- موارد
- گواهی نامه
- بار
- وارسی
- طبقه بندی
- ابر
- رمز
- مشترک
- محاسبه
- محتوا
- ادامه دادن
- کنترل کننده
- ایجاد
- مجوزها و اعتبارات
- مشتریان
- داشبورد
- داده ها
- پایگاه داده
- پایگاه های داده
- توسعه
- پروژه
- راننده
- نقطه پایانی
- سرمایه گذاری
- محیط
- اعدام
- تجربه
- کارخانه
- نام خانوادگی
- به دنبال
- جبهه دار
- آینده
- رفتن
- GitHub
- گروه
- هادوپ
- اینجا کلیک نمایید
- کندو
- چگونه
- HTTPS
- IAM
- ICON
- هویت
- از جمله
- اطلاعات
- شالوده
- IP
- IT
- کار
- نوت بوک ژوپیتر
- کوبرنیتس
- راه اندازی
- راه اندازی
- لاین
- فهرست
- بار
- مدیریت
- نقشه
- نقشه ها
- شبکه
- نوت بوک
- گزینه
- دیگر
- فیزیکی
- غلاف
- سیاست
- سیاست
- استخر
- پیش نمایش
- اصلی
- خصوصی
- پروژه ها
- پــایتــون
- مورد نیاز
- منابع
- منابع
- دویدن
- در حال اجرا
- تیم امنیت لاتاری
- خدمات
- تنظیم
- ساده
- So
- مزایا
- SQL
- شروع
- آغاز شده
- دولت
- وضعیت
- ذخیره سازی
- opbevare
- پشتیبانی
- هدف
- فنی
- آزمون
- زمان
- ترافیک
- اعتماد
- کاربران
- ارزش
- مجازی
- وب
- خدمات وب
- در داخل
- کلمات
- مهاجرت کاری
- با این نسخهها کار