HA下的Spark集群工作原理解密.pdf

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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中

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档