Spark Standalone模式搭建

本文详细介绍了如何在虚拟机环境中搭建Spark集群(standalone模式),包括前期准备、安装配置、环境变量设置及启动测试等步骤。

Spark三种模式

  1. local
  2. on yarn
  3. standalone

spark的local模式不多做说明,on yarn模式就是将资源管理交给hadoop的yarn,自己本身只做计算与任务调度。而standalone则是自己本身成为一套系统,有自己的资源管理与调度器。
本篇博客主要讲述在虚拟机中搭建spark 集群(standalone),其主要采用Master/Slave(Worker)结构.



集群安装

1、前期准备

spark-2.1.1-bin-hadoop2.7.tar.gz
master  192.168.10.4    hadoop  jdk             Slave
master1 192.168.10.8    hadoop  jdk             Master
slave1  192.168.10.5    hadoop  jdk zookeeper   Slave
slave2  192.168.10.6    hadoop  jdk zookeeper   Slave
slave3  192.168.10.7    hadoop  jdk zookeeper   Slave

2、这里依旧采用5台虚拟机来模拟搭建Spark集群,所有虚拟机都已安装完成hadoop HA集群、jdk、Zookeeper,且已做好hadoop账户的免密登录与hosts文件修改


3、为了安全起见,又新建一个专门的用户来管理Spark集群

//在root账户下
useradd spark
passwd spark
id spark
su spark

这样就建好并进入spark用户了。


4、5台虚拟机之间的spark账户同样也要做免密登录,这样是为了避免在通过Master节点启动其他Slave节点的时候再次输入其他节点Spark用户登录密码

ssh-keygen -t rsa
//连续回车,知道生成密钥对
//把公钥发送给其他节点
ssh-copy-id -i ~/.ssh/id_rsa.pub spark@master
ssh-copy-id -i ~/.ssh/id_rsa.pub spark@master1
ssh-copy-id -i ~/.ssh/id_rsa.pub spark@slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub spark@slave2
ssh-copy-id -i ~/.ssh/id_rsa.pub spark@slave3
//该文件如果不存在会被创建
~/.ssh/authorized_keys

其他节点一次进行同样的操作


5、将spark-2.1.1-bin-hadoop2.7.tgz拷贝进虚拟机的/usr/local/目录下并解压(在Master1节点上)

tar –xzvf spark-2.1.1-bin-hadoop2.7.tgz
chown -R spark:spark /usr/local/spark

6、配置环境变量

vim ~/.bashrc
export SPARK_HOME=/usr/local/spark
export SCALA_HOME=/usr/local/scala
//在PATH中添加spark变量
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin
//增加完了后,保存退出,让文件生效
source ~/.bashrc

7、安装配置Spark
修改Spark文件中的slaves节点,添加worker节点

cd /usr/local/spark/conf
//如果没有改文件
cp slaves.template slaves 
//修改slaves文件
vim slaves
//文件最后添加
master
slave1
slave2
slave3

配置spark-env.sh,增加一些基础配置

//如果没有该文件
cp spark-env.sh.template spark- env.sh 
//在配置文件中添加
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export JAVA_HOME=/usr/local/jdk1.8.0_144
export SPARK_HOME=/usr/local/spark
export SPARK_EXECUTOR_MEMORY=1G
export SPARK_EXECUTOR_cores=1
export SPARK_WORKER_CORES=1

分别为
设定hadop配置文件的路径
设定JDK文件的路径
设定Spark文件的路径
设定Spark executor的内存大小
设定Spark executor 使用的cpu的核的数量
设定spark worker使用cpu的的核的数量

配置修改spark-default.conf

//如果没有该文件
cp spark-defaults.conf.template spark-defaults.conf 
//在里面添加相关内容
spark.eventlog.enabled=true
spark.history.fs.cleaner.interval=1d
spark.history.fs.cleaner.maxAge=7d
spark.eventlog.dir hdfs://nn/user/spark/history
spark.driver.memory 1g
spark.history.fs.logDirectory hdfs://nn/usr/spark/history
spark.sql.warehouse.dir /user/spark/warehouse

分别为
设定事件日志为true
设定记录删除时间
设定事件日志目录
设定Driver的内存大小
设定历史操作日志保存路径
设定仓库目录


8、将配置好的Spark发送给其他的节点

//发送给其他的节点
scp -r /usr/local/spark master:/usr/local/spark
scp -r /usr/local/spark slave1:/usr/local/spark
scp -r /usr/local/spark slave2:/usr/local/spark
scp -r /usr/local/spark slave3:/usr/local/spark

然后配置其他节点的环境变量配置


至此,Spark 集群就配置完成


9、启动测试集群(Spark 集群自己没有文件存储功能,因此需要借助HDFS来存储eventlog)

//先启动hdfs-dfs.sh
//然后启动spark集群的master节点(master1)
start-master.sh
//启动worker节点(master1)
start-slaves.sh
//jps 查看启动服务

这里写图片描述


输入
192.168.10.8:8080
可以访问Spark 集群的WEB UI
这里写图片描述



测试

使用spark自带的SparkPi来测试一下集群是否正常工作

spark-submit --class org.apache.spark.examples.SparkPi --master spark://master1:7077 --num-executors  2 /usr/local/spark/examples/jars/spark-examples_2.11-2.1.1.jar 5

这里写图片描述


在UI上也可以查看相应的状态
这里写图片描述


这里写图片描述



测试成功,说明集群正常工作!




有什么意见或者建议,请联系我,谢谢。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值