在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.1-bin-hadoop2.3.tgz tar -xvf /opt/app/scala-2.10.5.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.5 export SPARK_HOME=/opt/app/spark-1.4.1-bin-hadoop2.3 export PATH=$SCALA_HOME/bin:$SPARK_HOME/bin:$PATH
3)所有服务器上配置spark
[root@hadoop1 conf]# pwd /opt/app/spark-1.4.1-bin-hadoop2.3/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.7.0_45 export SCALA_HOME=/opt/app/scala-2.10.5 export SPARK_HOME=/opt/app/spark-1.4.1-bin-hadoop2.3 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.1-bin-hadoop2.3]# sbin/start-all.sh [root@hadoop1 spark-1.4.1-bin-hadoop2.3]# sbin/stop-all.sh //停止
5. 验证测试
通过jps命令查看启动的spark进程。
hadoop1上已启动Master与Worker进程
[root@hadoop1 spark-1.4.1-bin-hadoop2.3]# jps 15663 Bootstrap 13356 QuorumPeerMain 6498 Master 14194 RunJar 45397 jar 36966 Main 16028 Main 13862 JobHistoryServer 14198 RunJar 15920 Main 6681 Worker 14196 RunJar 15922 Main 8241 Jps 17013 Kafka 15470 Bootstrap 15981 AlertPublisher 14001 DataNode 15951 EventCatcherService 13434 Bootstrap 13470 SecondaryNameNode
hadoop2,hadoop3上已启动Worker进程
[root@hadoop2 conf]# jps 3004 Worker 19548 QuorumPeerMain 31525 troy-recv-3.0.0-SNAPSHOT.jar 16302 Kafka 23010 Bootstrap 5478 Application 20054 NodeManager 19745 DataNode 4381 Jps
通过执行样例程序,成功执行说明一切安装部署OK
bin/run-example org.apache.spark.examples.SparkPi
通过web界面查看集群状态: http://master_ip:8080/
至此,spark集群安装部署完成。