بدء استخدام علم البيانات على Kubernetes - Jupyter وZeppelin

ليس سرا أن مجتمع تحليلات البيانات كان يتجه نحو استخدام المزيد من الأدوات مفتوحة المصدر والمستندة إلى السحابة. تعد دفاتر Apache Zeppelin و Jupyter من أكثر الأدوات شيوعا التي يستخدمها علماء البيانات اليوم. في منشور المدونة هذا ، سنوضح لك كيفية دمج Ilum بسهولة مع دفاتر الملاحظات هذه حتى تتمكن من تشغيل أحمال عمل تحليلات البيانات الخاصة بك على k8s.
Kubernetes لعلوم البيانات
مع ظهور البيانات الضخمة والتطبيقات كثيفة البيانات، أصبحت إدارة أعباء عمل علوم البيانات ونشرها معقدة بشكل متزايد. هذا هو المكان الذي يأتي فيه Kubernetes ، لأنه يوفر نظاما أساسيا قابلا للتطوير ومرنا لتشغيل منصات الحوسبة التفاعلية مثل Jupyter و Zeppelin.
يستخدم مجتمع علوم البيانات دفاتر ملاحظات Jupyter لفترة طويلة الآن. ولكن ماذا عن تشغيل علم البيانات على Kubernetes؟ هل يمكننا استخدام دفاتر ملاحظات Jupyter على k8s؟ الجواب نعم! سيوضح لك منشور المدونة هذا كيفية تشغيل Data Science على Kubernetes باستخدام دفاتر ملاحظات Jupyter و Zeppelin.
سنستخدم جلسات Apache Spark و Ilum التفاعلية لتعزيز الحساب. تتيح لك ميزة الجلسات التفاعلية إرسال كود Spark ورؤية النتائج في الوقت الفعلي. هذه طريقة رائعة لاستكشاف البيانات وتجربة خوارزميات مختلفة. باستخدام Apache Spark ، يمكنك بسهولة معالجة كميات كبيرة من البيانات ، كما أن ميزة الجلسات التفاعلية في Ilum تجعل من السهل تجربة مقتطفات التعليمات البرمجية المختلفة ورؤية النتائج على الفور.
إيلوم وأباتشي ليفي وسباركماجيك
تم إنشاء Ilum لتسهيل تشغيل Spark على Kubernetes على علماء البيانات والمهندسين. نعتقد أنه من خلال تبسيط هذه العملية ، يمكننا تسهيل بدء استخدام هذه التقنيات على المستخدمين وزيادة اعتماد k8s داخل مجتمع علوم البيانات.
ينفذ Ilum واجهة Livy rest ، بحيث يمكن استخدامها ك بديل ل Apache Livy في أي بيئة. سنوضح كيفية دمج Ilum مع Sparkmagic.
يمكن لكل من Ilum و Livy إطلاق سياقات شرارة طويلة الأمد يمكن استخدامها لوظائف شرارة متعددة ، من قبل عملاء متعددين. ومع ذلك ، هناك بعض الاختلافات الرئيسية بين الاثنين.
Ilum هو برنامج يتم صيانته جيدا ومطور بنشاط ، ويتم تحديثه بمكتبات وميزات جديدة. من ناحية أخرى ، تمتلك Livy مجتمعا قويا أنشأ عمليات تكامل مع العديد من التطبيقات. لسوء الحظ ، توقف تطوير Livy وبسبب ذلك ، لم يكن Livy جاهزا لتحويل Cloud Native
يمكن ل Ilum التوسع والتقليل بسهولة وهو متاح للغاية. ميزة كبيرة تتمتع بها Ilum على Livy هي أنها تعمل على Kubernetes. كما يسمح بالتكامل مع غزل .
توفر كلتا الأداتين واجهة ويب سهلة الاستخدام لمراقبة مجموعات الشرارة وتطبيقات الشرارة ، ولكن يبدو أن Livy's قديمة ومحدودة للغاية.
فلماذا لا نستفيد بشكل كامل من Ilum و Livy؟
إيلوم - livy-وكيل
يحتوي Ilum على مكون مضمن ينفذ واجهة برمجة تطبيقات Livy. يسمح للمستخدمين بالاستفادة من واجهة REST الخاصة ب Livy ومحرك Ilum في وقت واحد.
نحن نعمل بجد لإضافة بايثون دعم إيلوم، بالإضافة إلى الدعم الحالي سكالا دعم. راقب خارطة الطريق للبقاء على اطلاع دائم بتقدمنا.
زيبلين وجوبيتر
Zeppelin و Jupyter عبارة عن دفاتر ملاحظات قائمة على الويب تتيح تحليلات البيانات التفاعلية وإنشاء المستندات التعاونية بلغات مختلفة.
تحظى أجهزة الكمبيوتر المحمولة Jupyter بشعبية خاصة بين مستخدمي Python. تطور المشروع من بيئة IPython ولكنه يفتخر الآن بدعم العديد من اللغات.

