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
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
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