Spark是一个快速、通用的计算集群框架,它的内核使用Scala语言编写,它提供了Scala、Java和Python编程语言high-level API,使用这些API能够容易地开发并行处理的应用程序。
在已经搭建完成Hadoop集群(http://dblab.xmu.edu.cn/blog/install-hadoop-cluster/ )和在Master节点安装了Spark(http://dblab.xmu.edu.cn/blog/spark-quick-start-guide/ )基础上我们进行下述安装步骤:
Master:192.168.235.133 用户名为hadoop
Slave:192.168.235.134 用户名为hadoop
Spark Hadoop Scala 均安装在/usr/local 路径下
1. 在Master节点下载安装配置Scala:
sudo tar -zxf ~/Downloads/scala-2.10.3.tgz -C /usr/local/
cd/usr/local
sudo mv./ scala-2.10.3/ ./scala
sudo chown -R hadoop:hadoop ./scala
在~/.bashrc中增加环境变量SCALA_HOME,并使之生效:
exportSCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin
source ~/.bashrc
2. 在~/.bashrc中增加环境变量SPARK_HOME,并使之生效:
exportSPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
3. 在Master上配置Spark,修改spark-env.sh配置文件:
已经追加过:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
在末尾继续追加一行, 将SCALA_HOME配置为实际指向路径:
export SCALA_HOME=/usr/local/scala
4. 修改conf/slaves文件,将计算节点的主机名添加到该文件,一行一个:
cd /usr/local/spark
cp ./conf/slaves.template ./conf/slaves
e.g.
Master
Slave1
Slave2
5. Master节点将Spark以及Scala的程序文件和配置文件拷贝分发到从节点机器上:
scp ~/.bashrc hadoop@Slave:~/.bashrc
cd /usr/local
tar -zcf ~/spark.master.tar.gz ./spark
tar -zcf ~/scala.master.tar.gz ./scala
cd ~
scp ./spark.master.tar.gz Slave:/home/hadoop
scp ./scala.master.tar.gz Slave:/home/hadoop
6. 在Slave节点让该环境变量生效:
source ~/.bashrc
sudo tar-zxf ~/spark.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/spark
sudo tar-zxf ~/scala.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/scala
7. Master节点先启动Hadoop的dfs和yarn,然后再启动Spark:
start-dfs.sh
start-yarn.sh
cd /usr/local/spark
sbin/start-all.sh
# 此处必须在spark目录下执行sbin/start-all.sh。由于Hadoop已经事先将环境变量配置
# 完成,在任意目录下直接执行start-all.sh将会被认为是执行Hadoop目录sbin文件夹
# 下的start-all.sh即执行start-dfs.sh和start-yarn.sh
# 而不会执行spark下的start-all.sh,所以我们必须指定目标文件。
# 同理在关闭相关进程时也需要指定sbin/stop-all.sh
# 再在任意目录下直接执行stop-all.sh即可关闭所有进程
Yarn + Spark
Master节点这里既是NameNode也是DataNode 既是Master也是Worker
Yarn + Spark
Slave节点只能是DataNode和Worker
8. 在Master节点8080端口进行检视
还可能出现的问题:
1. 如进程无法关闭:
报错:
noorg.apache.spark.deploy.master.Master to stop
no org.apache.spark.deploy.worker.Worker to stop
参见解决方案:
http://www.linuxidc.com/Linux/2015-08/120938.htm
2. Apache官方集群配置文档:
http://spark.apache.org/docs/latest/cluster-overview.html