# Apache Spark 

- http://spark.apache.org/

- Apache Spark™ is a fast and general engine for large-scale data processing.


Spark 의 핵심은 무엇인가? RDD! : http://www.slideshare.net/yongho/rdd-paper-review

- Spark programming guide (번역) : http://www.raonbit.com/spark-programming-guide/



# Spark 설치 (Standalone, Python 기준)


- Java 설치 (1.8)

# Ubuntu 

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer


# Windows 

http://www.java.com/ko/download/


- Apache Spark 다운로드

http://spark.apache.org/downloads.html (Spark 1.5.2 Pre-built for Hadoop 2.6 and later)


# Ubuntu 

wget http://apache.mirror.cdnetworks.com/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz

tar -zxvf spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz

sudo mv spark-1.5.2-bin-hadoop2.6 /usr/local/

sudo ln -s /usr/local/spark-1.5.2-bin-hadoop2.6 /usr/local/spark


- Python 설치 (3.5 기준, 버전은 개인 취향?)  

https://www.python.org/


Ubuntu 15.10 의 경우 3.4 버전까지 기본 설치 되어 있음


- Hadoop 다운로드

Hadoop을 저장소로 사용하지 않으면 설치는 옵션이나 Windows의 경우 최소 winutils.exe 이 필요 하므로 그냥 Windows용 Hadoop 설치

압축을 풀고 HADOOP_HOME 환경 변수만 잡아주면 됨

# Hadoop for Windows 


비공식 바이너리 : https://github.com/karthikj1/Hadoop-2.7.1-Windows-64-binaries/releases 





# Spark 설정


- Path 설정

PYTHONPATH는 단독 어플리케이션 작성 시 spark 패키지를 참조하기 위한 세팅 

Ubuntu 예제 (.profile)


export JAVA_HOME=/usr/lib/jvm/java-8-oracle

export SPARK_HOME=/usr/local/spark

export PYTHONPATH=$SPARK_HOME/python/lib/pyspark.zip:$SPARK_HOME/python/lib/py4j-0.8.2.1-src.zip

export HADOOP_HOME=/usr/local/hadoop   # 옵션

Windows 환경변수 세팅 (공백이 없는 경로로 하며, 필요시 mklink를 이용하여 심볼릭 링크 설정을 하면 편함)


%JAVA_HOME%

%SPARK_HOME%

%PYTHONPATH%  

%HADOOP_HOME%



* Windows의 경우 %HADOOP_HOME% 세팅을 하지 않는 경우 아래와 같은 에러가 발생 


ERROR Shell: Failed to locate the winutils binary in the hadoop binary path

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.


* Windows 에서 hive 에러 날 경우 

%HADOOP_HOME%/bin/winutils.exe chmod 777 D:\tmp\hive


- conf 설정 

cp $SPARK_HOME/conf/log4j.properties.template log4j.properties


# log4j.properties 파일편집

log4j.rootCategory=WARN, console  # INFO->WARN, INFO정보가 많이 출력 되므로 수정   




# Spark 테스트 (Shell)




cdecl@ubuntu:/usr/local/spark$ bin/pyspark Python 2.7.10 (default, Oct 14 2015, 16:09:02)

[GCC 5.2.1 20151010] on linux2
Type "help", "copyright", "credits" or "license" for more information.
15/11/11 18:53:30 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
15/11/11 18:53:30 WARN Utils: Your hostname, ubuntu resolves to a loopback address: 127.0.1.1; using 192.168.137.143 instead (on interface eth0)

15/11/11 18:53:30 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address

15/11/11 18:53:35 WARN MetricsSystem: Using default name DAGScheduler for source because spark.app.id is not set.
Welcome to
____ __


/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 1.5.2
/_/
Using Python version 2.7.10 (default, Oct 14 2015 16:09:02)
SparkContext available as sc, HiveContext available as sqlContext.
>>> rdd = sc.textFile('README.md')
>>> rdd.count()
98
>>>





+ Recent posts