您的位置:首页 > 其它

Spark Standalone模式搭建

2017-12-07 11:13 239 查看

Spark三种模式

local

on yarn

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.pu
4000
b 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上也可以查看相应的状态





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

有什么意见或者建议,请联系我,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: