كيفية تثبيت Apache Zeppelin على أوبونتو 16.04

Apache Zeppelin هو مفكرة مفتوحة المصدر على شبكة الإنترنت وأداة تعاونية لاستيعاب البيانات التفاعلية واكتشافها والتحليلات والتصور. يدعم Zeppelin أكثر من 20 لغة بما في ذلك Apache Spark و SQL و R و Elasticsearch وغيرها الكثير. يسمح لك Apache Zeppelin بإنشاء مستندات جميلة تعتمد على البيانات ورؤية نتائج تحليلاتك.

المتطلبات الأساسية

في هذا البرنامج التعليمي ، سنستخدم zeppelin.example.com كاسم المجال الموجه نحو مثيل Vultr. يرجى التأكد من استبدال جميع حالات اسم النطاق المثال بالاسم الفعلي.

قم بتحديث نظامك الأساسي باستخدام الدليل كيفية تحديث Ubuntu 16.04 . بمجرد تحديث نظامك ، تابع تثبيت Java.

قم بتثبيت Java

أباتشي زيبلين مكتوب بلغة جافا ، وبالتالي يتطلب JDK للعمل. أضف مستودع Ubuntu لـ Oracle Java 8.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

قم بتثبيت Oracle Java.

sudo apt -y install oracle-java8-installer

تحقق من إصداره.

java -version

سترى الناتج التالي.

user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

قم بتعيين المسار الافتراضي لجافا عن طريق تثبيت الحزمة التالية.

sudo apt -y install oracle-java8-set-default

يمكن�� التحقق مما إذا JAVA_HOMEتم تعيينه عن طريق التشغيل.

echo $JAVA_HOME

سوف ترى.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

إذا كنت لا ترى أي إخراج على الإطلاق ، فستحتاج إلى تسجيل الخروج من shell الحالي وتسجيل الدخول مرة أخرى.

قم بتثبيت Zeppelin

يقوم Apache Zeppelin بشحن جميع التبعيات مع الملفات الثنائية ، لذلك لا نحتاج إلى تثبيت أي شيء آخر باستثناء Java. قم بتنزيل برنامج Zeppelin ثنائي على نظامك. يمكنك دائمًا العثور على أحدث إصدار من التطبيق على صفحة تنزيل Zeppelin .

wget http://www-us.apache.org/dist/zeppelin/zeppelin-0.7.3/zeppelin-0.7.3-bin-all.tgz

استخرج الأرشيف.

sudo tar xf zeppelin-*-bin-all.tgz -C /opt

سيقوم الأمر أعلاه باستخراج الأرشيف إلى /opt/zeppelin-0.7.3-bin-all. إعادة تسمية الدليل من أجل الراحة.

sudo mv /opt/zeppelin-*-bin-all /opt/zeppelin

أباتشي زيبلين مثبت الآن. يمكنك بدء التطبيق على الفور ، ولكن لن يكون متاحًا لك ، لأنه يستمع إليه localhostفقط. سنقوم بتكوين Apache Zeppelin كخدمة. سنقوم أيضًا بتكوين Nginx كوكيل عكسي.

تكوين Systemd

في هذه الخطوة ، سنقوم بإعداد ملف وحدة Systemd لتطبيق Zeppelin. سيضمن ذلك بدء عملية التطبيق تلقائيًا عند إعادة تشغيل النظام والفشل.

لأسباب أمنية ، قم بإنشاء مستخدم غير مميز لتشغيل عملية Zeppelin.

sudo useradd -d /opt/zeppelin -s /bin/false zeppelin

توفير ملكية الملفات لمستخدم Zeppelin الذي تم إنشاؤه حديثًا.

sudo chown -R zeppelin:zeppelin /opt/zeppelin

إنشاء ملف وحدة خدمة Systemd جديد.

sudo nano /etc/systemd/system/zeppelin.service

تعبئة الملف بما يلي.

[Unit]
Description=Zeppelin service
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/zeppelin/bin/zeppelin-daemon.sh start
ExecStop=/opt/zeppelin/bin/zeppelin-daemon.sh stop
ExecReload=/opt/zeppelin/bin/zeppelin-daemon.sh reload
User=zeppelin
Group=zeppelin
Restart=always

[Install]
WantedBy=multi-user.target

ابدأ تشغيل التطبيق.

sudo systemctl start zeppelin

مكّن خدمة Zeppelin من البدء تلقائيًا في وقت التمهيد.

sudo systemctl enable zeppelin

للتأكد من تشغيل الخدمة ، يمكنك تشغيل ما يلي.

sudo systemctl status zeppelin

تكوين وكيل عكسي

بشكل افتراضي ، يستمع خادم Zeppelin إلى localhost المنفذ 8080. سوف نستخدم إنجن إكس كوكيل عكسي بحيث يمكن الوصول إلى التطبيق عبر معيار HTTP و HTTPS الموانئ. سنقوم أيضًا بتهيئة Nginx لاستخدام SSL الذي تم إنشاؤه باستخدام Let's Encrypt free SSL CA.

قم بتثبيت Nginx.

sudo apt -y install nginx

قم بتشغيل Nginx وتمكينه من البدء تلقائيًا في وقت التمهيد.

sudo systemctl start nginx
sudo systemctl enable nginx

أضف مستودع Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