قائمة نواة Jupyter هي ضخم .
تم دمج Zeppelin بشكل جيد مع أدوات البيانات الضخمة. في Zeppelin ، من الممكن الجمع بين مترجمين فوريين مختلفين في دفتر ملاحظات واحد ثم تشغيلهم في فقرات مختلفة.

يمكنك الاطلاع على قائمة بالمترجمين الفوريين الذين يدعمهم Zeppelin هنا
دمج أجهزة الكمبيوتر المحمولة مع Ilum
إعداد Ilum
لنبدأ بتشغيل مجموعة Apache Spark على Kubernetes. مع Ilum ، من السهل جدا القيام بذلك. سنستخدم minikube لغرض هذه المقالة. أول شيء يتعين علينا القيام به هو تشغيل مجموعة Kubernetes:
بدء تشغيل minikube - وحدة المعالجة المركزية 4 - الذاكرة 12288 - الإضافات مقاييس الخادم
بمجرد تشغيل minikube ، يمكننا الانتقال إلى تثبيت Ilum. أولا ، دعنا نضيف مستودع مخطط الدفة:
خوذة الريبو إضافة ILUM https://charts.ilum.cloud
يتضمن Ilum كلا من Zeppelin و Jupyter ، ولكن يجب تمكينهما يدويا في إعدادات التثبيت مع ilum-livy-proxy.
Helm install ilum ilum / ilum --set ilum-zeppelin.enabled = true - set ilum-jupyter.enabled = true - set ilum-livy-proxy.enabled = true
قد يستغرق تهيئة جميع الكبسولات بعض الوقت. يمكنك التحقق من الحالة باستخدام الأمر:
kubectl الحصول على القرون

جوبيتر
لنبدأ ب:
المنفذ إلى الأمام SVC / ILUM-Jupyter 8888: 8888
يستخدم Ilum Sparkmagic للعمل مع Apache Spark في دفاتر Jupyter. بشكل افتراضي ، سيتم تشغيل Jupyter (مع تثبيت Sparkmagic lib) على المنفذ 8888. للوصول إلى الخادم ، افتح متصفحك وانتقل إلى المضيف المحلي: 8888. ستحتاج إلى تسجيل الدخول بكلمة مرور من السجلات ، أو يمكنك نسخ ولصق عنوان URL بالكامل مع استبدال "المضيف المحلي" بالنطاق.
سجلات التسجيلات ILUM-Jupyter-85F6D9BFB8-T642D

بمجرد فتح Jupyter ، يتعين علينا تشغيل دفتر ملاحظات Python3:

دعنا الآن نقوم بتشغيل الأوامر التالية لتحميل سحر الشرارة وإعداد نقطة نهاية.
1. أولا ، سنحتاج إلى تحميل امتداد سحر الشرارة. يمكنك القيام بذلك عن طريق تشغيل الأمر التالي:
٪ load_ext sparkmagic.magics
2. بعد ذلك ، سنحتاج إلى إعداد نقطة نهاية. نقطة النهاية هي ببساطة عنوان URL يشير إلى مجموعة Spark معينة. يمكنك القيام بذلك عن طريق تشغيل الأمر التالي:
النسبة المئوية manage_spark

Jupyter المجمعة جاهز للعمل خارج الصندوق وله عنوان نقطة نهاية محدد مسبقا ، مما يشير إلى livy-proxy. ما عليك فعله هو اختيار نقطة النهاية هذه من القائمة المنسدلة والنقر فوق الزر إنشاء جلسة. بهذه البساطة. الآن سيتصل Jupyter ب ilum-core عبر ilum-livy-proxy لإنشاء جلسة شرارة. قد يستغرق الأمر عدة دقائق عندما تكون حاوية الشرارة قيد التشغيل. بمجرد أن تصبح جاهزة، تتلقى معلومات تفيد بتوفر جلسة شرارة.

يمكنك الآن استخدام جلسة Ilum الخاصة بك لتشغيل كود Spark مقابلها. سيتم استخدام الاسم الذي قمت بتعيينه للجلسة في ٪٪شرارة السحر لتشغيل التعليمات البرمجية.

