앞전 포스팅에서 spark를 설치해보았고, 잘 동작하는지 테스트하기위해
pyspark를 통해 워드카운트를 실행해보겠습니다.
spark가 설치되어있고,
python3버전이 설치되어있음을 가정합니다.
https://developer-woong.tistory.com/49
Apache Spark 설치
centos7 기준입니다. 호스트명이 mast01인 서버에 설치할 예정이고, 실행은 hadoop 유저, 히스토리서버 역시 mast01서버에 띄우도록 하겠습니다. mast01: master work01~03: worker hadoop이 설치되어있음을 가정합
developer-woong.tistory.com
https://developer-woong.tistory.com/35
centos linux python 버전 변경
python 버전 변경법입니다. centos7 기준입니다. yum install -y python3 ls /bin | grep python update-alternatives --config python update-alternatives --install /bin/python python /bin/python2.7 1 update-alternatives --install /bin/python python /
developer-woong.tistory.com
1. 워드카운트에 사용할 파일 HDFS 업로드
action server: mast01
user: hadoop
pwd: /opt/apps/spark-3.2.3
cmd:
hdfs dfs -put /opt/apps/spark-3.2.3/README.md /user/spark/
2. pyspark shell 진입
action server: mast01
user: hadoop
pwd: /opt/apps/spark-3.2.3
cmd:
pyspark --master yarn
3. 소스 작성
action server: mast01
user: hadoop
pwd: /opt/apps/spark-3.2.3
cmd:
import pyspark.sql.functions as f
spark = SparkSession.builder.appName("wordcount").getOrCreate()
textFile = spark.read.text("hdfs://NNHA/user/spark/README.md")
textFile.withColumn('word', f.explode(f.split(f.col('value'), ' ')))\
.groupBy('word')\
.count()\
.sort('count', ascending=False)\
.show()
결과확인
4. .py 생성 후 spark-submit으로 실행시켜보기
action server: mast01
user: hadoop
pwd: /opt/apps/spark-3.2.3
cmd:
# pyspark-shell 빠져나오기
Ctrl + D
# hdfs://NNHA/user/spark/README.md를 워드카운트하여
# hdfs://NNHA/user/spark/resultcount 경로 하위에 결과를 저장하는 스크립트
vi /opt/apps/spark-3.2.3/testwordcount.py
import pyspark
import pyspark.sql.functions as f
spark = pyspark.sql.SparkSession.builder.appName("wordcountSAVE").getOrCreate()
textFile = spark.read.text("hdfs://NNHA/user/spark/README.md")
textFile.withColumn('word', f.explode(f.split(f.col('value'), ' ')))\
.groupBy('word')\
.count()\
.sort('count', ascending=False)\
.write.format("csv").option("header", "false").mode("append").save("hdfs://NNHA/user/spark/resultcount")
5. spark-submit 실행
action server: mast01
user: hadoop
pwd: /opt/apps/spark-3.2.3
cmd:
spark-submit --master yarn --deploy-mode cluster /opt/apps/spark-3.2.3/testwordcount.py
결과확인
mast02:38088 리소스매니저 UI 확인
mast01:9870 resultcount 폴더 확인