Spark的体系结构与安装部署以及Spark HA的实现、Spark Shell的操作

1.Spark的体系结构

官方的一张图:
这里写图片描述
这里的描述很笼统,只说除了互相的调用关系。

这是自己找的一张图:
这里写图片描述
注意:sc对象是spark自己创建的,每次启动spark的时候都会初始化。不需要继续创建,是程序的入口。

2.Spark的安装和部署

2.1 安装
Spark的官网:http://spark.apache.org/downloads.html
注意:下载的时候,一定要看清版本!!!!!
这里写图片描述

下载到本地,上传到虚拟机中(XShell和SecureCRT都可以),解压

tar -zxvf spark-2.2.1-bin-hadoop2.7.tgz -C /usr/local/

2.2. Spark的安装部署方式有以下几种模式:
 Standalone
 YARN
 Mesos
 Amazon EC2
2.3 部署

cd /usr/local/spark-2.2.1-bin-hadoop2.7/conf
mv spark-env.sh.template spark-env.sh
mv slaves.template slaves
vi spark-env.sh

在文件末尾添加:

export JAVA_HOME=/usr/local/jdk1.8.0_171
export SPARK_MASTER_HOST=hadoop-master
export SPARK_MASTER_PORT=7077

修改slaves文件,添加Hadoop系统的子节点
将文件发送给各个子节点

scp -r spark-2.2.1-bin-hadoop2.7 hadoop-salve02:/usr/local/
scp -r spark-2.2.1-bin-hadoop2.7 hadoop-salve03:/usr/local/

启动Spark:在spark的安装目录下,sbin/start-sll.sh
注意:一定要加上sbin,不然的话系统会认为是启动hadoop集群的命令。
检查是否启动成功,可通过hadoop-master:8080访问。

3.Spark HA 的实现

(*)基于文件系统的单点恢复
主要用于开发或测试环境。当spark提供目录保存spark Application和worker的注册信息,并将他们的恢复状态写入该目录中,这时,一旦Master发生故障,就可以通过重新启动Master进程(sbin/start-master.sh),恢复已运行的spark Application和worker的注册信息。
基于文件系统的单点恢复,主要是在spark-en.sh里对SPARK_DAEMON_JAVA_OPTS设置
配置参数 参考值
spark.deploy.recoveryMode 设置为FILESYSTEM开启单点恢复功能,默认值:NONE
spark.deploy.recoveryDirectory Spark 保存恢复状态的目录
参考:
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=FILESYSTEM -Dspark.deploy.recoveryDirectory=/root/training/spark-2.2.1-bin-hadoop2.7/recovery"

测试:
1、在hadoop-master上启动Spark集群
2、在hadoop-master上启动spark shell
	MASTER=spark://hadoop-master:7077 spark-shell
3、在hadoop-master上停止master
	stop-master.sh
4、在hadoop-master上重启master
		start-master.sh

(*)基于Zookeeper的Standby Masters
注意:前提是zookeeper能正常启动且已经启动!!!
ZooKeeper提供了一个Leader Election机制,利用这个机制可以保证虽然集群存在多个Master,但是只有一个是Active的,其他的都是Standby。当Active的Master出现故障时,另外的一个Standby Master会被选举出来。由于集群的信息,包括Worker, Driver和Application的信息都已经持久化到ZooKeeper,因此在切换的过程中只会影响新Job的提交,对于正在进行的Job没有任何的影响。
配置参数
参考值
spark.deploy.recoveryMode 设置为ZOOKEEPER开启单点恢复功能,默认值:NONE
spark.deploy.zookeeper.url ZooKeeper集群的地址
spark.deploy.zookeeper.dir Spark信息在ZK中的保存目录,默认:/spark
 参考:
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=bigdata12:2181,bigdata13:2181,bigdata14:2181 -Dspark.deploy.zookeeper.dir=/spark"

另外每个节点上需要将spark-env.sh文件中的SPARK_MASTER_HOST和SPARK_MASTER_PORT删除。

4.使用Spark Shell

spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下用scala编写spark程序。
(*)启动Spark Shell:spark-shell
也可以使用以下参数:
参数说明:
–master spark://hadoop-master:7077 指定Master的地址
–executor-memory 2g 指定每个worker可用内存为2G
–total-executor-cores 2 指定整个集群使用的cup核数为2个

例如:
spark-shell --master spark://hadoop-maste:7077 --executor-memory 2g --total-executor-cores 2
(*)注意:
如果启动spark shell时没有指定master地址,但是也可以正常启动spark shell和执行spark shell中的程序,其实是启动了spark的local模式,该模式仅在本机启动一个进程,没有与集群建立联系。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值