أباتشي زيبلين
لنبدأ ب:
المنفذ إلى الأمام SVC / ILUM-Zeppelin 8080: 8080
على غرار Jupyter ، قمنا أيضا بتجميع دفتر ملاحظات Zeppelin مع Ilum. يرجى العلم أنه يمكن تمديد وقت إنشاء الحاوية، بسبب زيادة حجم الصورة. بعد إنشاء الحاوية وتشغيلها ، ستتمكن بعد ذلك من الوصول إلى دفتر ملاحظات Zeppelin في متصفحك في http://localhost:8080.
- لتنفيذ التعليمات البرمجية ، نحتاج إلى إنشاء ملاحظة:

2. نظرا لأن الاتصال مع Ilum يتم التعامل معه عبر وكيل livy، نحتاج إلى اختيار livy كمترجم افتراضي.

3. الآن دعنا نفتح الملاحظة ونضع بعض التعليمات البرمجية في الفقرة:

كما هو الحال بالنسبة ل Jupyter ، يحتوي Zeppelin أيضا على تكوين محدد مسبقا مطلوب ل Ilum. يمكنك تخصيص الإعدادات بسهولة. ما عليك سوى فتح قائمة السياق في الزاوية اليمنى العليا والنقر فوق زر المترجم.

هناك قائمة طويلة من المترجمين الفوريين وخصائصهم التي يمكن تخصيصها.

يوفر Zeppelin 3 أوضاع مختلفة لتشغيل عملية المترجم: مشتركة ومحددة النطاق ومعزولة. يمكنك معرفة المزيد حول وضع ربط المترجم الفوري هنا .
Jupyter و Zeppelin هما من أكثر الأدوات شيوعا لعلوم البيانات ، وهما متاحان الآن على k8s. هذا يعني أنه يمكن لعلماء البيانات الآن استخدام Kubernetes لإدارة تطبيقات علوم البيانات الخاصة بهم ونشرها.
يقدم Ilum بعض المزايا لعلماء البيانات الذين يستخدمون Jupyter و Zeppelin. أولا ، يمكن أن يوفر Ilum بيئة مدارة ل Jupyter و Zeppelin. هذا يعني أن علماء البيانات لا داعي للقلق بشأن إدارة مجموعة Kubernetes الخاصة بهم. ثانيا ، يوفر Ilum طريقة سهلة لبدء علم البيانات على Kubernetes. باستخدام Ilum ، يمكن لعلماء البيانات ببساطة إطلاق مثيل Jupyter أو Zeppelin والبدء في استكشاف بياناتهم.
لذلك إذا كنت عالم بيانات وترغب في البدء في علم البيانات على Kubernetes ، فتحقق من Ilum. مع Ilum ، يمكنك البدء بسرعة وسهولة ، دون الحاجة إلى القلق بشأن إدارة مجموعة kubernetes الخاصة بك.
بشكل عام ، يمكن أن يكون علم البيانات على Kubernetes طريقة رائعة لتحسين سير عمل الفرد والسماح بمزيد من التعاون. ومع ذلك ، من المهم أن تبدأ بفهم أساسي للنظام وكيفية عمله قبل الغوص في أعماق شديدة. مع ذلك ، يعد Jupyter و Zeppelin أداتين رائعتين للمساعدة في البدء في استخدام علوم البيانات على Kubernetes.

هل Kubernetes ضروري حقا لعلوم البيانات؟
Kubernetes هو نظام مفتوح المصدر لأتمتة نشر التطبيقات المعبأة في حاويات وتوسيع نطاقها وإدارتها. يقوم بتجميع الحاويات التي تشكل تطبيقا في وحدات منطقية لسهولة الإدارة والاكتشاف.
علم البيانات هو عملية استخراج المعرفة أو الرؤى من البيانات بأشكال مختلفة ، سواء كانت منظمة أو غير منظمة ، والتي يمكن استخدامها لاتخاذ القرارات أو التنبؤات.
إذن ، هل Kubernetes ضروري حقا لعلوم البيانات؟ الجواب نعم ولا. في حين أن k8s يمكن أن تساعد في أتمتة نشر وإدارة تطبيقات علوم البيانات ، إلا أنها ليست ضرورية تماما. لا يزال بإمكان علماء البيانات استخدام طرق أخرى لنشر تطبيقاتهم وإدارتها. ومع ذلك ، يمكن ل Kubernetes أن تجعل حياتهم أسهل من خلال توفير نظام أساسي موحد لإدارة تطبيقات علوم البيانات المتعددة.