아파치 스파크(Apache Spark)
마태 자하리아가 UC 버클리에서 박사 과정 논문의 일부로 개발한 강력한 오픈소스 분산 쿼리 및 처리 엔진.
다양한 종류의 데이터 관련 문제, 예를 들어 반구조(semi-structured), 구조, 스트리밍 또는 머신 러닝/데이터 과학 관련 문제를 해결하기 위해 쉽고 빠르게 쓸 수 있는 프레임워크이다.
스파크는 데이터를 읽고, 변형하고, 합계를 낼 수 있으며, 복잡한 통계 모델들을 쉽게 학습하고 배포할 수 있다.
파이썬 pandas 라이브러리와 R의 data.frames 또는 data.tables를 이용하는 데이터 분석가, 데이터 과학자 또는 연구우너들에게 적합한 여러 라이브러리를 제공한다.
설치하기
1. dn01의 root 계정에서
[root@dn01 ~]# cd /tmp
[root@dn01 tmp]# wget http://apache.mirror.cdnetworks.com/spark/spark-2.4.7/spark-2.4.7-bin-hadoop2.7.tgz
[root@dn01 tmp]# tar xzvf spark-2.4.7-bin-hadoop2.7.tgz
[root@dn01 tmp]# mkdir -p /opt/spark/2.4.7
[root@dn01 tmp]# mv spark-2.4.7-bin-hadoop2.7/* /opt/spark/2.4.7/
[root@dn01 tmp]# ln -s /opt/spark/2.4.7 /opt/spark/current
[root@dn01 tmp]# chown -R hadoop:hadoop /opt/spark/
[root@dn01 tmp]# su - hadoop
[hadoop@dn01 ~]$ vi ~/.bash_profile
[~/.bash_profile : vi 부분]
( 주석 하단에 추가 )
###### spark ######################
export SPARK_HOME=/opt/spark/current
export PATH=$PATH:$SPARK_HOME/bin
export PATH=$PATH:$SPARK_HOME/sbin
#### spark ######################
저장 필수!!
[hadoop@dn01 ~]$ source ~/.bash_profile
[hadoop@dn01 ~]$ cd $SPARK_HOME/conf
[hadoop@dn01 conf]$ pwd
-> 경로확인 : /opt/spark/current/conf
[hadoop@dn01 conf]$ mv slaves.template slaves
[hadoop@dn01 conf]$ ls
[hadoop@dn01 conf]$ vi slaves
[slaves : vi 부분]
nn01
dn02
( 기존 localhost는 지우고 입력하기 )
[hadoop@dn01 conf]$ mv spark-defaults.conf.template spark-defaults.conf
[hadoop@dn01 conf]$ ls
[hadoop@dn01 conf]$ vi spark-defaults.conf
[spark-defaults.conf : vi 부분]
spark.yarn.jars /opt/spark/current/jars/*
( 주석 하단에 추가 )
[hadoop@dn01 conf]$ mv log4j.properties.template log4j.properties
[hadoop@dn01 conf]$ ls
[hadoop@dn01 conf]$ vi log4j.properties
[log4j.properties : vi 부분]
#INFO -> ERROR로 바꿔 줌 -> Spark 로그에 정신없는 INFO가 안나타남
log4j.rootCategory=ERROR, console
[hadoop@dn01 conf]$ mv spark-env.sh.template spark-env.sh
[hadoop@dn01 conf]$ ls
[hadoop@dn01 conf]$ vi spark-env.sh
[spark-env.sh : vi 부분]
( 주석 하단에 추가 )
SPARK_MASTER_HOST=dn01
export JAVA_HOME=/opt/jdk/current
export HADOOP_HOME=/opt/hadoop/current
export SPARK_HOME=/opt/spark/current
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_DRIVER_MEMORY=2g
export SPARK_EXECUTOR_INSTANCES=2
export SPARK_EXECUTOR_CORES=1
export SPARK_EXECUTOR_MEMORY=2g
export SPARK_MASTER_IP=192.168.56.102
#export SPARK_WORKER_DIR=/spark_data/spwork
#export SPARK_PID_DIR=/spark_data/sptmp
export SPARK_DIST_CLASSPATH=$(/opt/hadoop/current/bin/hadoop classpath):/opt/spark/current/jars/*
#export PYTHONPATH=/opt/python/current/python3
#export PYSPARK_PYTHON=/opt/python/current/python3
[hadoop@dn01 ] spark-shell
-> spark-shell 확인
scala> sc.setLogLevel("WARN")
scala> val f = sc.textFile("file:///etc/hosts")
scala> f.count
scala> f.first
scala> f.collect
scala> :quit
:quit로 빠져 나온다.
2. dn01 노드(root 계정)에서
- dn02와 nn01로 전송 복사
[hadoop@dn01 ] su - root
[hadoop@dn01 ] scp -r /opt/spark dn02:/opt/spark
> yes
[hadoop@dn01 ] scp -r /opt/spark nn01:/opt/spark
> yes
scp로 전송하면 softlink는 안잡힌다.
current가 디렉토리로 된 거 확인하고 디렉토리를 지우고 softlink로 설정
3. dn02 노드와 nn01(root 계정)에서 확인
[ dn02 계정 ]
[root@dn02 ~]# rm -rf /opt/spark/current
[root@dn02 ~]# ln -s /opt/spark/2.4.7 /opt/spark/current
[root@dn02 ~]# ll /opt/spark/
[root@dn02 ~]# chown -R hadoop:hadoop /opt/spark/
[root@dn02 ~]# su - hadoop
[hadoop@dn02 ~]$ vi ~/.bash_profile
[~/.bash_profile : vi 부분]
( 주석 하단에 추가 )
###### spark ######################
export SPARK_HOME=/opt/spark/current
export PATH=$PATH:$SPARK_HOME/bin
export PATH=$PATH:$SPARK_HOME/sbin
#### spark ######################
[hadoop@dn02 ~]$ source ~/.bash_profile
[ nn01 계정으로 이동 ]
[hadoop@nn01 ~]$ vi ~/.bash_profile
[~/.bash_profile : vi 부분]
( 주석 하단에 추가 )
###### spark ######################
export SPARK_HOME=/opt/spark/current
export PATH=$PATH:$SPARK_HOME/bin
export PATH=$PATH:$SPARK_HOME/sbin
#### spark ######################
[hadoop@nn01 ~]$ source ~/.bash_profile
꼭 저장까지 완료하기.
4. dn01 노드 hadoop 계정에서
Spark Start ( hadoop start와 이름이 같으므로 반드시 해당 경로로 이동후 실행하기)
[hadoop@dn01 ] $ SPARK_HOME/sbin/start-all.s
끝낼때는
[hadoop@dn01 ]$ ./stop-all.sh
5-1. 안전하게 [ 끄는법 ]
1) dn01에서
$SPARK_HOME/sbin/stop-all.sh
일단 스팍부터 죽이기
2) nn01에서
stop-all.sh
(하둡 종료)
5-2. [다시 켤 때]
1) nn01에서 하둡부터 켜고
start-all.sh
2) dn01에서
$SPARK_HOME/sbin/start-all.sh
해야함
'[ Linux ]' 카테고리의 다른 글
[Linux] Vi editer란? vi 단축키 정리 (0) | 2020.10.29 |
---|---|
[빅데이터] 우분투(Ubuntu) 설치, 파이참(Pycharm) 설치, 아나콘다(Anaconda) 설치 (0) | 2020.10.12 |
[빅데이터] 하둡(Hadoop) 쉽게 설치하기(+예상 에러 포함) (4) | 2020.10.07 |
[Linux] 리눅스 터미널, gedit 기초 (0) | 2020.10.06 |
[Linux 설치] 1) 가상장치 설치하기 - VM Ware 설치 + centOS 7 (0) | 2020.10.05 |
댓글