처음 대하는 환경이라 스칼라 설치에, 스파크, maven설치에 winutils까지 이것 저것 삽질을 많이 했었는데, 


쉘에서 실행해본다던가 다양한 방법이 있지만..

단지 스파크의 API를  스칼라 언어로 테스트해볼 것이라면 아래 설치만으로도 충분합니다.

뭐한건지...;;;




물론, 실제 운영 하려면 하둡설치에 다른 여러가지들이 필요 하겠지요.


간단하게 라인 수를 재는 프로그램을 돌려보기 위한 환경입니다.

스파크의 경우 파이썬, 자바, 스칼라 언어로 작동이 가능합니다.(공식문서에도 세가지 언어로 딱 가이드하더군요.) 

스칼라 기준으로합니다.. (윈도우7/10 환경입니다.)


1. 자바를 설치합니다. 자바 설치후 환경변수로 JAVA_HOME 을 자바 설치 경로로 셋팅해줍니다. 설치되어있다면 패스~


설치 : http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html



171버전을 설치했네요.


* 참고로 관리자 권한으로 CMD 입력창을 실행하고

"C:\Windows\system32\rundll32.exe" sysdm.cpl,EditEnvironmentVariables 를 입력하면 바로 환경변수 수정이 가능합니다.








2. IntelliJ를 설치합니다. 어차피 메모장에서 개발할 것은 아니기 때문에, 바로 IDE를 설치합니다. 설치시 scala 플러그인을 선택하면 필요한 것을 같이 받을 수 있습니다.

IntelliJ 설치 경로 : https://www.jetbrains.com/idea/download/#section=windows

위 링크에서 커뮤니티 버전을 선택하시면 무료로 테스트 사용이 가능합니다. (상용개발시에는 구매를 해야겠지요.)







64비트 런처 숏컷은 하나 만들었습니다 .x86은 JRE는 필요없어서 체크안했구요.




설치시 아래 화면은 기본으로 넘어가셔도 됩니다. 보시고 필요한 것 있으면 더 다운로드 받으시면 됩니다.







아래 화면에서는 플러그인에  Scala를 꼭 Install해주세요.~






런처화면이 나오고












Create New Porject 를 해서






Scala에 SBT를 선택합니다. SBT Simple Build Tool 이라해서, 스칼라 빌드 환경입니다.





기존에 JDK를 설치했기 때문에 설치한 경로로  JDK환경을 설정합니다.





위 화면이 중요한데요. 스파크 2.3.0 버전은 Scala 2.11.12 버전으로 해야 됩니다. 2.12.x로 하니 잘 안되더군요.

이것 때문에 또 삽질.

http://spark.apache.org/docs/latest/quick-start.html <- 여기는 2.11.8로 설명이..








프로젝트 뷰 창이 나오지 않으면 ALT+1 을 누르시거나 View 메뉴에 Tool Windows -> Project를 차례로 선택합니다.


그리고 build.sbt 파일을 위와 같이 수정합니다.


name := "lineCount" version := "0.1" scalaVersion := "2.11.12" libraryDependencies += "org.apache.spark" %% "spark-core" % "2.3.0"










스칼라 파일을 소스에 하나 추가합니다. (sbt파일이 한번 Sync가 되어야 Scala class파일을 추가할 수 있는걸로 보여집니다?)


Object를 추가할것으므로 Kind에서 Object를 선택하세요. 이름은 LineCount로 합니다.




소스파일 내용은 아래와 같습니다.



import org.apache.spark.{SparkConf, SparkContext}

object LineCount {

  def main(args: Array[String]): Unit = {

    val logFile = "c:\\download\\test.txt"  //경로는 바꿀 수 있습니다.


    val conf = new SparkConf().setAppName("Simple Application").setMaster("local")


    val sc = new SparkContext(conf)


    val logData = sc.textFile(logFile, 2).cache()


    val lineCount = logData.count()


    println("라인수==>"+lineCount)


    sc.stop()


  }

}


텍스파일은 하나 아무거나 준비합니다. 만들기 번거로우시면 아래링크를 받으세요.
Run 할때 실행 환경이 없다면 아래와 같이 하나 추가해주세요.
MainClass는 LineCount, Use classpath of module은 프로젝트내에 linecount 입니다.






위와 같이 라인 수가 잘 나오는 것을 확인 할 수 있습니다




추가 링크:

스팍 개발 환경 설정(영어) : http://www.itversity.com/2018/04/19/setup-development-environment-big-data-hadoop-and-spark/

스팍 공식 문서(영어) http://spark.apache.org/docs/latest/index.html

스칼라 언어 배우기(한글) : https://twitter.github.io/scala_school/ko/index.html



+ Recent posts