https://spark.apache.org/docs/latest/quick-start.html
위 페이지에 있는 'Quick Start' tutorial을 따라하다가 생긴 이슈 사항에 대해 정리.
- 설치
- 내 환경 : MacOS
- 설치목록
- Spark
- sbt
- sbt란?
- simple build tool의 약자로 그냥 일반 빌드 툴인듯 하나 scala 를 빌드하기 위한 기능이 잘 제공되고 있는듯하다.
- 이 튜토리얼에서 .scala 파일을 빌드하기 위해 이 툴을 사용하므로 일단 설치.
- sbt란?
- 설치팁
- spark, sbt 의 tgz 파일을 각각 다운 받는다.
- 해당 파일의 압축을 푼다. ( tar -xvzf ".tgz 파일명")
- SPARK_HOME, SBT_HOME 을 환경변수로 등록하고
- PATH 환경변수에 SPARK_HOME/bin SBT_HOME/bin을 추가한다.
- .bach_profile 에 설정하는 방법을 인터넷에서 찾아볼것.
- 참고) brew 나 이런걸로 설치되면 나중에 지우고 할때 개운치 못한 느낌이 들어서 홈디렉토리 아래 util 폴더를 생성하고 그 아래 모든 설치를 진행함... 나중에 지우기 편하게...
- JDK는 이미 설치되어 있었음.
- scala에 대해 알게된 것들 (함수등의 기능)
- map
- flatMap
- collect
- reduce
- count
- java 와 동일한 import 방식 (* ==> _ 로 바뀐것만 빼고)
- cache (뭐 내가 쓸랑가 싶지만...)
- groupByKey
- groupByKey(identity) 에서 identity가 도통 뭔지.... 위에 선언도 안되어 있고 예약어 느낌도 아님.
- Spark Application 생성
- object 가 main 함수를 가져야함.
- SparkSession 을 명시적으로 생성해줘야함 (spark-shell에서는 이미 지정되어있음.)
- SBT build
- build.sbt 파일 필요 (폴더 최상위 위치)
- src/main/scala 폴더 아래에 스칼라 파일 위치 (sbt에서 요구하는 폴더구조가 있는 듯.)
- build.sbt 작성시, scala 와 spark 버젼을 넣어줘야 하는데 실제 설치된것과 다른 버젼을 적었더니 실패함.
- spark 버젼 확인 : sc.version
- scala 버젼 확인 : util.Properties.versionString
Next
- spark 2.0부터 RDD 기반 방식이 아닌 DataSet 기반 동작을 추천함. 성능도 더 좋다고 함.
- RDD guideline은 건너띄고 DataSet 가이드로 고고!