Spark集群配置

本文档详细介绍了在已有的Hadoop集群上配置和部署Spark的步骤,包括在Master和Slave节点安装Scala环境,配置SPARK_HOME,设置slaves文件,通过Yarn管理Spark,并解决可能遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值