2015년 4월 28일 화요일

Spark ubunto에서 설치

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

# 원하는 설정을 넣어주면 된다. 우리는 다음과 같이 넣었다.
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