CentOS 7에 Apache Zeppelin을 설치하는 방법

Apache Zeppelin은 대화식 데이터 수집, 검색, 분석 및 시각화를위한 웹 기반 오픈 소스 노트북 및 공동 작업 도구입니다. Zeppelin은 Apache Spark, SQL, R, Elasticsearch 등 20 개 이상의 언어를 지원합니다. Apache Zeppelin을 사용하면 아름다운 데이터 기반 문서를 작성하고 분석 결과를 볼 수 있습니다.

전제 조건

  • Vultr CentOS 7 서버 인스턴스
  • sudo는 사용자 .
  • 서버를 가리키는 도메인 이름

이 자습서에서는 zeppelin.example.comVultr 인스턴스를 가리키는 도메인 이름으로 사용 합니다. 도메인 이름 예를 모두 실제 이름으로 바꾸십시오.

CentOS 7 업데이트 방법 안내서를 사용하여 기본 시스템을 업데이트하십시오 . 시스템이 업데이트되면 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_HOMEJRE_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 웹 서버를 리버스 프록시로 구성 할 것입니다.

시스템 서비스 구성

이 단계에서는 Zeppelin 애플리케이션을위한 Systemd unit 파일을 설정합니다. 이렇게하면 시스템 재시작 및 장애시 응용 프로그램 프로세스가 자동으로 시작됩니다.

보안상의 이유로 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 서버는 localhoston 포트를 청취합니다 8080. 이 자습서에서는 표준 HTTPHTTPS포트 를 통해 응용 프로그램에 액세스 할 수 있도록 Nginx를 리버스 프록시로 사용 합니다. 또한 Let 's Encrypt free 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

인증서를 요청하기 전에 방화벽을 통한 포트 80443/ 또는 표준 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가 전파 될 때까지 기다리십시오. 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 작업을 사용하여 인증서의 자동 갱신을 설정하는 것이 좋습니다.

크론 작업 파일을여십시오.

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익명 액세스를 사용하지 않으 려면 값을 로 변경하십시오 .

시로 인증 활성화

익명 액세스를 비활성화 했으므로 권한있는 사용자가 로그인 할 수 있도록 일종의 인증 메커니즘을 활성화해야합니다. 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

이 목록에는 사용자 이름, 비밀번호 및 사용자 역할이 포함됩니다. 현재로서는 adminand 만 사용 user1합니다. 의 암호 변경 adminuser1그들을 주석하여 다른 사용자를 비활성화합니다. 사용자의 사용자 이름과 역할을 변경할 수도 있습니다. 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

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.