key-value store

1. key-value store

     key_value分布式存储系统查询速度快\存放数据量大\支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询.

     数据存储形式为 ,支持put/get操作, 主要包含Dynmo,Bigtable,Cassandra.

2. CAP原则

     consistency(一致性): 即数据一致性,简单的说,就是数据复制到了N台机器, 如果有更新,则N台机器上的数据同时更新;

     availability(可用性): 好的响应性能,主要指的是速度;

     partition tolerance(分区容错性) : 好的分区方法, 节点的可扩展性.

任何分布式系统都不能三者兼顾.

3. Dynmo

(1)Dynmo是亚马逊的key-value模式的存储平台,可用性和扩展性都很好,性能不错.  

(2) 数据分区: 假设数据的key的范围是0-2的64次方,然后将key的范围分成k份, 然后将这k份均匀分配给s个节点,则每个节点负责的分区数就是k/s.

4. bigtable

(1) bigtable是google设计的分布式数据存储系统,用来处理海量数据的一种非关系型的数据库.

(2) bigtable适合大规模海量数据,PB级数据;分布式/并发数据处理,效率高;适合于读操作,不适合写操作;适用于廉价设备;不适合传统关系数据库.

(3)bigtable是一个键值映射, 其键有三维,分别是行键/列键/时间戳; 可以用(row:string,column:string,timestamp:int)->string来表示一条键值对记录

(4) bigtable数据库的架构由主服务器和分服务器构成,将数据库看成是一张大表,可将其划分为许多基本的小表,小表称为tablet,是bigtable中最小的处理单位.主服务器负责将tablet分配到tablet服务器,检测新增和过期的tablet服务器,平衡tablet服务器之间的负载,数据模式改变等等操作.tablet服务器负责处理数据的读写,并在tablet规模过大时进行拆分.

5. cassandra

(1) cassandra是一套开源分布式NoSQL数据库系统.是一个混合型的非关系的数据库;

(2) cassandra是由一堆数据库节点共同构成的一个分布式网络服务,对cassandra的一个写操作会被复制到其他节点上去,对cassandra的读操作,会被路由到某个节点上面去读取;扩展性比较强,只需要在集群中添加节点就行.

6. zookeeper

(1) zookeeper是一个分布式的,开放源码的分布式应用程序i协调服务,是google的chubby一个开源的实现,是hadoop和hbase的重要组件.

(2)zookeeper是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护/域名服务/分布式同步等;

(3) zookeeper的目标就是封装好复杂易出错的关键服务,将简单一用的接口和性能高效/功能稳定的系统提供给用户.

(4) zookeeper的基本运转流程:

  • 选举leader
  • 同步数据
  • 选举leader过程中算法有很多,但达到的选举标准是一致的
  • leader具有最高的zxid
  • 集群中大多数机器得到响应并follow选出的leader



你可能感兴趣的:(hadoop)