Spark

ImOk·2022년 2월 8일
2

Spark

목록 보기
1/1
post-thumbnail

Spark


시스템 정보 확인

msinfo32 로 시스템 정보 확인

  • Main Host

OS 이름 Microsoft Windows 10
프로세서 AMD Ryzen 9 3900X 12-Core Processor, 3793Mhz, 12 코어, 24 논리 프로세서
설치된 실제 메모리(RAM) 32.0GB

  • Virtual Box

OS : centos 8
mem : 8 (8192)
cpu : 3 cpu


1. spark 다운로드

$wget https://downloads.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
$cp -r spark-3.1.2-bin-hadoop3.2 /home/hadoop/spark-3.1.2

2. spark 환경변수 설정 및 설치 상태 확인

  • cpu 확인
$grep -c process /proc/cpuinfo
  • .bashrc 파일 구성
$vi .bashrc
$export SPARK_HOME=/home/hadoop/spark-3.1.2
$export PATH=$PATH:$HADOOP_HOME/sbin:~~~~:$FLUME_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin
$source .bashrc
$echo $SPARK_HOME
$spark-submit --version
$spark-submit --help

  • 설치 완료

  • pyspark 접속 확인


3. spark 실습

spark sample examples : https://spark.apache.org/examples.html
github examples : https://github.com/apache/spark/tree/master/examples/src/main/python

  • hadoop 실행 후 실습
$hdfs namenode -format
$start-dfs.sh
$start-yarn.sh

$jps
10529 NodeManager
9747 NameNode
10087 SecondaryNameNode
10312 ResourceManager
9897 DataNode
10781 Jps
  • 환경 확인
$cd /home/hadoop/spark-3.1.2/bin
$ls
$ls ../sbin


  • spark-env.sh 파일에 worker_instances 변경
$cd /home/hadoop/spark-3.1.2/conf
$cp spark-env.sh.template spark-env.sh
$vi spark-env.sh
export SPARK_WORKER_INSTANCES=2

# Master start
$sh start-master.sh
# Master 확인
$jps
4178 ResourceManager
3604 NameNode
5447 Jps
4488 NodeManager
3755 DataNode
3948 SecondaryNameNode
5390 Master

# 메모리 확인
$free -g

$cd /home/hadoop/spark-3.1.2/sbin
# Slave start
$sh start-slave.sh spark://hadoop00:7077 -m 2g -c 1

# Slave 2개 확인
$jps
4178 ResourceManager
5491 Worker
3604 NameNode
5604 Jps
4488 NodeManager
3755 DataNode
3948 SecondaryNameNode
5549 Worker
5390 Master
  • mem 확인

3.1. Spark Shell 실습

$cd /home/hadoop/spark-3.1.2/bin
$sh spark-shell --master spark://hadoop00:7077
# :quit으로 나옴
scala> val lines = sc.textFile("README.md")
lines: org.apache.spark.rdd.RDD[String] = README.md MapPartitionsRDD[1] at textFile at <console>:24
scala> lines.count()
res1: Long = 108

CentOS 8 Error 해결

  • CentOS 8 은 December 31, 2021 부로 EOS 되었다.
  • 지속적인 사용을 위해서는 CentOS 8 Stream 으로 배포판 변경을 해야지 지속적인 지원을 받을 수 있다
  • Error : Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs i n mirrorlist
  • 원인 : CentOS 8 EOS 로 인해 CentOS 8 Mirror site 가 vault 로 전환되어 Mirror site 를 못 찾아 발생되는 문제 (https://www.centos.org/centos-linux-eol/)
  • 해결 : 아래 명령어를 통해 기존에 Mirror site 를 Vault 로 전환하여 yum 사용을 할 수 있다.
$sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*
$sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*
$yum repolist
repo id                                          repo name
appstream                                        CentOS Linux 8 - AppStream
baseos                                           CentOS Linux 8 - BaseOS
epel                                             Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                                     Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                                           CentOS Linux 8 - Extras
  • 당장은 해결이 가능하지만 해당 Repo 는 더이상 Package 의 유지보수가 없으므로 보안에 취약하다.
    근본적인 해결을 위해서는 다른 배포판(ex. rocky linux 등) 이나 CentOS 8 Stream, RHEL 8 로 전환이 필요
  • 참고 : https://chhanz.github.io/linux/2022/02/04/dnf-error-centos-8/

  • python3 정상 설치 확인
$yum install python3
$pip3 -V
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
$python3 -V
Python 3.6.8
profile
ImOk👌

2개의 댓글

comment-user-thumbnail
2022년 2월 14일

큰 도움이 되었습니다 :)

1개의 답글