نحوه نصب Apache Zeppelin در CentOS 7

Apache Zeppelin یک نوت بوک منبع باز و یک ابزار مشترک برای مصرف داده های تعاملی ، کشف ، تجزیه و تحلیل و تجسم است. Zeppelin از 20+ زبان از جمله Apache Spark ، SQL ، R ، Elasticsearch و بسیاری دیگر پشتیبانی می کند. Apache Zeppelin به شما امکان می دهد تا اسناد مبتنی بر داده های زیبا ایجاد کنید و نتایج تجزیه و تحلیل خود را مشاهده کنید.

پیش نیازها

  • نمونه سرور Vultr CentOS 7.
  • کاربران از sudo .
  • نام دامنه به سمت سرور نشان داده شده است.

برای این آموزش ، ما به zeppelin.example.comعنوان نام دامنه که به سمت نمونه Vultr اشاره شده است ، استفاده خواهیم کرد. لطفاً حتماً تمام وقایع نام دامنه را با نمونه واقعی جایگزین کنید.

سیستم پایه خود را با استفاده از راهنمای نحوه به روزرسانی CentOS 7 به روز کنید . پس از به روزرسانی سیستم ، جاوا را نصب کنید.

جاوا را نصب کنید

Apache Zeppelin در جاوا نوشته شده است ، بنابراین به JDK نیاز دارد که کار کند. بسته Oracle SE JDK RPM را بارگیری کنید.

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm"

بسته بارگیری شده را نصب کنید.

sudo yum -y localinstall jdk-8u151-linux-x64.rpm

اگر جاوا با موفقیت نصب شده است ، باید بتوانید نسخه آن را تأیید کنید.

java -version

خروجی زیر را مشاهده خواهید کرد.

[user@vultr ~]$ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

قبل از اینکه بتوانیم بیشتر پیش برویم ، باید متغیرهای محیط JAVA_HOMEو JRE_HOMEمحیط را تنظیم کنیم. مسیر مطلق JAVA اجرایی را در سیستم خود بیابید.

readlink -f $(which java)

یک خروجی مشابه را خواهید دید.

[user@vultr ~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_151/jre/bin/java

حال متغیرها JAVA_HOMEو JRE_HOMEمحیط را مطابق مسیر دایرکتوری جاوا تنظیم کنید.

echo "export JAVA_HOME=/usr/java/jdk1.8.0_151" >> ~/.bash_profile
echo "export JRE_HOME=/usr/java/jdk1.8.0_151/jre" >> ~/.bash_profile

bash_profileپرونده را اجرا کنید.

source ~/.bash_profile

اکنون می توانید echo $JAVA_HOMEدستور را اجرا کنید تا بررسی کنید متغیر محیط تنظیم شده است یا خیر.

[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_151

Zeppelin را نصب کنید

آپاچی زپلین تمام وابستگی ها را به همراه پرونده های باینری حمل می کند ، بنابراین ما نیازی به نصب چیز دیگری به جز جاوا نداریم. دودویی 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 adduser -d /opt/zeppelin -s /sbin/nologin 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. در این آموزش از Nginx به عنوان یک پروکسی معکوس استفاده خواهیم کرد تا بتوان از طریق استاندارد HTTPو HTTPSدرگاه ها به برنامه دسترسی پیدا کرد . ما همچنین Nginx را برای استفاده از SSL ایجاد شده با Letry Encrypt free SSL CA پیکربندی خواهیم کرد.

Nginx را نصب کنید.

sudo yum -y install nginx

Nginx را شروع کنید و آن را فعال کنید تا به طور خودکار در زمان بوت شروع شود.

sudo systemctl start nginx
sudo systemctl enable nginx

Certbot را نصب کنید ، که برنامه مشتری برای Let Encrypt CA است.

sudo yum -y install certbot

قبل از اینکه شما می توانید گواهینامه های درخواست، شما نیاز به اجازه پورت 80و 443یا استاندارد HTTPو HTTPSخدمات از طریق فایروال.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

توجه : برای به دست آوردن گواهینامه ها از Let Encrypt CA ، دامنه تولید شده برای صدور گواهینامه ها باید به سمت سرور هدایت شود. در این صورت ، تغییرات لازم را در سوابق DNS دامنه ایجاد کرده و منتظر انتشار DNS قبل از درخواست مجوز مجدد باشید. Certbot قبل از ارائه گواهینامه ها ، دامنه را بررسی می کند.

صدور گواهینامه SSL را ایجاد کنید.

sudo certbot certonly --webroot -w /usr/share/nginx/html -d zeppelin.example.com

گواهینامه های تولید شده احتمالاً در آنها ذخیره می شوند /etc/letsencrypt/live/zeppelin.example.com/. گواهینامه SSL ذخیره می شود fullchain.pemو کلید خصوصی نیز به عنوان ذخیره می شود privkey.pem.

بیایید مجوزهای رمزگذاری در مدت 90 روز منقضی شوند ، از این رو توصیه می شود با استفاده از مشاغل Cron ، تمدید خودکار گواهینامه ها را تنظیم کنید.

پرونده کار cron را باز کنید.

sudo crontab -e

در انتهای پرونده خط زیر را اضافه کنید.

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

کار cron فوق هر روز در 5:30 دقیقه صبح انجام می شود. اگر گواهی برای انقضا موقت باشد ، به طور خودکار آنها را تمدید می کند.

یک فایل بلوک سرور جدید برای سایت Zeppelin ایجاد کنید.

sudo nano /etc/nginx/conf.d/zeppelin.example.com.conf

پرونده را جمع کنید.

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;
    }
  }

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برای غیرفعال کردن دسترسی ناشناس تغییر دهید.

تأیید هویت Shiro را فعال کنید

اکنون که دسترسی ناشناس را غیرفعال کرده ایم ، باید نوعی مکانیزم تأیید اعتبار را فعال کنیم تا کاربران ممتاز بتوانند وارد سیستم شوند. 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

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد