spark集群安装与配置

Spark有三种运行模式,分别为:

local模式-只运行在本地,相当于伪分布式

standalone模式-这种模式只需要安装Spark即可,使用自带的资源管理器

Spark on yarn/mesos模式-这种模式Spark将使用yarn/mesos作为资源管理器

一般来说,standalone适合只想体验一把Spark集群的人,如果想将Spark应用于生产环境,还需要借助第三方的资源调度模块来优化Spark的资源管理。

Spark以哪一种模式运行可以在执行spark-shell或者spark-submit命令时通过指定 --master参数来设置,如果不设置默认以local方式单机运行。


本次记录的是Spark 的安装与配置,使用的是基本的配置选项,如果想了解Spark的更多配置选项来优化Spark集群的性能可以参阅官方文档或者关注后续文章。

由于我想在Spark安装完成后运行在yarn之上,所以在配置过程中添加了一些hadoop的配置,如果想使用Spark on yarn需要安装Hadoop2.0以及以上版本。本例是在Hadoop2.4.0平台搭建,当然,如果仅是做学习体验用只使用local或standalone模式可以不用安装Hadoop。

关于Hadoop集群的安装部署,请参考:http://blog.csdn.net/u013468917/article/details/50965530

本次在上述双节点Hadoop集群的基础上安装Spark。两个节点分别为:
master 192.168.1.131
slave1 192.168.1.125

一、安装Scala

Spark是由Scala语言编写的,所以要想在机器上运行Spark就必须先安装Scala。下载地址: http://www.scala-lang.org/download/
用户需要根据所要安装的Spark版本选择对应的Scala版本。这点在Spark官网上会有说明。这次安装的是Spark1.6.1版本,下载的Scala版本为2.10.4
下载完成后将Scala-2.10.4.tgz上传至linux主机中
解压:
tar -zxvf Scala-2.10.4.tgz -C /cloud/


配置环境变量:
在/etc/profile文件中添加:
export SCALA_HOME=/cloud/scala-2.10.4
export PATH=${SCALA_HOME}/bin:$PATH

保存退出,记得 source /etc/profile

二、安装Spark

进入官网下载Spark程序包,下载地址: http://spark.apache.org/downloads.html
本次示例以Spark1.6.1版本为例:
下载spark-1.6.1-bin-hadoop2.tgz
解压:

tar-zxvf spark-1.6.1-bin-hadoop2.tgz -C /cloud

接下来修改Spark的配置文件,这里对Spark进行简单配置,其他更详细的配置可以参考: http://spark.apache.org/docs/1.6.1/configuration.html
1、修改conf/spark-env.sh,在文件中添加以下参数:
export SCALA_HOME=/cloud/scala-2.10.4
export JAVA_HOME=/cloud/jdk1.7.0_80
export SPARK_WORKER_MEMORY=6g
export SPARK_MASTER_IP=192.168.1.131
export MASTER=spark://192.168.1.131:7077

说明:
参数SPARK_WORKER_MEMORY用于指定在worker可用最大内存。这里分配了6GB,读者可以根据自己机器的配置自行分配,但是要为操作系统和其它服务预留足内存。
参数SPARK_MASTER_IP和MASTER根据自己主机的ip修改即可。
2、修改conf/slaves文件:
本次示例集群有两个节点,一个master节点和一个slave1节点。所以在slaves文件中只需要添加:
slave1

说明:
slave1为节点名,也可以填worker节点的ip地址。


接下来同步至slave节点:
首先,同步scala。
scp -r /cloud/scala-2.10.4username@master:/cloud

然后是spark:
scp -r /cloud/spark-1.6.1-bin-hadoop2/ username@master:/cloud/

最后修改slave1上的 /etc/profile 文件和master节点一致。记得source /etc/profile。
如果有多个从节点,这样同步会很麻烦,可以参考: http://blog.csdn.net/u013468917/article/details/50977666用pssh批量操作。


三、启动Spark

如果需要使用Spark on yarn,需要在启动spark之前确保hadoop已经启动。
spark启动命令在Spark根目录下的sbin目录下。
cd /cloud/spark-1.6.1-bin-hadoop2/sbin
./start-all.sh

正常情况下,master节点会出现master进程,可以用jps查看:
#jps
23526 Jps
2112 Master
7235 NameNode
7598 SecondaryNameNode
7569 ResourceManager
worker节点会有worker进程:
#jps
23489 Jps
1258 Worker
1364 DataNode
24587 NodeManager


四、关闭Spark
在Master节点:
/cloud/spark-1.6.1-bin-hadoop2/sbin/stop-all.sh



问题记录:
初次安装hadoop时参考网上文章,没有提到要配置HADOOP_CONF_DIR或者YARN_CONF_DIR变量。如果没有配置这两个变量,hadoop可以正常运行,hadoop上的hive也可以运行。但是spark会报错。所以需要确认添加了HADOOP_CONF_DIR或者YARN_CONF_DIR环境变量。配置示例:$HADOOP_HOME/etc/hadoop

你可能感兴趣的:(BigData-器)