05.26 大数据并不难,hadoop基础工具zookeeper

随着互联网技术的发展,数据的积累日益增多,从而导致人们对数据处理的速度和存储的能力越来越高。简单的依靠高性能主机并不能满足需求,单机性能越高意味着成本越大,因此人们必须去寻找一种大型分布式计算的方式,要实现大型分布式计算,首先就要解决大型服务器之间的通讯和协调问题,而zookeeper,正是为此而生的。

大数据并不难,hadoop基础工具zookeeper

概念:

Zookeeper是一个源代码开发的分布式协调服务,由雅虎创建,是GoogleChubby所开源实现的,它将那些复杂的、容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并提供一系列简单易用的接口给用户使用。

优势:

Zookeeper服务在集群上具有极大优势,具体体现下如下6点:

A顺序一致性

(1)从一个客户端发起一个事务请求,最终会严格按照发起的顺序被应用到Zookeeper中

B原子性

(1)所有事务请求的处理结果,在整个集群的所有机器上应用情况是一致的。

C单一视图

(1)无论客户端,链接到zookeeper集群中哪个服务上,看到的服务端数据都是一样的。

D可靠性

(1)一旦服务端完成了客户端一个事务,并响应了客户端,对服务端的状态改变是会保存下来的。除非另一个事务对它做了修改。

E实时性

(1)zookeeper保证在一段时间内客户端最终一定能从服务端读取最新的数据状态

F高性能

(1)吞吐量很大,一个3台机子的zookeeper集群可以达到12-13万的qps

应用场景

大数据并不难,hadoop基础工具zookeeper

1、数据发布/订阅

数据发布/订阅 顾名思义就是一方把数据发布出来,另一方通过某种手段可以得到这些数据

数据订阅通常有两种方式:推模式和拉模式,推模式一般是服务器主动向客户端推送信息,拉模式是客户端主动去服务器获取数据(通常是采用定时轮询方式),而zookeeper是两种方式相结合,发布者将数据发布到zookeeper集群节点上,订阅者通过一定的方法告诉服务器,我对哪个节点的数据感兴趣,那服务器在这些节点的数据发生变化时,就通知客户端,客户端得到通知后可以去服务器获取数据信息

2、负载均衡

大数据并不难,hadoop基础工具zookeeper

首先、DB在启动的时候先把自己在zookeeper上注册成一个临时节点,zookeeper的节点后面我们会讲到有两种,一种是永久节点,一种是临时节点。临时节点在服务器出现的时候,节点会自动的从zookeeper上删除,那么这样zookeeper上的服务器列表就是最新的可用列表

客户端在需要读写数据库的时候,首先它去zookeeper得到所有可用DB的链接信息(一张列表)

客户端岁建徐泽一个与之建立连接

当客户发现连接不可用的时候,可再从zookeeper上获取可用的DB连接信息,当然也可以在刚获取的那个列表里移除掉不可用的连接后再随机选择一个DB与之连接

3、命名服务

顾名思义,就是提供名称的服务,例如数据库列表的ID,一种是自增的ID,另一种是UUID(898das7da-0231-4shd-ssc8-jels2343js2312),两种ID各自都有缺陷,自动增长的ID局限在单库单表中使用,不能在分布式中使用,UUID可以在分布式中使用但是没有规律难于理解。因此可以借用zookeeper来生成一个顺序增长的、便于理解的、可以在集群使用的ID。

4、分布式协调/通知

在分布式系统中,节点很容易挂掉(不可使用)。因此经常需要知道某个节点是否挂掉,传统做法是ping挂掉主机的IP地址,能ping通则说明正常。在zookeeper中,所有的机器都会注册一个临时节点,因此只需要判断这个节点是否存在,就能判断服务器是否挂掉了。


分享到:


相關文章: