Debian 11에 Apache Spark를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 데비안 11(불스아이)
  • 데비안 10(버스터)

이 페이지에서

  1. 전제 조건
  2. 자바 설치
  3. Apache Spark 설치
  4. Apache Spark 시작
  5. Apache Spark 웹 UI에 액세스
  6. 명령줄을 통해 Apache Spark 연결\n
  7. 마스터와 슬레이브 중지
  8. 결론

Apache Spark는 더 빠른 계산 결과를 제공하기 위해 만들어진 무료 오픈 소스 범용 분산 계산 프레임워크입니다. Java, Python, Scala 및 R을 포함한 스트리밍, 그래프 처리를 위한 여러 API를 지원합니다. 일반적으로 Apache Spark는 Hadoop 클러스터에서 사용할 수 있지만 독립 실행형 모드로 설치할 수도 있습니다.

이 튜토리얼에서는 Debian 11에 Apache Spark 프레임워크를 설치하는 방법을 보여줍니다.

전제 조건

  • Debian 11을 실행하는 서버.\n
  • 루트 암호는 서버에서 구성됩니다.\n

자바 설치

Apache Spark는 Java로 작성되었습니다. 따라서 시스템에 Java가 설치되어 있어야 합니다. 설치되어 있지 않은 경우 다음 명령을 사용하여 설치할 수 있습니다.

apt-get install default-jdk curl -y

Java가 설치되면 다음 명령을 사용하여 Java 버전을 확인합니다.

java --version

다음 출력이 표시되어야 합니다.

openjdk 11.0.12 2021-07-20
OpenJDK Runtime Environment (build 11.0.12+7-post-Debian-2)
OpenJDK 64-Bit Server VM (build 11.0.12+7-post-Debian-2, mixed mode, sharing)

아파치 스파크 설치

이 자습서를 작성할 당시 Apache Spark의 최신 버전은 3.1.2입니다. 다음 명령을 사용하여 다운로드할 수 있습니다.

wget https://dlcdn.apache.org/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz

다운로드가 완료되면 다음 명령을 사용하여 다운로드한 파일의 압축을 풉니다.

tar -xvzf spark-3.1.2-bin-hadoop3.2.tgz

그런 다음 다음 명령을 사용하여 추출된 디렉터리를 /opt로 이동합니다.

mv spark-3.1.2-bin-hadoop3.2/ /opt/spark

다음으로 ~/.bashrc 파일을 편집하고 Spark 경로 변수를 추가합니다.

nano ~/.bashrc

다음 줄을 추가합니다.

export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

파일을 저장하고 닫은 후 다음 명령을 사용하여 Spark 환경 변수를 활성화합니다.

source ~/.bashrc

아파치 스파크 시작

이제 다음 명령을 실행하여 Spark 마스터 서비스를 시작할 수 있습니다.

start-master.sh

다음 출력이 표시되어야 합니다.

starting org.apache.spark.deploy.master.Master, logging to /opt/spark/logs/spark-root-org.apache.spark.deploy.master.Master-1-debian11.out

기본적으로 Apache Spark는 포트 8080에서 수신합니다. 다음 명령을 사용하여 확인할 수 있습니다.

ss -tunelp | grep 8080

다음과 같은 결과가 표시됩니다.

tcp   LISTEN 0      1                                    *:8080             *:*    users:(("java",pid=24356,fd=296)) ino:47523 sk:b cgroup:/user.slice/user-0.slice/session-1.scope v6only:0 <->                                                                                                                                                                                                                                                                    

다음으로 다음 명령을 사용하여 Apache Spark 작업자 프로세스를 시작합니다.

start-slave.sh spark://your-server-ip:7077

Apache Spark 웹 UI에 액세스

이제 URL http://your-server-ip:8080을 사용하여 Apache Spark 웹 인터페이스에 액세스할 수 있습니다. 다음 화면에 Apache Spark 마스터 및 슬레이브 서비스가 표시되어야 합니다.

작업자 ID를 클릭합니다. 다음 화면에서 작업자의 자세한 정보를 볼 수 있습니다.

명령줄을 통해 Apache Spark 연결

명령 셸을 통해 Spark에 연결하려면 아래 명령을 실행합니다.

spark-shell

연결되면 다음과 같은 인터페이스가 표시됩니다.

Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 3.1.2
      /_/
         
Using Scala version 2.12.10 (OpenJDK 64-Bit Server VM, Java 11.0.12)
Type in expressions to have them evaluated.
Type :help for more information.

scala> 

Spark에서 Python을 사용하려는 경우. pyspark 명령줄 유틸리티를 사용할 수 있습니다.

먼저 다음 명령을 사용하여 Python 버전 2를 설치합니다.

apt-get install python -y

설치가 완료되면 다음 명령을 사용하여 Spark를 연결할 수 있습니다.

pyspark

연결되면 다음과 같은 결과가 표시됩니다.

To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 3.1.2
      /_/

Using Python version 3.9.2 (default, Feb 28 2021 17:03:44)
Spark context Web UI available at http://debian11:4040
Spark context available as 'sc' (master = local[*], app id = local-1633769632964).
SparkSession available as 'spark'.
>>> 

마스터와 슬레이브 중지

먼저 다음 명령을 사용하여 슬레이브 프로세스를 중지합니다.

stop-slave.sh

다음과 같은 결과가 표시됩니다.

stopping org.apache.spark.deploy.worker.Worker

그런 다음 다음 명령을 사용하여 마스터 프로세스를 중지합니다.

stop-master.sh

다음과 같은 결과가 표시됩니다.

stopping org.apache.spark.deploy.master.Master

결론

축하합니다! Debian 11에 Apache Spark를 성공적으로 설치했습니다. 이제 조직에서 Apache Spark를 사용하여 대규모 데이터 세트를 처리할 수 있습니다.