CentOS 7にApache Zeppelinをインストールする方法

Apache Zeppelinは、インタラクティブなデータの取り込み、発見、分析、視覚化のためのWebベースのオープンソースノートブックおよびコラボレーションツールです。Zeppelinは、Apache Spark、SQL、R、Elasticsearchなど、20以上の言語をサポートしています。Apache Zeppelinを使用すると、美しいデータ駆動型ドキュメントを作成し、分析の結果を確認できます。

前提条件

  • Vultr CentOS 7サーバーインスタンス。
  • sudoのユーザー
  • サーバーに向けられたドメイン名。

このチュートリアルではzeppelin.example.com、Vultrインスタンスを指すドメイン名としてを使用します。例のドメイン名をすべて実際のドメイン名に置き換えてください。

CentOS 7のアップデート方法ガイドを使用して、ベースシステムをアップデートします。システムが更新されたら、Javaのインストールに進みます。

Javaをインストールする

Apache ZeppelinはJavaで記述されているため、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が正常にインストールされている場合は、そのバージョンを確認できます。

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ディレクトリーのパスに従ってJAVA_HOMEJRE_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をインストールする

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

Apache Zeppelinがインストールされました。アプリケーションはすぐに開始できますが、リッスンするlocalhostだけなので、アクセスできなくなります。Apache Zeppelinをサービスとして構成します。Nginx Webサーバーをリバースプロキシとして構成します。

Systemdサービスを構成する

このステップでは、Zeppelinアプリケーション用のSystemdユニットファイルを設定します。これにより、システムの再起動や障害時にアプリケーションプロセスが自動的に開始されます。

セキュリティ上の理由から、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ポートを介してアプリケーションにアクセスできるようにします。Let's Encryptの無料SSL CAで生成されたSSLを使用するようにNginxを設定します。

Nginxをインストールします。

sudo yum -y install nginx

Nginxを起動し、起動時に自動的に起動するようにします。

sudo systemctl start nginx
sudo systemctl enable nginx

Let's Encrypt CAのクライアントアプリケーションであるCertbotをインストールします。

sudo yum -y install certbot

あなたが証明書を要求する前に、ポートできるようにする必要があります80し、443または標準HTTPHTTPSファイアウォールを介してサービスを。

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

Let's Encrypt CAから証明書を取得するには、証明書を生成するドメインをサーバーに向ける必要があります。そうでない場合は、ドメインのDNSレコードに必要な変更を加え、DNSが伝播するのを待ってから、証明書要求を再度行ってください。証明書ボットは、証明書を提供する前にドメイン認証局をチェックします。

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ます。

Let's Encrypt証明書は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認証を有効にする

匿名アクセスを無効にしたので、特権ユーザーがログインできるように、何らかの認証メカニズムを有効にする必要があります。ApacheZeppelinは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ます。変更のパスワードadminuser1、それらをコメントすることにより、他のユーザーを無効にします。ユーザー名とユーザーの役割を変更することもできます。Apache Shiroのユーザーとロールの詳細については、Shiro承認ガイドをご覧ください

パスワードを変更すると、コードブロックは次のようになります。

[users]

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

次に、ツェッペリンを再起動して変更を適用します。

sudo systemctl restart zeppelin

認証が有効になり、Shiro構成ファイルで設定されたユーザー名とパスワードを使用してログインできるようになります。



Leave a Comment

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、