关于spark的standalone以及高可用安装配置

本文详细介绍Spark Standalone模式的部署步骤,包括环境搭建、配置、验证及高可用解决方案。针对单点故障问题,提出基于Zookeeper实现的高可用部署策略。

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

StandAlone模式的spark部署:

第一步:获取spark的安装包

1) **下载地址:**

http://spark.apache.org/downloads.html

		1) 选择spark的发布版本 2.2.0
		2) 选择支持的Hadoop版本支持2.7和以后
		3) 上述两部选择好之后,会生成一个下载链接.点击下载链接即可.
		如果我们在公司遇到这样一种情况,公司以前的大数据平台使用的Hadoop版本是2.3.0,Scala版本是2.10
		现在呢,我想使用spark2.0,去官网一看,哎,没有符合的安装包
		怎么办呢?没有别的办法,只能自己手动编译
		1) 下载spark的source code
		2) 根据官网的构建指导进行编译
			1) maven的版本  3.3.9 or newer
			2) jDk环境 1.8+
			3) 执行一个脚本
				./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phadoop-2.3 -Phive -Phive-thriftserver -Pmesos -Pyarn
			*执行脚本之后,等待编译成功即可.但是呢,一般第一次都不会成功的.遇到问题,稳住,不要慌,看清楚是什么问题,解决即可.最后一定可以成功的.*

第二步:spark开发环境的搭建和部署
目录规划
/opt/softwares/ 主要放置各种组件的安装包
/opt/modules/ 主要放置各种安装组件
/opt/datas/ 主要放置一些测试文件
/opt/jars/ 主要放置我们编写的应用程序达成的jar包
节点规划
spark-node01.alps.com Master Worker
spark-ndoe02.alps.com Worker
spark-node03.alps.com Worker

	1) 将安装包上传至/opt/softwares/目录下
	2) 将压缩包解压至/opt/modules/目录下
		tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz -C /opt/modules/
		mv spark-2.2.0-bin-hadoop2.7/ spark-2.2.0
	3) 对spark进行配置(spark-env.sh slaves)
		spark-env.sh
			conf目录下没有这个文件,需要将模板文件进行修改
			mv spark-env.sh.tempalte spark-env.sh
			配置参照 http://spark.apache.org/docs/2.2.0/spark-standalone.html

			#配置Java环境
			export JAVA_HOME=/opt/modules/jdk1.8.0_144
			#配置SPark的Master的地址
			export SPARK_MASTER_HOST=spark-node01.alps.com
			export SPARK_MASTER_PORT=7077
		slaves
			conf/slaves.template,需要修改
			mv slaves.tempalte slaves
			spark-node01alps.com
			spark-node02.alps.com
			spark-node03.alps.com
	4) 将节点1 的spark安装好的环境远程copy至节点2节点3
		scp -r spark-2.2.0/ spark-node02.alps.com:$PWD
		scp -r spark-2.2.0/ spark-node03.alps.com:$PWD
3) 验证spark开发环境是否成功
	1) 启动spark集群
		./sbin/start-all.sh
	2) 查看是否启动成功
		1) 使用jps命令
			在节点1上要有一个Master进程和一个Worker进程,节点2上要有一个Worker进程,节点3上要有一个Worker进程
		2) 访问spark集群的WEBUI界面
			http://spark-nod01.alps.com:8080

spark高可用部署

1) 我们搭建的Standalone模式的spark集群环境有什么问题?
	我要知道一点,Standalone模式的spark集群是Master-slaves架构的,一般都有单点故障的问题
2) 针对这些问题我们有什么解决方案
	如何解决单点故障的问题,很简单,启动两个Master,但是这两个Master有一个是主的,另外一个是备用的.
	1) 基于zookeeper实现spark集群的高可用(生产环境下使用)
	2) 基于文件系统的高可用部署(只能用来测试和试验),手动HA,MAster挂掉之后,会将状态信息保存起来.只需要再次启动Master即可.不推荐使用.
3) 基于zookeeper实现spark的高可用部署
	1) 首先保证要有zookeeper集群,并启动
		zkServer.sh start
	2) 修改spark集群的配置文件
		spark-env.sh
			

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER 
-Dspark.deploy.zookeeper.url=spark-node01.alps.com:2181,spark-node02.alps.com:2181,spark-node03.alps.com:2181 
-Dspark.deploy.zookeeper.dir=/spark2"
	3) 验证高可用
		启动spark集群
		./sbin/start-all.sh 只能启动一台Master,另外一台需要手动启动./sbin/start-master.sh

		kill -9 pid

注意:状态的切换需要1~2分钟.

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 华为移动服务(Huawei Mobile Services,简称 HMS)是一个全面开放的移动服务生态系统,为企业和开发者提供了丰富的工具和 API,助力他们构建、运营和推广应用。其中,HMS Scankit 是华为推出的一款扫描服务 SDK,支持快速集成到安卓应用中,能够提供高效且稳定的二维码和条形码扫描功能,适用于商品扫码、支付验证、信息获取等多种场景。 集成 HMS Scankit SDK 主要包括以下步骤:首先,在项目的 build.gradle 文件中添加 HMS Core 库和 Scankit 依赖;其次,在 AndroidManifest.xml 文件中添加相机访问和互联网访问权限;然后,在应用程序的 onCreate 方法中调用 HmsClient 进行初始化;接着,可以选择自定义扫描界面或使用 Scankit 提供的默认扫描界面;最后,实现 ScanCallback 接口以处理扫描成功和失败的回调。 HMS Scankit 内部集成了开源的 Zxing(Zebra Crossing)库,这是一个功能强大的条码和二维码处理库,提供了解码、生成、解析等多种功能,既可以单独使用,也可以与其他扫描框架结合使用。在 HMS Scankit 中,Zxing 经过优化,以更好地适应华为设备,从而提升扫描性能。 通常,ScanKitDemoGuide 包含了集成 HMS Scankit 的示例代码,涵盖扫描界面的布局、扫描操作的启动和停止以及扫描结果的处理等内容。开发者可以参考这些代码,快速掌握在自己的应用中实现扫码功能的方法。例如,启动扫描的方法如下: 处理扫描结果的回调如下: HMS Scankit 支持所有安卓手机,但在华为设备上能够提供最佳性能和体验,因为它针对华为硬件进行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值