[참고] 스파크의 로컬 개발 환경을 만들었다
배경
Spark에서 데이터의 중복을 제외하고 싶기 때문에, spark의 개발 환경을 로컬로 만들어 보았다.
macOS 10.14.2
필요한 것
Spark 개발 환경 만들기
JDK
원래
jdk1.8.0_11
가 인스톨 끝났습니다만, 그 버젼이라고 잘 가지 않았으므로, 수동으로 최신의 JDK에 갱신했다.그건 그렇고, macOS에는 기본 JRE가 설치되어 있지만 JDK는 없습니다.
「시스템 설정」-> 「Java」로 갱신해도 JRE 밖에 갱신되지 않습니다.
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk
~/.bash_profile
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/"
export PATH=$JAVA_HOME/bin:$PATH
Scala
brew install scala
brew install [email protected]
Intellij만 사용한다면 여기에서 scala를 설치하지 않아도 되지만, 설치해 두어도 손해는 없을 것입니다.
자신은 scala 2.11도 사용하고 싶으므로, 별도로 scala2.11도 설치했다.
~/.bash_profile
export SCALA_HOME="/usr/local/Cellar/[email protected]/2.11.12/"
export PATH=$SCALA_HOME/bin:$PATH
스파크
$ brew search spark
==> Formulae
apache-spark ✔ spark sparkey
==> Casks
homebrew/cask/spark
apache-spark
와 spark
하지만 spark
는 전혀 다른 것입니다. apache-spark
를 설치합시다.brew install apache-spark
$ spark-shell
2019-02-08 09:42:20 WARN NativeCodeLoader:62 - 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).
2019-02-08 09:42:32 WARN Utils:66 - Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
Spark context Web UI available at http://172.16.193.147:4041
Spark context available as 'sc' (master = local[*], app id = local-1549586552672).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.4.0
/_/
Using Scala version 2.11.12 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_201)
Type in expressions to have them evaluated.
Type :help for more information.
scala> :quit
Intellij
plugin scala
설치 plugin sbt
설치 설정
최신 JDK를 지정합시다.
name := "test"
version := "0.1"
scalaVersion := "2.11.12"
libraryDependencies ++= Seq(
"org.apache.spark" % "spark-core_2.11" % "2.0.2"
)
참고 : scala 버전 2.12.8은 작동하지 않는 것처럼 버전 2.11.12로 만들었습니다.
예
import org.apache.spark.{SparkConf, SparkContext}
object BasicWordCount {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setMaster("local").setAppName("Basic word count")
val sc = new SparkContext(conf)
val textFile = sc.textFile("./README.md")
val words = textFile.flatMap(line => line.split(" "))
val wordcounts = words.map(word => (word, 1)).reduceByKey((a, b) => a + b)
wordcounts.saveAsTextFile("./wordcounts")
}
}
maven의 경우
maven의 경우에는 설정이 좀 필요합니다.
참조
Reference
이 문제에 관하여([참고] 스파크의 로컬 개발 환경을 만들었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/arthurbryant/items/473f5724651e3d010510텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)