Spark는 버클리 학생들이 아이디어를 제안해서 만들어진 프로젝트이다. 빠르게 버전업 되는 핫한 프레임워크이다. 단지 워낙 빠르게 버전업되고 만들어진지 얼마 안 돼다보니 안정화가 들 돼어 있다. 즉 버그가 많다. 그렇지만 큰 데이터를 분석할 때 그런 듯 싶고 우리가 쓰는 환경은 한 번에 최대 50Mbyte 정도의 데이터만 처리하면 돼기 때문에 In-memory에서 메모리가 깨지는 문제는 아직까진 발견할 수 없다. Gbyte단위로 분석하면 깨지지 않을까 추측을 해본다.
아래주소로 방문해서
http://spark.apache.org/downloads.html
원하는 패키지를 다운 받는다.
$ wget http://apache.mirror.cdnetworks.com/spark/spark-1.3.1/spark-1.3.1-bin-hadoop2.6.tgz
$ tar xvzf spark-1.3.1-bin-hadoop2.6.tgz
$ cd conf/
$ cp spark-env.sh.template spark-env.sh
$ vi spark-env.sh
# 원하는 설정을 넣어주면 된다. 우리는 다음과 같이 넣었다.
$ cp spark-defaults.conf.template spark-defaults.conf
$ vi spark-defaults.conf
# 여기에도 원하는 설정을 넣어주면 된다.
$ tar xvzf spark-1.3.1-bin-hadoop2.6.tgz
$ cd conf/
$ cp spark-env.sh.template spark-env.sh
$ vi spark-env.sh
# 원하는 설정을 넣어주면 된다. 우리는 다음과 같이 넣었다.
export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.appDataTtl=3600"
export SPARK_MASTER_IP=192.168.0.1
export SPARK_WORKER_MEMORY=8g
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
$ cp spark-defaults.conf.template spark-defaults.conf
$ vi spark-defaults.conf
# 여기에도 원하는 설정을 넣어주면 된다.
park.master spark://192.168.0.1:7077
spark.default.parallelism 4
$ cp slaves.template slaves
$ vi slaves
# 노예들을 다 적어 주면 된다. 일할 서버 아이피들..
192.168.0.1
#192.168.0.2
#192.168.0.3
$ cd ..
$ ./sbin/start-all.sh
만약 다음과 같은 에러가 났다면..
Exception in thread "main" java.net.UnknownHostException: test: test: unknown error
at java.net.InetAddress.getLocalHost(InetAddress.java:1484)
at org.apache.spark.util.Utils$.findLocalIpAddress(Utils.scala:771)
at org.apache.spark.util.Utils$.localIpAddress$lzycompute(Utils.scala:763)
at org.apache.spark.util.Utils$.localIpAddress(Utils.scala:763)
at org.apache.spark.util.Utils$.localIpAddressHostname$lzycompute(Utils.scala:764)
at org.apache.spark.util.Utils$.localIpAddressHostname(Utils.scala:764)
at org.apache.spark.util.Utils$$anonfun$localHostName$1.apply(Utils.scala:816)
at org.apache.spark.util.Utils$$anonfun$localHostName$1.apply(Utils.scala:816)
at scala.Option.getOrElse(Option.scala:120)
at org.apache.spark.util.Utils$.localHostName(Utils.scala:816)
at org.apache.spark.deploy.worker.WorkerArguments.<init>(WorkerArguments.scala:29)
at org.apache.spark.deploy.worker.Worker$.main(Worker.scala:528)
at org.apache.spark.deploy.worker.Worker.main(Worker.scala)
Caused by: java.net.UnknownHostException: anal01: unknown error
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:907)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1302)
at java.net.InetAddress.getLocalHost(InetAddress.java:1479)
... 12 more
아래를 추가해주고
$ sudo vi /etc/hosts
127.0.1.1 test
다시 실행
$ ./sbin/start-all.sh