- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HA下的Spark集群工作原理解密
YY 永久免费课堂每晚 8点 Spark 课程准时开讲。更多 DT 大数据梦工厂 IMF 内容,请关注微信公众号:DT_Spark
第 12课:HA下的 Spark集群工作原理解密
默认情况下,Standalone 的 Spark 集群是 Master-Slaves 架构的集群模式,由一台
master 来调度资源,这就和大部分的 Master-Slaves 结构集群一样,存在着 Master 单点故
障的问题。如何解决这个单点故障的问题呢?Spark 提供了两种方案:基于文件系统的单点
恢复(Single-Node Recovery with Local File system)和基于 zookeeper 的 Standby
Masters(Standby Masters with ZooKeeper)。其中 ZooKeeper 是生产环境下的最佳选择。
ZooKeeper 提供了一个 Leader Election 机制,利用这个机制你可以在集群中开启多
个 master 并使它们都注册到 ZooKeeper 实例,ZooKeeper 会管理使其中只有一个是 Active
的,其他的都是 Standby 的,Active 状态的 master 可以提供服务,standby 状态的则不可以。
ZooKeeper 保存了集群的状态信息,该信息包括所有的 Worker,Driver 和 Application。当
Active 的 Master 出现故障时,ZooKeeper 会从其他 standby 的 master 中选举出一台,然后
该新选举出来的 master 会恢复挂掉了的 master 的状态信息,之后该 Master 就可以正常提供
调度服务。整个恢复过程只需要 1到 2分钟。需要注意的是,在这 1到 2分钟内,只会影响
新程序的提交,那些在 master 崩溃时已经运行在集群中的程序并不会受影响。
下面我们就实战如何配置 ZooKeeper 下的 spark HA。
1. 下载 zookeeper,解压并配置环境变量:
a. 推荐从官网下载 /dyn/closer.cgi/zookeeper/
YY 永久免费课堂每晚 8点 Spark 课程准时开讲。更多 DT 大数据梦工厂 IMF 内容,请关注微信公众号:DT_Spark
b. 解压:tar -xzvf zookeeper-3.4.6.tar.gz
c. 修改环境变量: vim ~/.bashrc:
export ZOOKEEEPER_HOME=/usr/local/spark/zookeeper-3.4.6
export PATH=$ZOOKEEPER_HOME/bin:$PATH
d. source ~/.bashrc
2. 配置 ZooKeeper
a. 首先创建 datadir和 datalogdir,可以用以下命令创建: mkdir data; mkdir logs:
YY 永久免费课堂每晚 8点 Spark 课程准时开讲。更多 DT 大数据梦工厂 IMF 内容,请关注微信公众号:DT_Spark
b. 修改配置文件 zoo.cfg:
如果$ZOOKEEPER_HOME/conf文件夹下没有 zoo.cfg的话,可以使用命令创建一个:
scp zoo_sample.cfg zoo.cfg
vim zoo.cfg
YY 永久免费课堂每晚 8点 Spark 课程准时开讲。更多 DT 大数据梦工厂 IMF 内容,请关注微信公众号:DT_Spark
注:
dataDir 指定的是用来存储内存里数据的快照文件的目录;(在不指定 dataLogDir 时,
该目录也是数据库的更改事务日志的存储目录);
dataLogDir 指定的是数据库的事务日志的存储目录;
server.0,server.1,server.2 指定的是 ZooKeeper 集群的各个节点,这里的数字 012
对应该节点 datadir 下的 myid 文件的内容(在此强调:必须在这里指定所有
ZooKeeper 节点!)。
两个端口 2888 and 3888,前者是 ZooKeeper 各个节点相互连接通信所用,后者是
leader 选举所用。
更详细的信息请参阅:
/doc/trunk/zookeeperStarted.html
YY 永久免费课堂每晚 8点 Spark 课程准时开讲。更多 DT 大数据梦工厂 IMF 内容,请关注微信公众号:DT_Spark
c. 在 datadir下建立myid文件并修改内容为 0:echo 0 myid
注意:myid文件的内容对应于 zoo.cfg中
您可能关注的文档
- EST560-mini6智能后视镜智能远光灯控制CANBUS产品白皮书.pdf
- Estimate of average freeze-out volume in multifragmentation events.pdf
- Estimation+of+the+radiation+exposure+of+a+chest.pdf
- ESW电梯紧急救援说明书.pdf
- Estimation of trajectory data.pdf
- EPON业务配置指导胶片.ppt
- ETA6003 带路径管理开关充电.pdf
- Etch Product Instruction May 21 - Copy.pdf
- Ethical Evaluation of Displays that Adapt to Affect.pdf
- ev3教育版零件清单.pdf
文档评论(0)