본문 바로가기
Data Science/Spark Basic

아파치 스파크 개발 환경 구축 및 예제 실습 - IntelliJ + Maven + Scala + Mac

by 알파해커 2017. 10. 26.
반응형

스파크를 이용한 개발을 하기위해, 

개발 툴을 이용해서 간단한 코드를 작성하고 실행해보는 실습을 해봤다.


개발 환경은 맥북에서 IntelliJMaven을 이용했고, 개발 언어는 Scala이다.




  1. 일단 IntelliJ IDEA를 다운로드 받는다.
    (구글에서 IntelliJ를 검색하면 공식 홈페이지에서 커뮤니티 버전을 쉽게 구할 수 있다.)

  2. 다운로드 후 설치를 하면 아래와 같은 화면을 볼 수 있는데,
    만약 Scala를 미리 설치하지 않았다면, 화면 하단에 있는 Configure - Plugins - Install JetBrains plugin.. 에 들어가서 Scala를 검색한 후 설치하면 된다. 

    그 다음 프로젝트를 생성하기 위해서 Create New Project를 클릭한다.



  3. 아래의 화면에서, 좌측에 있는 Maven을 선택하고 Next를 클릭한다.


  4. GroupId와 ArifactId 그리고 Version을 작성한 후 Next를 클릭한다.



  5. 이 화면으로 들어오면 Project name과 location 등의 정보가 자동으로 입력이 되는데, 변경을 원한다면 변경 후 Finish를 클릭한다.



  6. 프로젝트가 생성되면 다음과 같은 화면을 만날 수 있는데, 우선 가장 먼저 해야할 일은 pom.xml 데이터를 작성하는 일이다. pom.xml의 내용은 구글링을 해보면 많이 나오지만, 우선은 김도남님이 작성한 내용을 사용해보도록 한다 (http://bit.ly/1GuUVrZ). 

    그리고 우측 하단에, Enable Auto-Import라는 버튼을 클릭한다. 그래야만, pom.xml에 작성한 내용이 프로그램에 반영이 된다.

    김도남님이 올려준 pom.xml의 내용을 보면 maven plugin에 대한 내용이 있는데, 이제 이것을 우리가 작성할 pom.xml에 적용하면 Maven 관련 라이브러리가 다운로드 및 적용된다. (이 때 시간이 꽤 걸린다)



  7. 이번에 우리가 작성하는 프로그램은 Scala로 작성되기 때문에, src / main에서 main을 우클릭하고,  New에 들어가 Directory를 생성한다. 



  8. Directory명은 scala로 하고 OK 버튼을 클릭한다.



  9. 그런 다음, 만들어진 scala 디렉토리를 다시 우클리하고, Mark Directory as에 들어가, Sources Root를 클릭한다.



  10. 그리고, 프로젝트 명을 우클릭하면, Add Framework Support... 가 있는데, 그것을 클릭한다.



  11. 여기서 Scala를 클릭하고 OK해야만 Scala SDk가 적용된다. 



  12. 여기까지 완료가 되었으면, 이제 코드를 작성한다.
    아까 생성한 scala 디렉토리를 우클릭한 후, New에서 Scala Class를 클릭한다.



  13. 파일명을 적고, Kind에서 Object를 선택한 후, 클릭한다.



  14. 코드를 모두 작성했다면, 해당 파일을 우클릭 한 후 Run 한다.
    참고로 코드 내용은 다음과 같다.

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

    object SimpleApp {
    def main(args: Array[String]) : Unit = {
    val conf = new SparkConf().setAppName("SimpleApp").setMaster(args(0))
    val sc = new SparkContext(conf)
    val filePath = "/Users/Alphahacker/Desktop/README.md"
    val inputRDD = sc.textFile(filePath)
    val matchTerm = "spark"
    val numMatches = inputRDD.filter(_.contains(matchTerm)).count()
    println("%s lines in %s contains %s".format(numMatches, filePath, matchTerm))
    System.exit(0)
    }
    }




  15. 이번에 적용한 코드의 경우, 그냥 Run하게 되면, 파라미터 값이 없다는 이유로 에러가 난다.
    따라서, 프로그램 실행시 파라미터 값을 전달하기 위해서,
    화면의 오른쪽 상단에 있는 Edit Configuration... 을 클릭한다.



  16. 파라미터 값을 입력하기 위해, Program argumentslocal[*]를 입력한후
    Apply와 OK를 클릭한다.



이제 다시 Run 해보면 프로그램이 정상작동 하는 것을 확인할 수 있을 것이다.



위의 과정에서 사용된 각 개념들의 의미는 다른 포스팅에서 따로 다루도록 하겠다.


개발 환경을 구축하는 것은 개발자가 어떤 환경을 이용하느냐, 어떤 언어를 사용하느냐 등등과 관련하여 다양하게 있을 수 있다. 또 그것에 따라서 셋팅을 하고 예제를 돌려보는 방법도 천차만별이다.


나의 경우에는 Mac OS에서 IntelliJ + Maven + Scala를 이용한 하나의 사례이지만,

같은 상황에서도 방법이 여러가지 있을 수 있고, 거의 비슷한 환경도 많다.


따라서 자신이 원하는 환경에 맞게 셋팅을 하는 것이 중요하다.


구글링을 해보면 다양한 자료가 나오겠지만, 내가 참고했던 두 개의 동영상의 링크하고 마무리하겠다.


Link1 : https://www.youtube.com/watch?v=4TmPs9x1WWU

Link2 : https://www.youtube.com/watch?v=SWCf2A9xZgs



반응형

댓글