Amazon EMR على Amazon EKS يوفر خيار نشر لـ أمازون EMR الذي يسمح لك بتشغيل أعباء عمل التحليلات خدمة أمازون مطاطا Kubernetes (أمازون إي كي إس). يعد هذا خيارًا جذابًا لأنه يسمح لك بتشغيل التطبيقات على مجموعة مشتركة من الموارد دون الحاجة إلى توفير البنية التحتية. وبالإضافة إلى ذلك، يمكنك استخدام ستوديو أمازون إي إم آر لإنشاء تعليمات برمجية تحليلية تعمل على مجموعات Amazon EKS. EMR Studio عبارة عن بيئة تطوير متكاملة قائمة على الويب (IDE) تستخدم دفاتر Jupyter المُدارة بالكامل والتي يمكن ربطها بأي مجموعة EMR، بما في ذلك EMR على EKS. يستخدم الدخول الموحد في AWS (SSO) أو موفر هوية متوافق (IdP) لتسجيل الدخول مباشرة إلى EMR Studio من خلال عنوان URL آمن باستخدام بيانات اعتماد الشركة.
يتطلب نشر EMR Studio للإرفاق بـ EMR على EKS دمج العديد من خدمات AWS:
بالإضافة إلى ذلك، تحتاج إلى تثبيت EMR التالي على مكونات EKS:
تساعدك هذه المشاركة على إنشاء جميع المكونات الضرورية وربطها معًا عن طريق تشغيل برنامج نصي واحد. نحن أيضًا نصف بنية هذا الإعداد وكيفية عمل المكونات معًا.
نظرة عامة على العمارة
باستخدام EMR على EKS، يمكنك تشغيل تطبيقات Spark جنبًا إلى جنب مع أنواع أخرى من التطبيقات على نفس مجموعة Amazon EKS، مما يعمل على تحسين تخصيص الموارد وتبسيط إدارة البنية التحتية. لمزيد من المعلومات حول كيفية عمل Amazon EMR داخل مجموعة Amazon EKS، راجع جديد - Amazon EMR على Amazon Elastic Kubernetes Service (EKS). يوفر EMR Studio بيئة تطوير متكاملة (IDE) على الويب تجعل من السهل تطوير وتصور وتصحيح التطبيقات التي تعمل في EMR. لمزيد من المعلومات، راجع Amazon EMR Studio (معاينة): تجربة IDE جديدة للكمبيوتر المحمول مع Amazon EMR.
إن Spark kernels عبارة عن حاويات مجدولة في مساحة اسم في مجموعة Amazon EKS. يستخدم EMR Studio بوابة Jupyter Enterprise Gateway (JEG) لإطلاق Spark kernels على Amazon EKS. يتم توفير نقطة نهاية مُدارة من النوع JEG كنشر Kubernetes في مساحة الاسم المرتبطة بمجموعة EMR الافتراضية ويتم عرضها كخدمة Kubernetes. يتم تعيين كل مجموعة افتراضية لـ EMR إلى مساحة اسم Kubernetes المسجلة في مجموعة Amazon EKS؛ لا تدير المجموعات الافتراضية الحوسبة الفعلية أو التخزين، ولكنها تشير إلى مساحة اسم Kubernetes حيث تتم جدولة عبء العمل. يمكن أن تحتوي كل مجموعة افتراضية على عدة نقاط نهاية مُدارة، ولكل منها نواة تم تكوينها لحالات الاستخدام والاحتياجات المختلفة. توفر نقاط النهاية المُدارة بواسطة JEG نقاط نهاية HTTPS، التي تتم خدمتها بواسطة Application Load Balancer (ALB)، والتي لا يمكن الوصول إليها إلا من EMR Studio وأجهزة الكمبيوتر المحمولة ذاتية الاستضافة التي تم إنشاؤها داخل شبكة فرعية خاصة من Amazon EKS VPC.
يوضح الرسم البياني التالي بنية الحل.
يتم إنشاء نقطة النهاية المُدارة في مساحة اسم Amazon EKS الخاصة بالمجموعة الافتراضية (في هذه الحالة، sparkns
) ويتم صيانة نقاط نهاية HTTPS من شبكات فرعية خاصة. تعمل كبسولات kernel مع دور IAM لتنفيذ المهمة المحدد في نقطة النهاية المُدارة. أثناء إنشاء نقطة النهاية المُدارة، يستخدم EMR على EKS وحدة تحكم AWS Load Balancer في kube-system
مساحة الاسم لإنشاء ALB مع مجموعة مستهدفة تتصل بنقطة النهاية المُدارة بواسطة JEG في مساحة اسم Kubernetes الخاصة بالمجموعة الافتراضية.
يمكنك تكوين نواة كل نقطة نهاية مُدارة بشكل مختلف. على سبيل المثال، للسماح باستخدام Spark kernel غراء AWS ككتالوج خاص بهم، يمكنك تطبيق ملف التكوين JSON التالي في —configuration-overrides
وضع علامة عند إنشاء نقطة نهاية مُدارة:
نقطة النهاية المُدارة هي نشر Kubernetes أمام خدمة داخل مساحة الاسم المكونة (في هذه الحالة، sparkns
). عندما نتتبع معلومات نقطة النهاية، يمكننا أن نرى كيف يتصل نشر Jupyter Enterprise Gateway بـ ALB والمجموعة المستهدفة:
للنظر في كيفية ربط ذلك، فكر في جلستين في EMR Studio. يعرض ALB المنفذ 18888 لجلسات EMR Studio. تقوم خدمة JEG بتعيين المنفذ الخارجي 18888 على ALB إلى الديناميكي NodePort
في خدمة JEG (في هذه الحالة، 30091). تقوم خدمة JEG بإعادة توجيه حركة المرور إلى TargetPort
9547، الذي يوجه حركة المرور إلى حجرة برنامج تشغيل Spark المناسبة. تحتوي كل جلسة دفتر ملاحظات على نواة خاصة بها، والتي تحتوي على برنامج تشغيل Spark الخاص بها ووحدات التنفيذ الخاصة بها، كما يوضح الرسم البياني التالي.
قم بإرفاق EMR Studio بمجموعة افتراضية ونقطة نهاية مُدارة
في كل مرة يقوم فيها المستخدم بإرفاق مجموعة افتراضية ونقطة نهاية مُدارة بمساحة عمل الاستوديو الخاصة به ويقوم بتشغيل جلسة Spark، تتم جدولة برامج تشغيل Spark ومنفذي Spark. يمكنك أن ترى ذلك عند الركض kubectl
للتحقق من القرون التي تم إطلاقها:
تنشر كل جلسة Spark kernel للكمبيوتر الدفتري حجرة برنامج التشغيل وحجيرات المنفذ التي تستمر في التشغيل حتى يتم إيقاف جلسة kernel.
يتم تشغيل التعليمات البرمجية الموجودة في خلايا الكمبيوتر الدفتري في حجرات المنفذ التي تم نشرها في مجموعة Amazon EKS.
قم بإعداد EMR على EKS وEMR Studio
يلزم وجود عدة خطوات وأجزاء لإعداد كل من EMR على EKS وEMR Studio. يعد تمكين AWS SSO شرطًا أساسيًا. يمكنك استخدام نصي التشغيل المقدمين في هذا القسم أو نشرهما يدويًا باستخدام الخطوات الواردة لاحقًا في هذا المنشور.
نحن نقدم اثنين من البرامج النصية للإطلاق في هذا المنشور. أحدهما هو برنامج نصي bash يستخدم تكوين سحابة AWS، إكسكتل، و واجهة سطر الأوامر AWS (AWS CLI) لتوفير نشر شامل للحل الكامل. والآخر يستخدم مجموعة تطوير سحابة AWS (AWS CDK) للقيام بذلك.
يوضح الرسم البياني التالي البنية والمكونات التي ننشرها.
المتطلبات الأساسية المسبقة
تأكد من استكمال المتطلبات الأساسية التالية:
للحصول على معلومات حول IdPs المدعومة، راجع تمكين تسجيل الدخول الموحد لـ AWS لـ Amazon EMR Studio.
باش النصي
النص متاح في GitHub جيثب:.
المتطلبات الأساسية المسبقة
البرنامج النصي يتطلب منك استخدام سحابة AWS 9. اتبع التعليمات الموجودة في ورشة عمل أمازون EKS. تأكد من اتباع هذه التعليمات بعناية:
بعد نشر سطح المكتب AWS Cloud9، انتقل إلى الخطوات التالية.
الإعداد
استخدم الكود التالي لاستنساخ GitHub repo وإعداد متطلبات AWS Cloud9 الأساسية:
انشر المكدس
قبل تشغيل البرنامج النصي، قم بتوفير المعلومات التالية:
- معرف حساب AWS والمنطقة، إذا لم يكن سطح مكتب AWS Cloud9 الخاص بك موجودًا في نفس معرف الحساب أو المنطقة التي تريد نشر EMR فيها على EKS
- اسم ال خدمة تخزين أمازون البسيطة (Amazon S3) دلو للإنشاء
- مستخدم AWS SSO المراد ربطه بجلسة EMR Studio
بعد أن ينشر البرنامج النصي المكدس، يتم عرض عنوان URL الخاص بـ EMR Studio المنشور:
البرنامج النصي AWS CDK
تتوفر البرامج النصية لـ AWS CDK على GitHub جيثب:. تحتاج إلى الخروج من main
فرع. تنشر الحزم مجموعة Amazon EKS وEMR على مجموعة EKS الافتراضية في VPC جديدة مع شبكات فرعية خاصة، واختياريًا Amazon Managed Airflow Apache بيئة (Amazon MWAA) واستوديو EMR.
المتطلبات الأساسية المسبقة
أنت بحاجة إلى الإصدار 1.90.1 من AWS CDK أو أعلى. لمزيد من المعلومات، راجع الشروع في استخدام AWS CDK.
نحن نستخدم قائمة البادئات لتقييد الوصول إلى بعض الموارد لنطاقات IP للشبكة التي توافق عليها. إنشاء قائمة البادئة إذا لم يكن لديك واحد بالفعل.
إذا كنت تخطط لاستخدام EMR Studio، فأنت بحاجة إلى AWS SSO تم تكوينها في حسابك.
الإعداد
بعد استنساخ المستودع والخروج من main
فرع وإنشاء وتنشيط بيئة بايثون الافتراضية الجديدة:
الآن قم بتثبيت تبعيات بايثون:
وأخيرًا، قم بتمهيد AWS CDK:
نشر الأكوام
قم بتجميع مكدسات AWS CDK بالكود التالي:
ينشئ هذا الأمر أربعة مكدسات:
- emr-eks-cdk - المكدس الرئيسي
- mwaa-cdk - يضيف أمازون MWAA
- studio-cdk - إضافة المتطلبات الأساسية لـ EMR Studio
- ستوديو سي دي كيه لايف - يضيف استوديو EMR
يوضح الرسم البياني التالي الموارد التي تم نشرها بواسطة مكدسات AWS CDK.
ابدأ بنشر المكدس الأول:
إذا كنت تريد استخدام Apache Airflow كمنسق لك، فقم بنشر هذا المكدس:
نشر مكدس EMR Studio الأول:
انتظر حتى تصبح نقطة النهاية المُدارة نشطة. يمكنك التحقق من الحالة عن طريق تشغيل الكود التالي:
يتوفر معرف المجموعة الظاهري في مخرجات AWS CDK من مكدس emr-eks-cdk.
عندما تكون نقطة النهاية نشطة، قم بنشر مكدس EMR Studio الثاني:
النشر اليدوي
إذا كنت تفضل نشر EMR يدويًا على EKS وEMR Studio، فاتبع الخطوات الواردة في هذا القسم.
قم بإعداد VPC
إذا كنت تستخدم Amazon EKS v. 1.18، فقم بإعداد VPC الذي يحتوي أيضًا على شبكات فرعية خاصة وموسومة بشكل مناسب لموازنات التحميل الخارجية. للتعرف على العلامات، راجع: موازنة تحميل التطبيق على Amazon EKS و قم بإنشاء دور خدمة EMR Studio.
قم بإنشاء مجموعة Amazon EKS
قم بتشغيل مجموعة Amazon EKS مع مجموعة عقدة مُدارة واحدة على الأقل. للحصول على التعليمات، انظر اعداد و البدء مع Amazon EKS.
قم بإنشاء سياسات IAM والأدوار وموفر الهوية (IdP) وشهادة SSL/TLS ذات الصلة
لإنشاء سياسات IAM، والأدوار، وموفر الهوية (IdP)، وشهادة SSL/TLS، أكمل الخطوات التالية:
- تمكين الوصول إلى المجموعة لـ EMR على EKS.
- قم بإنشاء IdP في IAM بناءً على عنوان URL لموفر EKS OIDC.
- أنشئ شهادة SSL/TLS وضعها فيها مدير شهادات AWS.
- قم بإنشاء سياسات وأدوار IAM ذات الصلة:
- دور تنفيذ الوظيفة
- تحديث سياسة الثقة لدور تنفيذ الوظيفة
- نشر وإنشاء سياسة IAM لوحدة تحكم AWS Load Balancer
- دور خدمة استوديو EMR
- دور مستخدم EMR Studio
- سياسات مستخدم EMR Studio المرتبطة بمستخدمي ومجموعات AWS SSO
- سجّل مجموعة Amazon EKS في Amazon EMR لإنشاء مجموعة EMR الافتراضية
- إنشاء المناسب مجموعات الأمان ليتم إرفاقه بكل استوديو EMR تم إنشاؤه:
- مجموعة أمان مساحة العمل
- مجموعة أمان المحرك
- قم بتمييز مجموعات الأمان بالعلامات المناسبة. للحصول على التعليمات، انظر قم بإنشاء دور خدمة EMR Studio.
عمليات التثبيت المطلوبة في Amazon EKS
انشر ملف وحدة تحكم AWS Load Balancer في مجموعة Amazon EKS إذا لم تكن قد قمت بذلك بالفعل.
قم بإنشاء EMR على القطع ذات الصلة بـ EKS وقم بتعيين المستخدم إلى EMR Studio
أكمل الخطوات التالية:
- أنشئ مجموعة EMR افتراضية واحدة على الأقل مرتبطة بمجموعة Amazon EKS. للحصول على التعليمات، راجع الخطوة 1 من قم بإعداد Amazon EMR على EKS لـ EMR Studio.
- قم بإنشاء نقطة نهاية مُدارة واحدة على الأقل. للحصول على التعليمات، راجع الخطوة 2 من قم بإعداد Amazon EMR على EKS لـ EMR Studio.
- قم بإنشاء استوديو EMR واحد على الأقل؛ قم بربط EMR Studio بالشبكات الفرعية الخاصة التي تم تكوينها باستخدام مجموعة Amazon EKS. للحصول على التعليمات، انظر قم بإنشاء استوديو EMR.
- عندما يكون استوديو EMR متاحًا، قم بتعيين مستخدم أو مجموعة AWS SSO إلى EMR Studio وتطبيق سياسة IAM المناسبة على هذا المستخدم.
استخدم ستوديو EMR
لبدء استخدام EMR Studio، أكمل الخطوات التالية:
- ابحث عن عنوان URL الخاص بـ EMR Studio بواسطة الاستوديوهات الموجودة في المنطقة:
- باستخدام عنوان URL المدرج، قم بتسجيل الدخول باستخدام اسم مستخدم AWS SSO الذي استخدمته سابقًا.
بعد المصادقة، يتم توجيه المستخدم إلى لوحة معلومات EMR Studio.
- اختار قم بإنشاء مساحة عمل.
- في حالة اسم مساحة العمل، إدخال اسم.
- في حالة الشبكة الفرعية، اختر الشبكة الفرعية التي تتوافق مع إحدى الشبكات الفرعية المرتبطة بمجموعة العقد المُدارة.
- في حالة موقع S3، أدخل حاوية S3 حيث يمكنك تخزين محتوى دفتر الملاحظات.
- بعد إنشاء مساحة العمل، اختر واحدة موجودة في
Ready
الحالة.
- في الشريط الجانبي، اختر رمز مجموعة EMR.
- تحت نوع الكتلةأختر مجموعة EMR على EKS.
- اختر المجموعة الافتراضية المتاحة ونقطة النهاية المُدارة المتاحة.
- اختار تعلق.
بعد إرفاقه، يعرض EMR Studio النوى المتوفرة في ملف دفتر و كنسولات والقسم الخاص به.
- اختار باي سبارك (كوبرنيتس) لتشغيل نواة الكمبيوتر المحمول وبدء جلسة Spark.
نظرًا لأن تكوين نقطة النهاية هنا يستخدم AWS Glue لمخزن التعريف الخاص به، يمكنك إدراج قواعد البيانات والجداول المتصلة بكتالوج بيانات AWS Glue. يمكنك استخدام البرنامج النصي المثال التالي لاختبار الإعداد. قم بتعديل البرنامج النصي حسب الضرورة لقاعدة البيانات والجدول المناسبين الموجودين في كتالوج البيانات الخاص بك:
تنظيف
لتجنب تكبد رسوم مستقبلية، احذف الموارد التي تم تشغيلها هنا عن طريق تشغيل Remove_setup.sh:
وفي الختام
يتيح لك EMR على EKS تشغيل التطبيقات على مجموعة مشتركة من الموارد داخل مجموعة Amazon EKS دون الحاجة إلى توفير البنية التحتية. EMR Studio عبارة عن دفتر ملاحظات وأداة Jupyter مُدارة بالكامل توفر النواة التي تعمل على مجموعات EMR، بما في ذلك المجموعات الافتراضية على Amazon EKS. في هذا المنشور، وصفنا بنية كيفية اتصال EMR Studio بـ EMR على EKS وقدمنا نصوصًا برمجية لنشر جميع المكونات تلقائيًا لتوصيل الخدمتين.
إذا كانت لديك أسئلة أو اقتراحات ، فالرجاء ترك تعليق.
حول المؤلف
راندي ديفو هو مهندس الحلول الرئيسي في Amazon Web Services. وهو يعمل مع عملاء AWS لتقديم التوجيه والمساعدة الفنية بشأن مشاريع قواعد البيانات، مما يساعدهم على تحسين قيمة حلولهم عند استخدام AWS.
ماثيو تان هو مهندس حلول تحليلات أقدم في Amazon Web Services ويقدم إرشادات للعملاء الذين يطورون الحلول باستخدام خدمات AWS Analytics في أعباء عمل التحليلات الخاصة بهم.
- '
- "
- 100
- 7
- 9
- الوصول
- حسابي
- نشط
- الكل
- توزيع
- أمازون
- أمازون ويب سيرفيسز
- تحليلات
- أباتشي
- تطبيق
- التطبيقات
- هندسة معمارية
- التحقّق من المُستخدم
- AWS
- موازن
- نساعدك في بناء
- الحالات
- شهادة
- اسعارنا محددة من قبل وزارة العمل
- الدفع
- تصنيف
- سحابة
- الكود
- مشترك
- إحصاء
- محتوى
- استمر
- مراقب
- خلق
- أوراق اعتماد
- العملاء
- لوحة أجهزة القياس
- البيانات
- قاعدة البيانات
- قواعد البيانات
- تطوير
- التطوير التجاري
- سائق
- نقطة النهاية
- مشروع
- البيئة
- الخبره في مجال الغطس
- مصنع
- الاسم الأول
- اتباع
- واجهة
- مستقبل
- بوابة
- GitHub جيثب:
- تجمع
- Hadoop
- هنا
- خلية النحل
- كيفية
- HTTPS
- IAM
- اي كون
- هوية
- بما فيه
- معلومات
- البنية التحتية
- IP
- IT
- وظيفة
- مفكرة Jupyter
- Kubernetes
- إطلاق
- تطلق
- خط
- قائمة
- تحميل
- إدارة
- رسم خريطة
- برنامج Maps
- شبكة
- أجهزة الكمبيوتر المحمولة
- خيار
- أخرى
- مادي
- القرون
- سياسات الخصوصية والبيع
- سياسة
- تجمع
- أرسال
- رئيسي
- خاص
- مشروع ناجح
- بايثون
- المتطلبات الأساسية
- مورد
- الموارد
- يجري
- تشغيل
- أمن
- خدمات
- طقم
- الاشارات
- So
- الحلول
- SQL
- بداية
- بدأت
- الولايه او المحافظه
- الحالة
- تخزين
- متجر
- مدعومة
- الهدف
- تقني
- تجربه بالعربي
- الوقت
- حركة المرور
- الثقة
- المستخدمين
- قيمنا
- افتراضي
- الويب
- خدمات ويب
- في غضون
- كلمات
- للعمل
- أعمال