c语言sscanf函数的用法是什么
247
2022-11-17
大数据学习笔记-------------------(7)
第二部分 ZOOKEEPER学习
该部分,主要对Spark学习笔记进行记录,学习资料翻译自《zookeeper_tutorial》
该部分为7个章节来学习ZOOKEEPER:
Ø 第6章 zookeeper介绍
Ø 第7章 zookeeper基本组成与工作流程
Ø 第8章 zookeeper 选举算法
Ø 第9章 zookeeper安装
Ø 第10章 zookeeper 命令行接口
Ø 第11章 zookeeper应用程序接口
第6章 zookeeper介绍
6.1 zookeeper简介
ZooKeeper是一个用来管理大组主机的分布式协调服务。协调和管理分布式环境中的服务是一个复杂的过程。ZooKeeper用其简单的架构和API解决了这个问题。ZooKeeper使开发人员只专注于核心应用程序逻辑,而无需担心应用程序的分布式特性。
“雅虎”为了能简单和健壮的访问的应用程序,于是乎创建了ZooKeeper框架。后来,Apache ZooKeeper变成了组织服务的标准被Hadoop、HBase、其他分布式架构使用。例如,Apache HBase使用ZooKeeper跟踪分布式数据的状态。
6.2 分布式应用程序
分布式应用程序通过它们之间协调手段运行在网络中的多个系统上以快速和有效的方式来完成特定的任务上在给定时间(同时)内。通常,复杂和耗时的任务,由非分布式应用程序(在一个单一的系统中运行的)来完成将需要几个小时,由分布式应用程序可以在几分钟内完成。
通过配置在多个系统运行的分布式应用程序可以进一步降低完成任务的时间。正在运行的分布式应用程序中的一组系统被称为集群(Cluster)与集群中运行的每台机器被称为一个节点(Node)。
分布式应用程序有两部分,服务器(Server)和客户端(Client)应用程序。服务器应用程序实际上是分布式的,并有一个共同的接口,以至于客户端可以连接到集群中的任何服务器,并得到同样的结果。客户端应用程序是与分布式应用程序交互的工具。如图所示:
6.2.1分布式应用程序的优点
l 可靠性(Reliablity) - 一个或几个系统的故障不会使整个系统出现故障。
l 可扩展性(Scalability) - 在无downtime状态下在应用程序配置中添加更多的机器来优化性能
l 透明度(Transparency) - 隐藏系统的复杂性并以单一的实体/应用程序显示。
6.2.2 分布式应用程序面临的挑战
l 竞争条件(Race condition) - 两个或多个机器试图执行特定任务,这个任务实际上仅需要一台机器在任何给定的时间内完成。例如,共享的资源只能由一台机器在任何特定时间修改。
l 死锁(Deadlock) - 两个或多个操作无限期的等待对方完成
l 不一致(Inconsistency) - 数据的部分失效
6.3 ApacheZookeeper意味着什么?
ApacheZookeeper是使用一个集群(节点组)用健壮的同步技术来协调和维持它们之间共享数据的服务。Zookeeper本身是一个为编写一个分布式应用提供服务的分布式应用程序。
由Zookeeper提供的公共服务如下:
Ø 命名服务---给集群中的节点命名。
Ø 配置管理----为加入的节点提供系统最新和最多的配置信息
Ø 集群管理----实时监控集群中加入/离开的节点和节点状态
Ø 选择leader------选择一个节点作为leader来协调管理集群节点
Ø 锁定和同步服务----锁定数据然后修改它。这种机制可以帮助系统自动故障恢复,当连接其他的分布式应用程序时,如Apache HBase。
Ø 可靠性强的数据注册表 - 依然有可用性数据,即使一个或几个节点都关闭
6.4 Zookeeper优点
下面是使用的ZooKeeper的优点:
Ø 简单分布式协调过程
Ø 同步 - 互斥排除和服务器进程之间的合作。这个过程有助于Apache HBase的配置管理。
Ø 有序消息
Ø 序列 - 根据特定的规则进行编码数据。确保应用程序运行一致。这种方法可以在MapReduce用于协调队列以执行正在运行的线程。
Ø 可靠性
Ø 原子 - 数据传输成功或完全失败,而没有局部的事务。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~