大数据日知录理解(1)

一、系统拓展性

提高系统拓展性主要分为两种:一种为增加单机数量;一种为提高单机硬件资源配置。我们接触的大多数大数据存储与计算系统一般采用第一种方式来提高拓展性。

二、数据分片与数据复制

数据分片: 之前在Hadoop的学习中也涉及到这个概念,目的是把数据切分;在Hadoop中有一个block块的概念,Hadoop2.7.3中把一个block块设置为128m,如果处理一个文件,这个文件大于128m,它就会被分成多个block块,并分配给多个机器进行操作,实现系统的水平拓展。
**数据复制:**主要通过数据复制来保证数据的高可用性,将数据复制多份,防止一个机器宕机后造成数据丢失,同时,数据复制还可以增加读操作的效率,客户端可以从多个备份数据中选择物理距离较近的进行读取,既增加了读操作的并发性又可以提高单次读的读取效率。
下面是数据分片与数据复制的关系。

三、哈希分片

哈希分片有三种方法:Round Robin,虚拟桶以及一致性哈希方法。
1.Round Robin
俗称的哈希取模法,假如有K台机器,对物理机进行编号从0到K-1,根据哈希函数,对于以key为主键的某个记录,H(key)的数值即是存储该数据的物理机编号,通过这种方式,就将全部数据分配到K台物理机上,在查找某条记录时,也使用同样的哈希函数就可以找到存储相应信息的物理机。但是这种方法缺乏灵活性,如果增加或者减少物理机,映射关系就会全部打乱,需要重新分配。
2.虚拟桶
虚拟桶方法是在索引key和存储节点之间放置一层中间的table,这个table就叫做虚拟桶。他的原理大致是这样的:

keys —- vBuckets —– node (server)

在vBuckts和Node之间,是通过查询table的方式来实现的。
依然是多对一的关系,多个虚拟桶可以指向同一个物理节点。这一部分不是通过Hash函数来映射的,对应关系存储到table中,需要找到是路由到哪台节点上,可以通过查询表来找到,这个表是存储在内存中的,效率比较高。
这样做的好处就是,实现了索引key和存储节点之间映射关系的解耦,如果有新的节点增加神马的,只需要修改内存表就可以了,用不着修改哈希函数。
3.一致性哈希:
一致性性哈希算法要比上述两种算法复杂得多,其核心技术是DHT,就是分布式哈希表,且一致性哈希算法也不唯一,在每台机器上存储一部分的哈希数据。
哈希空间是一个首尾相接的环状序列,把集群中的每台节点的IP和端口号通过哈希函数映射到这个收尾相接的环中,每个节点在环中的位置一定是唯一的。每个节点记录好他的前驱结点和后继结点,那么宏观上来看,这个数据结构就形成了环状。
每台节点存储这个环中从的一部分数据,例如从本节点到下一个节点这区间的数据归这个节点来存储。
在寻找数据的时候,请求客户端向这个分布式哈希集群中的任意一台节点请求数据,节点如果认为这条key在他的管辖范围内,就进行解析,如果不在他的范围内,就扔给自己的后继结点。
实际上,这只是一种最简单的情况,在实际中这样做效率比较差,还有一种叫做一致性哈希路由算法的东西,实现起来也比较复杂,一般也没有必要去自己实现。

四、范围分片

此处没有看懂,po出原文
范围分片首先将所有记录的主键进行排序,然后在排好序的主键空间里将记录划分成数据分片.每个数据分片存储有序的主键空间片段内的所有记录。在实现具体存储系统时,往往保持一个数据分片的映射表,记录表每- -项记载数据分片的最小主键及其对应的物理机地址(如图1-9 所示)。在对记录/增/删/改时,查找映射表就可以找到对应存储这个记录所在数据分片的物理机,至于数据分片在物理机的管理方式往往采用LSM树,这是一种高效写入的数据索引结构,其细节可以参考第3章相关内容。

很多大规模存储系统都支持上述范围分片模式,比如Yahoo的PNUTS和微软的Azure。Google的BigTable也基本遵循上述模式,不同点在于其数据分片映射表不是单层结构,而是组织成类似B+树的层次结构,这样可容纳的数据分片个数获得极大的提升,其具体细节可参照第10章列式数据库10.1节“BigTable" 介绍内容中的元数据管理部分进行对比了解。
与通用数据分片和路由模型对照,范围分片对应的key-partition映射表是通过记录主键排序切割获得的,而partition-machine映射表则是通过直接保持其对应关系来实现的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介 大数据是当前最为流行的热点概念之一,其已由技术名词衍生到对很多行业产生颠覆性影响的社会现象,作为最明确的技术发展趋势之一,基于大数据的各种新型产品必将会对每个人的日常生活产生日益重要的影响。 《大数据日知录:架构与算法》从架构与算法角度全面梳理了大数据存储与处理的相关技术。大数据技术具有涉及的知识点异常众多且正处于快速演进发展过程中等特点,其技术点包括底层的硬件 体系结构、相关的基础理论、大规模数据存储系统、分布式架构设计、各种不同应用场景下的差异化系统设计思路、机器学习与数据挖掘并行算法以及层出不穷的新架构、新系统等。《大数据日知录:架构与算法》对众多纷繁芜杂的相关技术文献和系统进行了择优汰劣并系统性地对相关知识分门别类地进行整理和介绍,将大数据相关技术分为大数据基础理论、大数据系统体系结构、大数据存储,以及包含批处理、流式计算、交互式数据分析、图数据库、并行机器学习的架构与算法以及增量计算等技术分支在内的大数据处理等几个大的方向。通过这种体系化的知识梳理与讲解,相信对于读者整体和系统地了解、吸收和掌握相关的优秀技术有极大的帮助与促进作用。 《大数据日知录:架构与算法》的读者对象包括对NoSQL 系统及大数据处理感兴趣的所有技术人员,以及有志于投身到大数据处理方向从事架构师、算法工程师、数据科学家等相关职业的在校本科生及研究生。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值