一、Spark安装前提
安装Spark之前需要先安装Hadoop集群,因为之前已经安装了hadoop,所以我直接在之前的hadoop集群上安装spark,但是因为机器内存不够,我只选择master以及slave01安装spark集群,而不要slave02了。
hadoop集群的安装参考之前的博文:http://my.oschina.net/amui/blog/610288
二、Spark安装步骤:
1.下载scala-2.11.7.tgz
http://www.scala-lang.org/download/2.11.7.html
2.下载spark-1.5.2-bin-hadoop2.6.tgz(之前安装的hadoop是2.6.0的)
http://www.apache.org/dyn/closer.lua/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz
3.安装Scala(在master上):
mkdir /application/scala
cp /root/scala-2.11.7.tgz /application/scala/
cd /application/scala/
tar -zxvf scala-2.11.7.tgz
创建软链接:
ln -s /application/scala/scala-2.11.7 /application/scala/scala
修改环境变量,添加SCALA_HOME,并修改PATH即可:
vi /etc/profile.d/java.sh
export SCALA_HOME=/application/scala/scala-2.11.7
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$PATH
使配置立即生效:
source /etc/profile
验证是否安装成功
scala –version
显示如下:
4.将/application/scala从master复制到另外一台机器slave01上。
scp -r /application/scala root@slave01:/application/
5.将/etc/profile.d/java.sh 也复制到slave01上。
再在slave01上进行以下命令操作,使配置生效:
source /etc/profile
6.安装Spark(在master上):
mkdir /application/spark
cp /root/spark-1.5.2-bin-hadoop2.6.tgz /application/spark/
tar -zxvf spark-1.5.2-bin-hadoop2.6.tgz
修改环境变量:将SPARK_HOME添加进去,并修改PATH即可。
vi /etc/profile.d/java.sh
export SPARK_HOME=/application/spark/spark-1.5.2-bin-hadoop2.6
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$PATH
是配置立即生效:
source /etc/profile
7.修改配置文件
7.1修改spark-env.sh配置文件:
cd /application/spark/spark-1.5.2-bin-hadoop2.6/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
在后面追加
###jdk dir export JAVA_HOME=/usr/local/jdk ###scala dir export SCALA_HOME=/application/scala/scala ###the ip of master node of spark export SPARK_MASTER_IP=192.168.10.1 ###the max memory size of worker export SPARK_WORKER_MEMORY=512m ###hadoop configuration file dir export HADOOP_CONF_DIR=/application/hadoop/hadoop/etc/hadoop
7.2修改slaves文件
cp slaves.template slaves
vi slaves
添加如下(可能有默认localhost,将其改成master):
master
slave01
8.将/application/spark以及环境变量的配置文件复制到slave01,并通过source命令将文件立即生效
scp -r /application/spark root@slave01:/application/
scp -r /etc/profile.d/java.sh root@slave01:/etc/profile.d/java.sh
修改所属组和用户
chown -R hadoop:hadoop /application/spark
9.到此Spark集群搭建完毕。
10.启动Spark集群:
启动Spark之前需要先将hadoop的dfs以及yarn启动。
/application/spark/spark-1.5.2-bin-hadoop2.6/sbin/start-all.sh
启动所有服务之后,在命令行输入jps,显示如下:
比hadoop集群启动时多了Master和worker
输入如下命令
/application/spark/spark-1.5.2-bin-hadoop2.6/bin/spark-shell.sh
出现scala>时说明成功。
在浏览器中输入192.168.10.1:8080时,会看到如下图,有两个Worker
在浏览器中输入192.168.10.1:4040
出现如图:
三、运行实例wordcount实例:
scala>var textcount=sc.textFile("hdfs://master:9000/data/words2").filter(line=>line.contains("haha")).count()
显示结果如下:
四、总结:
安装spark比较容易,没有hadoop复杂,我在安装spark的过程中,在启动的时候,启动不起来,特别慢,半天启不了,后来就感觉是虚拟机内存分配过低,== 因为我在spark的配置中只给了256m,后来将虚拟机的内存调至1024m,并将spark配置文件中SPARK_WORKER_MEMORY的字段分配512m,spark才能正常启动。
在启动的过程中,也出现一个问题,就是jdk版本的问题,我之前安装hadoop的时候用的是jdk1.6版本,导致在spark启动时出现错误,spark1.5是不兼容jdk1.6的,必须是jdk1.7以上,所以在之后只能重新将jdk删了重新安装jdk1.8版本了。