Apache Spark 샘플 프로그램을 IntelliJ IDEA로 이동할 때 변경할 수 있는 팁

2203 단어 IntelliJ스파크1.5

프로젝트 가져오기



처음에는 Existing Sources에서 프로젝트를 만듭니다.



build.sbt 파일이 있는 폴더를 프로젝트 루트 폴더로 선택합니다.
use-auto import도 체크했습니다.

빌드



build.sbt
libraryDependencies ++=
Seq("org.apache.spark" % "spark-core_2.10" % "1.5.0" % "provided")

Spark의 Application을 IntelliJ와 같은 IDE에서 실행하려면 Spark의 라이브러리가 필요하므로 provided를 compile로 변경합니다.
(역으로, 기동한 Spark에, spark-submit로 투입하는 경우에는, Spark의 라이브러리는 기동하고 있는 Spark에 포함되기 때문에, Spark의 어플리케이션의 jar에는 필요 없습니다.)

provided/compile과 같은 종속성이 있는 라이브러리가 없는 경우의 런타임 오류는 예외 발생(Class Not Found Exception)입니다.

구성



SparkConf에 필수 초기 값이 있습니다. 여기가 다운로드하고 있는 샘플에 없는 경우가 있어, 그 때는 추가하지 않으면 움직이지 않거나 합니다.

흔한 샘플

sample.scala(수정 전)
    val conf = new SparkConf
    val sc = new SparkContext(conf)

자신의 로컬 설정을 반영하는 경우 소스

sample.scala(수정 후)
    val conf = new SparkConf
    conf.setSparkHome("/Users/yourname/xxx/spark-1.6.2-bin-hadoop2.6")
    conf.setMaster("local")
    conf.setAppName("SampleAppName")
    val sc = new SparkContext(conf)

정의가 부족한 경우 런타임 오류는 컨텍스트 초기화 오류입니다.
WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
ERROR SparkContext: Error initializing SparkContext.
org.apache.spark.SparkException: A master URL must be set in your configuration

조금 움직이면 소스 파일에 정의를 써도 좋지만, 최종적으로는 정의 파일(conf/spark-defaults.conf)에 기재한다고 생각합니다.

장래는 이쪽의 공식 HP 기재 를 참조합니다.

좋은 웹페이지 즐겨찾기