在spark安装之前,应该已经安装了hadoop原生版或者cdh,因为spark基本要基于hdfs来进行计算。
1. 下载
spark: http://mirrors.cnnic.cn/apache//spark/spark-1.4.1/spark-1.4.1-bin-hadoop2.3.tgz
scala: http://downloads.typesafe.com/scala/2.10.5/scala-2.10.5.tgz?_ga=1.171364775.609435662.1441620697
注意scala版本要与spark版本匹配,具体spark版本需要什么版本的scala可以官方文档上查看,如Spark 1.4.1需要 2.10.x的scala。
“ Spark runs on Java 6+, Python 2.6+ and R 3.1+. For the Scala API, Spark 1.4.1 uses Scala 2.10. You will need to use a compatible Scala version (2.10.x)” [http://spark.apache.org/docs/latest/]
2. 集群所有服务器上解压
tar -xvf /opt/app/spark-1.4.-bin-hadoop2..tgz
tar -xvf /opt/app/scala-2.10..tgz
3. 配置
假设集群有三台机器hadoop1,hadoop2,hadoop3,其中hadoop1作为master服务器,hadoop1,hadoop2,hadoop3作为slave服务器
1) 配置ssh免密码登陆,master与slave通信需要ssh通信,设置master到slaves服务器的ssh免密码登陆
在master hadoop1上执行
ssh-keygen-trsa
将 ~/.ssh/id_rsa.pub 的内容追加到三台slave服务器上的~/.ssh/authorized_keys文件。
hadoop1也需要配置,否则启动worker的时候会报权限问题。
2) 所有服务器上配置环境变量
vim /etc/profile
export SCALA_HOME=/opt/app/scala-2.10. export SPARK_HOME=/opt/app/spark-1.4.-bin-hadoop2. export PATH=$SCALA_HOME/bin:$SPARK_HOME/bin:$PATH
3)所有服务器上配置spark
[root@hadoop1 conf]# pwd
/opt/app/spark-1.4.-bin-hadoop2./conf
[root@hadoop1 conf]# cp spark-env.sh.template spark-env.sh
[root@hadoop1 conf]# cp slaves.template slaves
vim spark-env.sh
export JAVA_HOME=/opt/app/jdk1..0_45
export SCALA_HOME=/opt/app/scala-2.10.
export SPARK_HOME=/opt/app/spark-1.4.-bin-hadoop2.
export SPARK_MASTER_IP=10.200.8.74
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/etc/hadoop/conf
export SPARK_LIBRARY_PATH=$SPARK_HOME/lib
export SCALA_LIBRARY_PATH=$SPARK_LIBRARY_PATH
vim slaves
hadoop1
hadoop2
hadoop3
4. 启动
[root@hadoop1 spark-1.4.-bin-hadoop2.]# sbin/start-all.sh
[root@hadoop1 spark-1.4.-bin-hadoop2.]# sbin/stop-all.sh //停止
5. 验证测试
通过jps命令查看启动的spark进程。
hadoop1上已启动Master与Worker进程
[root@hadoop1 spark-1.4.-bin-hadoop2.]# jps
Bootstrap
QuorumPeerMain
Master
RunJar
jar
Main
Main
JobHistoryServer
RunJar
Main
Worker
RunJar
Main
Jps
Kafka
Bootstrap
AlertPublisher
DataNode
EventCatcherService
Bootstrap
SecondaryNameNode
hadoop2,hadoop3上已启动Worker进程
[root@hadoop2 conf]# jps
Worker
QuorumPeerMain
troy-recv-3.0.-SNAPSHOT.jar
Kafka
Bootstrap
Application
NodeManager
DataNode
Jps
通过执行样例程序,成功执行说明一切安装部署OK
bin/run-example org.apache.spark.examples.SparkPi
通过web界面查看集群状态: http://master_ip:8080/
至此,spark集群安装部署完成。