解压:
$ tar xf spark-1.5.0.tgz
$ cd spark-1.5.0
编译源码,其中要与Hadoop的版本对应:
$ export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
$ mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.5.2 -Phive -Phive-thriftserver -DskipTests clean package
编译过程中,如果有WARNNING,不太重要的可以忽略, 编译时间三十分钟到一个小时左右,编译完成后应该可以看到 BUILD SUCCESSFULLY 的字样。
$ sudo mv spark-1.5.0 /hadoop/spark
配置spark环境变量:
$ vim ~/.bashrc
# Spark settings
export SPARK_HOME=/hadoop/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
配置 shell 脚本环境变量
$ cd $SPARK_HOME/conf
$ cp spark-env.sh.template spark-env.sh
$ vim spark-env.sh
export JAVA_HOME=/usr/lib/jdk1.7.0_67
export HADOOP_HOME=/hadoop/hadoop
export HIVE_HOME=/hadoop/hive
export PYSPARK_PYTHON=/usr/bin/python
使用log4j默认配置:
$ mv log4j.properties.template log4j.properties
指定 slaves:
$ vim slaves
datanode01
datanode02
datanode03
datanode04
将 $HIVE_HOME/conf/hive-site.xml 放到 $SPARK_HOME/conf 目录下
将 $HADOOP_HOME/etc/hadoop 目录下的 core-site.xml 以及 hdfs-site.xml 放到 $SPARK_HOME/conf 目录下
将 $SPARK_HOME 目录同步到集群中的所有机器上, 同时修改环境变量
启动:
$ cd $SPARK_HOME
$ ./sbin/start-all.sh
查看进程:
$ jps
## master 机器上有这个进程
17598 Master
### slave 机器上有这个进程
8469 Worker
关闭:
$ ./sbin/stop-all.sh
$ ./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[8] \
/path/to/examples.jar \
100
$ ./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://namenode:7077 \
--executor-memory 20G \
--total-executor-cores 100 \
/path/to/examples.jar \
1000
将 $HADOOP_HOME/lib/native/amd64下的libhadoop.so和libhdfs.so复制到 $JAVA_HOME/jre/lib/amd64下即可解决,重启spark即可解决。
$ cd $SPARK_HOME
$ vi python/pyspark/__init__.py
## 在import sys后加入
reload(sys)
sys.setdefaultencoding('utf-8')