1、下载并编译spark源码

    下载spark http://spark.apache.org/downloads.html 我下载的是1.2.0版本

    解压并编译,在编译前,可以根据自己机器的环境修改相应的pom.xml配置,我的环境是hadoop2.4.1修改个小版本号即可,编译包括了对hive、yarn、ganglia等的支持

tar xzf ~/source/spark-1.2.0.tgz
cd spark-1.2.0
vi pom.xml
./make-distribution.sh --name 2.4.1 --with-tachyon --tgz -Pspark-ganglia-lgpl -Pyarn -Pkinesis-asl -Phive-0.13.1 -Phive-thriftserver -Phadoop-2.4 -Djava.version=1.6 -Dhadoop.version=2.4.1 -DskipTests

注:spark每个版本发布后,可能都会对pom.xml配置做出相应的调整,请根据pom.xml文件中的配置,对应调整编译时的参数。

2、spark相关配置

    将编译后的.tgz文件解压,配置环境变量及spark配置文件,如下:

    环境变量:(仅列出spark相关的配置)

export SCALA_HOME=/home/ocdc/bin/scala-2.10.4
export PATH=$SCALA_HOME/bin:$PATH

export SPARK_HOME=/home/ocdc/bin/spark-1.2.0-bin-2.4.1
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin:

    spark-env.sh

export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=17077
export SPARK_MASTER_WEBUI_PORT=18080

export SPARK_WORKER_CORES=1
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_WEBUI_PORT=18081
export SPARK_WORKER_INSTANCES=1

#配置master的HA时,需要配置此项,ZK需要提前启动
#export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,node1:2181,node2:2181"

    slaves

node1
node2
node3

    spark-default.conf

spark.master                     spark://master:17077

spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://cluster1:8021/eventLogDir

spark.executor.memory	         512m
spark.driver.memory              512m

    复制spark到各个节点

scp -r ~/bin/spark-1.2.0-bin-2.4.1/ ocdc@node1:~/bin/
scp -r ~/bin/spark-1.2.0-bin-2.4.1/ ocdc@node2:~/bin/
scp -r ~/bin/spark-1.2.0-bin-2.4.1/ ocdc@node3:~/bin/

3、启动spark(master单点)

cd $SPARK_HOME
sbin/start-all.sh

wKiom1ShA7uz5CC_AAQFvDJHD6k547.jpg

4、spark (基于zookeeper的master节点HA)

    配置zookeeper集群,使用master、node1、node2三个节点,有关zookeeper集群的配置此处略过。三个节点启动zookeeper

zkServer.sh start

    spark-env.sh配置文件增加zookeeper相关配置(注:因为HA后,master可以为多个,所以在配置文件中不可指定SPARK_MASTER_IP,否则无法正常启动)

#export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=17077
export SPARK_MASTER_WEBUI_PORT=18080

export SPARK_WORKER_CORES=1
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_WEBUI_PORT=18081
export SPARK_WORKER_INSTANCES=1
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,node1:2181,node2:2181"

    master节点启动spark

sbin/start-all.sh

    node1节点启动HA

sbin/start-master.sh

wKiom1ShE87BLeNzAAGa7a8CDD4044.jpg

wKioL1ShFIHAhITnAAGjsX-t-dk297.jpg

5、启动spark-shell

    1)单个master进程启动

bin/spark-shell --master spark://master:17077

    2)HA模式启动

bin/spark-shell --master spark://master:17077,node1:17077

6、启动history-server

    在node1节点启动history-server,相关配置已经在spark-defaults.conf中配置

sbin/start-history-server.sh hdfs://cluster1:8020/eventLogDir