قم بتثبيت Certbot ، وهو تطبيق العميل لـ Let's Encrypt CA.

sudo apt -y install certbot

ملاحظة : للحصول على شهادات من Let's Encrypt CA ، يجب توجيه النطاق الذي سيتم إنشاء الشهادات من أجله إلى الخادم. إذا لم يكن الأمر كذلك ، قم بإجراء التغييرات اللازمة على سجلات DNS للمجال وانتظر DNS للنشر قبل إجراء طلب الشهادة مرة أخرى. يتحقق Certbot من سلطة المجال قبل تقديم الشهادات.

إنشاء شهادات SSL.

sudo certbot certonly --webroot -w /var/www/html -d zeppelin.example.com

من المرجح أن يتم تخزين الشهادات التي تم إنشاؤها /etc/letsencrypt/live/zeppelin.example.com/. سيتم تخزين شهادة SSL كـ وسيتم تخزين fullchain.pem المفتاح الخاص كـ privkey.pem.

تنتهي صلاحية شهادات التشفير في غضون 90 يومًا ، وبالتالي يوصى بإعداد التجديد التلقائي للشهادات باستخدام وظائف Cron.

افتح ملف مهمة كرون.

sudo crontab -e

أضف السطر التالي في نهاية الملف.

30 5 * * * /usr/bin/certbot renew --quiet

سيتم تشغيل وظيفة cron المذكورة أعلاه كل يوم الساعة 5:30 صباحًا. إذا كانت الشهادة مستحقة للانتهاء ، فسيتم تجديدها تلقائيًا.

إنشاء ملف كتلة خادم جديد لموقع Zeppelin.

sudo nano /etc/nginx/sites-available/zeppelin

تعبئة الملف.

upstream zeppelin {
server 127.0.0.1:8080;
}
server {
    listen 80;
    server_name zeppelin.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name zeppelin.example.com;

    ssl_certificate           /etc/letsencrypt/live/zeppelin.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/zeppelin.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log  /var/log/nginx/zeppelin.access.log;

location / {
        proxy_pass http://zeppelin;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect off;
    }
location /ws {
    proxy_pass http://zeppelin/ws;
    proxy_http_version 1.1;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection upgrade;
    proxy_read_timeout 86400;
    }
  }

قم بتنشيط ملف التكوين.

sudo ln -s /etc/nginx/sites-available/zeppelin /etc/nginx/sites-enabled/zeppelin

أعد تشغيل Nginx حتى تصبح التغييرات سارية المفعول.

sudo systemctl restart nginx zeppelin

يمكن الوصول إلى Zeppelin الآن على العنوان التالي.

https://zeppelin.example.com

بشكل افتراضي ، لا توجد مصادقة ممكّنة ، لذلك يمكنك استخدام التطبيق مباشرة.

نظرًا لأن التطبيق متاح للجميع ، فإن دفاتر الملاحظات التي تقوم بإنشائها متاحة أيضًا للجميع. من المهم جدًا تعطيل الوصول المجهول وتمكين المصادقة بحيث لا يتمكن سوى المستخدمين المصادق عليهم من الوصول إلى التطبيق.

تعطيل الوصول المجهول

لتعطيل الوصول الافتراضي المجهول ، انسخ قالب ملف التكوين إلى موقعه المباشر.

cd /opt/zeppelin
sudo cp conf/zeppelin-site.xml.template conf/zeppelin-site.xml

قم بتحرير ملف التكوين.

sudo nano conf/zeppelin-site.xml

ابحث عن الأسطر التالية في الملف.

<property>
  <name>zeppelin.anonymous.allowed</name>
  <value>true</value>

قم بتغيير القيمة false لتعطيل الوصول المجهول.

تمكين مصادقة شيرو

الآن بعد أن قمنا بتعطيل الوصول المجهول ، نحتاج إلى تمكين نوع من آلية المصادقة حتى يتمكن المستخدمون المميزون من تسجيل الدخول. يستخدم Apache Zeppelin مصادقة Apache Shiro. انسخ ملف تكوين Shiro.

sudo cp conf/shiro.ini.template conf/shiro.ini

قم بتحرير ملف التكوين.

sudo nano conf/shiro.ini

ابحث عن الأسطر التالية في الملف.

[users]

admin = password1, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2

تحتوي القائمة على اسم المستخدم وكلمة المرور وأدوار المستخدمين. في الوقت الراهن ، سنستخدم فقط admin و user1. تغيير كلمة المرور من admin و user1 وتعطيل المستخدمين الآخرين من خلال التعليق عليها. يمكنك أيضًا تغيير اسم المستخدم وأدوار المستخدمين. لمعرفة المزيد عن مستخدمي وأدوار Apache Shiro ، اقرأ دليل تفويض Shiro .

بمجرد أن تقوم بتغيير كلمات المرور ، يجب أن يعجبها كود الكود.

[users]

admin = StrongPassword, admin
user1 = UserPassword, role1, role2
# user2 = password3, role3
# user3 = password4, role2

أعد تشغيل Zeppelin الآن لتطبيق التغييرات.

sudo systemctl restart zeppelin

سترى أنه تم تمكين المصادقة وستتمكن من تسجيل الدخول باستخدام اسم المستخدم وكلمة المرور المعينين في ملف تكوين Shiro.



Leave a Comment

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد