728x90
반응형
Apache Spark 기본 설치 입니다.
○ 파일 다운로드
먼저 설치파일을 다운 받습니다.
spark.apache.org/downloads.html
다운로드 파일 : spark-3.1.1-bin-hadoop2.7.tgz
저는 최신버전을 별로 안좋아하지만 최신버전인 3.1.1을 사용하겠습니다.
○ 설치경로 & 압축 해제
원하는 위치에 파일을 복사하고 압축을 해제합니다.
tar -xvf spark-3.1.1-bin-hadoop2.7tgz
mv spark-3.1.1-bin-hadoop2.7 spark-3.1.1
○ 설정 변경
spark 설정파일은 SPARK_HOME/conf 에 있습니다.
기본실행으로 할 수도 있지만 임시 설정파일을 만듭니다.
cd $SPARK_HOME/conf
cp spark-defaults.conf.template spark-defaults.conf
cp spark-env.sh.template spark-env.sh
cp log4j.properties.template log4j.properties
log4j 설정을 해줍니다.
vi log4j.properties
log4j.rootCategory=WARN, console
○ 실행
이제 spark 실행되는지 확인해 봅시다. 간단하게 python 으로 실행을 하겠습니다.
cd $SPARK_HOME/
./bin/pyspark
정상 결과 화면입니다.
Python 3.8.5 (default, Jan 27 2021, 15:41:15)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
21/04/12 16:10:11 WARN Utils: Your hostname, DESKTOP-D5OF30K resolves to a loopback address: 127.0.1.1; using 117.20.83.155 instead (on interface eth0)
21/04/12 16:10:11 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address
21/04/12 16:10:12 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 3.1.1
/_/
Using Python version 3.8.5 (default, Jan 27 2021 15:41:15)
Spark context Web UI available at http://117.20.83.155:4040
Spark context available as 'sc' (master = local[*], app id = local-1618211413863).
SparkSession available as 'spark'.
>>>
○ 예제 실행
기본동작인 워드카운트를 해보겠습니다.
lines =sc.textFile("README.md")
lines.count()
lines.first()
pythonLines = lines.filter(lambda line : "Python" in line)
pythonLines.first()
한줄씩 쳐보고 결과를 확인합니다.
>>> lines =sc.textFile("README.md")
>>> lines.count()
108
>>> lines.first()
'# Apache Spark'
>>> pythonLines = lines.filter(lambda line : "Python" in line)
>>> pythonLines.first()
'high-level APIs in Scala, Java, Python, and R, and an optimized engine that'
이번엔 python 파일을 만들어 보겠습니다.
# test.py
from pyspark import SparkConf, SparkContext
conf = SparkConf().setMaster("local").setAppName("test")
sc = SparkContext(conf=conf)
lines =sc.textFile("./README.md")
print("lines.count() :", lines.count() )
print("lines.first() :", lines.first() )
pythonLines = lines.filter(lambda line : "Python" in line)
print("pythonLines.first() :", pythonLines.first())
파일을 저장한 뒤 spark 로 실행해 보겠습니다.
./bin/spark-submit test.py
로그가 중간에 많아서 찾기는 힘들지만 동일한 결과를 보여줍니다.
728x90
반응형
'공부 > Apache spark' 카테고리의 다른 글
[Spark] Spark Cluster 운영하기 (0) | 2021.04.12 |
---|---|
[kaggle] Titanic: Machine Learning from Disaster (0) | 2021.03.10 |