Spark 集群
集群环境
基于hadoop集群64bit(hadoop2.5.1、jdk1.7)
CentOS 6.4下安装配置Spark-0.9集群
Spark是一个快速、通用的计算集群框架,它的内核使用Scala语言编写,它提供了Scala、Java和Python编程语言high-level
API,使用这些API能够非常容易地开发并行处理的应用程序。
下面,我们通过搭建Spark集群计算环境,并进行简单地验证,来体验一下使用Spark计算的特点。无论从安装运行环境还是从编写处理程序(用Scala,Spark默认提供的Shell环境可以直接输入Scala代码进行数据处理),我们都会觉得比Hadoop
MapReduce计算框架要简单得多,而且,Spark可以很好地与HDFS进行交互(从HDFS读取数据,以及写数据到HDFS中)。
安装配置
下载安装配置Scala
1. 到Scala 官方网站下载,我使用的版本为scala-2.11.4.tgz 2. 解压:tar –zvxf scala-2.11.4 –C /usr/local/program/scala/ |
在etc/profile中增加环境变量SCALA_HOME,并使之生效:
export SCALA_HOME=/usr/local/program/scala/ scala-2.11.4</p><p> </p><p> export PATH=$PATH:$SCALA_HOME/bin</p><p> </p><p>
下载安装配置Spark
我们首先在主节点m1上配置Spark程序,然后将配置好的程序文件复制分发到集群的各个从结点上。下载解压缩:
到apache官网下载,我使用的版本为:<b style="color:black;background-color:#ffff66">spark</b>-1.1.0-bin-hadoop2.4.tgz</p><p> tar –zvxf <b style="color:black;background-color:#ffff66">spark</b>-1.1.0-bin-hadoop2.4.tgz –C /usr/local/program/<b style="color:black;background-color:#ffff66">spark</b>/ </p><p> </p><p>
在etc/profile中增加环境变量SPARK_HOME,并使之生效:
</p><p> export <b style="color:black;background-color:#ffff66">SPARK</b>_HOME=/usr/local/program/<b style="color:black;background-color:#ffff66">spark</b>/<b style="color:black;background-color:#ffff66">spark</b>-1.1.0-bin-hadoop2.4</p><p> </p><p> export PATH=$PATH:$<b style="color:black;background-color:#ffff66">SPARK</b>_HOME/bin:$<b style="color:black;background-color:#ffff66">SPARK</b>_HOME/sbin</p><p> </p><p>
在m1上配置Spark,修改spark-env.sh配置文件:
进入<b style="color:black;background-color:#ffff66">spark</b>的conf目录 </p><p>执行 cp <b style="color:black;background-color:#ffff66">spark</b>-env.sh.template <b style="color:black;background-color:#ffff66">spark</b>-env.sh</p><p> vi <b style="color:black;background-color:#ffff66">spark</b>-env.sh </p><p> </p><p> </p><p>
在该脚本文件中,同时将SCALA_HOME、JAVA_HOME配置为Unix环境下实际指向路径,例如:
export SCALA_HOME=/usr/local/program/scala/scala-2.11.4</p><p> </p><p> expor JAVA_HOME=/usr/local/program/jdk1.7</p><p>export HADOOP_HOME=/usr/local/program/hadoop-2.5.1</p><p>export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop-2.5.1</p><p>export <b style="color:black;background-color:#ffff66">SPARK</b>_JAR=/usr/local/program/<b style="color:black;background-color:#ffff66">spark</b>/<b style="color:black;background-color:#ffff66">spark</b>-1.1.0-bin-hadoop2.4/lib/<b style="color:black;background-color:#ffff66">spark</b>-assembly-1.1.0-hadoop2.4.0.jar</p><p> </p><p>
修改conf/slaves文件,将计算节点的主机名添加到该文件,一行一个,例如:
s1</p><p> </p><p> s2</p><p> </p><p>
最后,将profile、scala、Spark的程序文件和配置文件拷贝分发到从节点机器上:
1. scp –r /etc/profile s1:/etc/</p><p>然后在各节点执行source /etc/profile</p><p>2. scp –r scala s1:/usr/local/program/</p><p>3. scp –r <b style="color:black;background-color:#ffff66">spark</b> s1:/usr/local/program/</p><p>(同时也复制到s2机器上)</p><p>
启动Spark集群
我们会使用HDFS集群上存储的数据作为计算的输入,所以首先要把Hadoop集群安装配置好,并成功启动,我这里使用的是Hadoop
2.5.1版本。启动Spark计算集群非常简单,执行如下命令即可:
配置好环境变量后直接可执行(spark sbin下的脚本文件):
启动主节点(Master): start-master.sh</p><p>启动从节点(Slaves): start-slaves.sh</p><p>
可以看到,在m1上启动了一个名称为Master的进程,在s1、s2上启动了一个名称为Worker的进程,如下所示,我这里也启动了Hadoop集群
可以通过web端口访问spark 界面默认8080端口
http://192.168.0.108:8080/
参考:http://shiyanjun.cn/archives/696.html