(Chapter 2) 13. Initializing a SparkContext :: 2015/03/12 18:59

Spark application이 한번 link된 이후에는 Spark Package를 프로그램에 import하여 SparkContext를 생성할 수 있다. Application을 설정하기 위해서 SparkConf object를 생성하고, 그 이후에 SparkContext를 생성할 수 있다. 각각의 언어에 따라 지원되는 간단한 example은 다음과 같다.

 

[Initializing Spark in Python]

from pyspark import SparkConf, SparkContext

conf = SparkConf().setMaster("local").setAppName("My App")

sc = SparkContext(conf)

 

[Initializing Spark in Java]

import org.apache.spark.SparkConf;

import org.apache.spark.api.java.JavaSparkContext;

SparkConf conf = new SparkConf().setMaster("local").setAppName("My App");

JavaSparkContext sc = new JavaSparkContext(conf);

 

[Initializing Spark in Scala]

import org.apache.spark.SparkConf

import org.apache.spark.SparkContext

import org.apache.spark.SparkContext._ 

val conf = new SparkConf().setMaster("local").setAppName("My App")

val sc = new SparkContext("local", "My App")

 

위의 예제에서는 2개의 파라미터를 넘겨서 SparkContext 초기화를 위한 최소한의 방법을 보여준다.

·         Cluster URL : 예제에서는 "local"이라고 쓰인 부분이다. 어떻게 Cluster에 접속할지를 Spark에 말해주는 부분이다. "local" Cluster에 연결하지 않고, local machine의 하나의 thread에서 Spark에서 실행하는 특별한 값을 의미한다.

·         Application name : 예제에서는 "My App"이라고 쓰인 부분이다. 이것은 Cluster에 연결할 때, cluster manager UI에서 표시되는 application identify이다.

 

추가적인 파라미터들은 application이 어떻게 실행되는지 혹은 Cluster 상에 추가되는 code에 대한 설정을 위하여 존재한다. 하지만, 이 부분은 책의 나중에 다룰 것이다.

 

SparkContext를 초기화한 이후에 이전에 보여준 RDD를 생성하고 다루는 모든 method를 사용할 수 있다.

 

끝으로, Spark를 종료하기 위해서는 SparkContext stop() method를 호출하거나 application에서 System.exit(0)이나 sys.exit()를 호출하여 간단하게 종료할 수 있다.

 

이 짧은 overview는 랩탑에서 Standalone Spark application을 실행하기에는 충분하다. 더 많은 advanced configuration을 위해서 이 책의 이후 챕터에서 어떻게 application Cluster에 접속하는지, Application 패키징을 포함하여 어떻게 자동으로 worker node code가 배포되는지에 대해서 다룰 것이다.

 

Conclusion

 

이 챕터에서는 Spark를 다운로드하고 랩탑에서 실행하고, standalone application을 통해 interactive하게 동작하는 부분을 살펴보았다. Spark Core Concept에 대해서 간단히 살펴보고, Spark를 이용한 프로그래밍도 살펴보았다. SparkContext RDD를 생성하는 driver program과 병렬 연산을 처리하는 부분에 대해서도 살펴보았다. 다음 장에서는 RDD operate가 어떻게 이루어지는지에 대해서 더 깊이 살펴볼 것이다.

2015/03/12 18:59 2015/03/12 18:59
Trackback Address :: http://www.yongbi.net/trackback/660
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret
< PREV |  1  |  ...  142  |  143  |  144  |  145  |  146  |  147  |  148  |  149  |  150  |  ...  566  |  NEXT >