معمار
تم تصميم Ilum لجلب قوة Apache Spark إلى بيئات Kubernetes ، والاستفادة من أفضل ما في كلا النظامين البيئيين. يهدف في جوهره إلى تبسيط عملية نشر وظائف Spark وإدارتها ومراقبتها، بغض النظر عن مدير المجموعة الأساسي.
تتمثل فكرة وظائف Spark التفاعلية في منح المستخدم إمكانية تشغيل مهام Spark المتتالية دون وقت طويل لتهيئة تطبيق Spark. إنه يلف منطق تطبيق Spark في مهمة Spark طويلة الأمد قادرة على التعامل مع طلبات الحساب على الفور.
المكونات الرئيسية
-
إيلوم كور القطعة المركزية في بنية Ilum هي ilum-core ، وهي المسؤولة عن إنشاء وظائف Spark وإدارتها ومراقبتها.: يعرض واجهات برمجة تطبيقات REST (المطابقة لمعيار OpenAPI 3.0) للعملاء للتفاعل معهم، وهو مسؤول عن جدولة مهام Spark وتنفيذها على مجموعات Kubernetes المتصلة.
-
ILUM-UI هذه واجهة ويب سهلة الاستخدام تسمح للمستخدمين بإدارة ومراقبة وظائف Spark.: يتصل بنواة ilum عبر واجهات برمجة تطبيقات REST.
-
مجموعة Kubernetes يتكامل Ilum بسلاسة مع مجموعات Kubernetes، حيث يتم تنفيذ مهام Spark.: يتم استخدام Kubernetes كمدير نظام المجموعة، ويقوم ilum-core بنشر مهام Spark كقربات Kubernetes.
-
تخزين الكائنات يتكامل Ilum مع حلول تخزين الكائنات المستندة إلى Kubernetes ، مما يوفر بديلا ل HDFS من Hadoop.: يتيح ذلك تخزين واسترداد كميات كبيرة من البيانات بطريقة موزعة وقابلة للتطوير.
-
MongoDB تستخدم Ilum MongoDB كقاعدة بيانات داخلية لتخزين البيانات الوصفية للوظيفة ومعلومات نظام المجموعة والبيانات التشغيلية الأخرى.:
-
أباتشي كافكا يمكن استخدام كافكا كطبقة اتصال في Ilum لتدفق البيانات ومعالجتها بشكل موثوق وفعال.:
سير العمل
-
يمكن للمستخدمين إرسال وظائف Spark عبر واجهة مستخدم Ilum أو مباشرة من خلال واجهة برمجة تطبيقات REST. يمكن أن تكون هذه الوظائف جزءا من جلسة تفاعلية طويلة الأمد أو مهام دفعية.
-
يتلقى ilum-core هذه الطلبات، ويجدول مهام Spark، وينشرها على مجموعة Kubernetes المتصلة.
-
تعمل مهام Spark كقربات Kubernetes، وتتوسع أفقيا عبر عقد مجموعة Kubernetes. يمكن للمستخدمين التحكم في عدد كبسولات Spark المنفذة.
-
يتم إرجاع النتائج من وظائف Spark عبر ilum-core ويمكن عرضها على واجهة مستخدم Ilum أو جلبها عبر واجهة برمجة تطبيقات REST.
-
لتخزين البيانات واسترجاعها ، يمكن لمهام Spark استخدام تخزين الكائنات المتكامل ، والذي يتصرف مثل حل التخزين المتوافق مع S3.
أنواع الاتصالات
يدعم Ilum شكلين أساسيين من الاتصال بين وظائف Spark و ilum-core: Apache Kafka و gRPC.
اتصالات أباتشي كافكا
يسهل تكامل Ilum مع Apache Kafka اتصالا موثوقا به وقابلا للتطوير، ويدعم جميع ميزات Ilum، بما في ذلك التوافر العالي (HA) وقابلية التوسع. يتم إجراء جميع عمليات تبادل الأحداث عبر الموضوعات التي يتم إنشاؤها تلقائيا باستخدام وسطاء Apache Kafka.
اتصال gRPC (افتراضي)
كبديل ، يمكن استخدام gRPC للاتصال. يعمل هذا الخيار على تبسيط عملية النشر عن طريق التخلص من الحاجة إلى Apache Kafka أثناء التثبيت. ينشئ gRPC اتصالات مباشرة بين وظائف ilum-core و Spark ، مما يلغي متطلبات وسيط رسائل منفصل. ومع ذلك، لا يدعم استخدام gRPC التوفر العالي (HA) للنواة ilum في إطار التنفيذ الحالي. بينما يمكن توسيع نطاق ilum-core، ستستمر وظائف Spark الحالية في الاتصال بنفس مثيلات ilum-core.
أنواع المجموعات
يبسط Ilum تكوين نظام مجموعة Spark، وبمجرد تكوينه، يمكن إستخدام نظام المجموعة لمهام مختلفة، بغض النظر عن نوعها أو كميتها. يدعم Ilum حاليا ثلاثة أنواع من المجموعات: Kubernetes و Yarn و Local.
أثناء التشغيل الأولي، يقوم Ilum تلقائيا بإنشاء مجموعة افتراضية، باستخدام نفس مجموعة Kubernetes التي تم تثبيت Ilum عليها. إذا تم حذف هذه المجموعة الافتراضية عن طريق الخطأ، فيمكنك إعادة إنشاؤها بسهولة عن طريق إعادة تشغيل جراب ilum-core.
مجموعة Kubernetes
ينصب تركيز Ilum الأساسي على تسهيل التكامل السهل بين Spark و Kubernetes. يبسط تكوين تطبيقات Spark وتشغيلها على Kubernetes. للاتصال بمجموعة Kubernetes موجودة، يحتاج المستخدمون إلى توفير معلومات التكوين الافتراضية، مثل عنوان URL لواجهة برمجة تطبيقات Kubernetes ومعلمات المصادقة. يدعم Ilum كلا من طرق المصادقة المستندة إلى المستخدم / كلمة المرور والشهادة. يمكن إدارة مجموعات Kubernetes المتعددة بواسطة Ilum، بشرط أن يكون من الممكن الوصول إليها. تتيح هذه الميزة إنشاء مركز لإدارة العديد من بيئات Spark من موقع واحد.
مجموعة الغزل
يدعم Ilum أيضا مجموعات Apache Yarn ، والتي يمكن تكوينها بسهولة باستخدام ملفات تكوين Yarn الموجودة في تثبيت Yarn.
المجموعة المحلية
يقوم نوع نظام المجموعة المحلي بتشغيل تطبيقات Spark حيث يتم نشر ilum-core، مما يعني أنه يقوم بتشغيل تطبيقات Spark إما داخل حاوية ilum-core عند نشرها على Docker/Kubernetes، أو على الجهاز المضيف عند نشره بدون منسق. هذا النوع من نظام المجموعة مناسب لأغراض الاختبار نظرا لقيود موارده.
قابلية التوسع
تم تصميم ILUM-Core مع وضع قابلية التوسع في الاعتبار. نظرا لكونه عديم الحالة تماما ، يمكن ل ilum-core استعادة حالته الحالية بالكامل بعد التعطل ، مما يجعل من السهل توسيع نطاقه أو تقليله بناء على متطلبات التحميل.
التوافر العالي
تدعم ilum-core ومكوناته المطلوبة عمليات نشر قابلية الوصول العالية (HA). يمكن تكوين Ilum وMongoDB وApache Kafka وMinIO لتوفير بيئة عالية التوفر بالكامل. لاحظ أن نشر HA يتطلب إستخدام Apache Kafka كنوع اتصال، حيث أن استخدام gRPC لا يدعم HA.
أمن
يشتمل Ilum على آلية مباشرة لتأمين الوصول إلى وحدة تحكم الويب ilum-ui. يسمح بإعداد اسم مستخدم وكلمة مرور افتراضيين للمسؤول أثناء النشر. حاليا، تنطبق تدابير الأمان فقط على وحدة تحكم الويب ilum-ui.