大数据科普①(我家科普就长这样)

IBM用4V(Volume大容量、Velocity高速率、Variety多形式、Value高价值)来描述大数据。

IBM用4V(Volume大容量、Velocity高速率、Variety多形式、Value高价值)来描述大数据。

在大数据背景下,数据规模已经由GB级别跨越到PB级别,单机已无法存储与处理如此规模的数据量,只能依靠大规模集群来对这些数据进行存储和处理,所以系统可扩展性成为衡量系统优劣的重要指标。

数据量衡量单位:

1024KB=1MB;

1024MB=1GB;

1024GB=1TB;

1024TB=1PB;

1024PB=1EB;

1024EB=1ZB

(传统并行数据库系统)Scale Up 纵向扩展:不增加机器数量,而是通过改善单机硬件资源配置来解决问题。

(目前主流的大数据存储与计算系统)Scale Out横向扩展:通过增加机器数目来获得水平扩展能力。

Shard/Partition数据分片:将数据进行切分并分配到各个机器中。

Routing数据路由:数据分片后,如何能找到某条记录的存储位置。

对于海量数据,通过数据分片实现系统的水平扩展,而通过数据复制来保证数据的高可用性。

为了保证数据在故障常发的环境下仍然可用,需要将同一份数据复制存储在多处来获得保证。数据复制同时还能增加读操作的 效率,客户端可以从多个备份 数据中选择物理距离较近的进行读取,既增加了读操作的并发性又提高了单次读的读取效率。

1.1数据分片与路由的抽象模型

上图可看作是一个二级映射关系。

第一级映射是key-partition映射,将其数据记录映射到数据分片空间,这往往是多对一的映射关系,即一个数据分片包含多条记录数据。

第二级映射是paritionn-machine映射,其将数据分片映射到物理机器中,这一般也是多对一映射关系,即一台物理机容纳多个数据分片。

在做数据分片时,根据key-partition映射关系将大数据水平切割成众多数据分片,然后再按照partition-machine映射关系将数据分片放置到对应的物理机器上。而在做数据路由时,如要查找某条记录的值Get(key),首先根据key-partition映射找到对应的数据分片,然后再查找partition-machine关系表,就可以知道具体哪台物理机器存储哪条数据,之后即可从相应物理机读取key的对应value内容。

哈希分片和范围分片策略都可以映射到这个抽象模型上。对应哈希分片来说,因为其主要通过哈希函数建立key-partition映射关系,所以只支持“点查询”(Point Query):根据某个记录的主键(key)获得记录内容。而无法支持“范围查询”(Range Query):指定记录的主键范围一次读取多条满足条件的记录。

  • 采用哈希分片的系统:Dynamo、Cassandra、Riak、Voldmort、Membase等
  • 采用范围分片的系统:Google的BigTable、微软的Azure等
  • 同时提供两种方式:Yahoo的PNUTS系统

哈希分片(Hash Partition)

1.Round Robin

就是俗称的哈希取模法,是实际中非常常用的数据分片的方法。设有台物理机,通过下面哈希函数实现数据分片:

对物理机进行从0到K-1的编号,对于以key为主键的某个记录,H(key)的数值即是存储该数据的物理机编号。

优点:实现简单

缺点:缺乏灵活性,若新增一台物理机到分布式存储系统,那么哈希函数就变成:

这样之前已分配的所有数据与存储该数据的物理机之间的映射关系就会被打乱。

2.虚拟桶(Virtual Buckets)

Membase(现更名为Conchbase)是一个内存分布式NoSQL数据库,对于数据分片管理,其提出了虚拟桶的实现方式:

Membase在待存储记录和物理机之间引入了虚拟桶层,所有记录首先通过哈希函数映射到对应的虚拟桶。记录和虚拟桶是多对一的映射关系,即一个虚拟桶包含多条记录信息;第二层映射是虚拟桶和物理机之间的映射关系,同样多对一映射,一个物理机可以容纳多个虚拟桶,其具体实现方式是通过查表来实现的,即Membase通过内存表来管理这层映射关系。

Membase的虚拟桶层其实就是“数据分片”层,一个虚拟桶即一个数据分片。key-partition映射采用哈希函数,partition-machine映射则采用表格管理。

优点:当加入新机器时,将某些虚拟桶从原先分配的机器重新分配给新机器,只需要修改partition-machine映射表中受影响的个别条目就能实现扩展,具有较强的灵活性。

3.一致性哈希(Consistent Hashing)

分布式哈希表(DHT)是P2P(Peer-to-Peer)网络(对等联网)和分布式存储中常见的一项技术,是哈希表的分布式扩展,即考虑在多机分布环境,每台机器负责承载部分数据的情形下,如何通过哈希方式来对数据进行增/删/改/查等数据操作的方法。DHT只是一种技术概念,具体的实现方式有很多种,一致性哈希是其中的一种实现方式。

上图是将哈希空间表示为长度为5的二进制数值(m=5)的“一致性哈希算法示意图。因为m=5,所以其哈希空间可以表达的数值范围为0~31,”一致性哈希“算法将哈希数值空间按照大小组成一个首尾相接的环状序列。对于每台机器,可以根据其IP和端口号经过哈希函数映射到哈希数值空间,这样不同的机器就成了环状序列中的不同节点,而这台机器则负责存储落在一段有序哈希空间内的数据,如N14节点就存储主键经过哈希后落在6~14范围内的键值数据,而N5节点就存储30~31以及0~5范围内的键值数据。同时,每个机器节点记录环中的前趋节点和后继节点地址位置,使之成为一个真正的有向环。

  1. 路由问题

    通过以上方式,可以将海量数据分布到集群中的不同机器节点中,实现数据分片功能。在P2P环境下意味着没有中心管理节点,那么如何根据数据记录的主键以及哈希函数H来定位到记录内容呢?

    一种高效率的查找方式,可以在每个机器节点配置路由表(Finger Table),路由表存储m条路由信息(m为哈希空间的二进制数值比特位长度,上面例子m=5),其中第i项()路由信息代表距离当前节点为的哈希空间数值所在的机器节点编号。比如对于图1-4例子中的N14节点,其对应路由表信息如下:

距离
机器节点 N20 N20 N20 N25 N5

表中第3项代表与N14节点距离为4的哈希值(即14+4=18)落在N20节点上。同理第5项代表与N14节点距离为16的哈希值落在N5节点上。

有了路由表,假设机器节点接收到了主键为key的查询请求,如果不在的管理范围,则下面算法描述了其路由过程;

算法1 一致性哈希路由算法

输入:机器节点发起初始查询请求,查询主键key对应的键值,其中

输出:给出key对应的键值value,或者返回键值不存在的信息

算法:该算法通过不同节点之间发送消息来协作完成。假设当前执行操作的节点为,其初始值是的后继节点为,重复执行下列步骤。

步骤1,判断是否,如果为真,则结束查找,说明key如果存在,则在上,所有发送消息给查找key的值value,将查询结果返回给(注:每个消息都包含消息源的相关消息)。

步骤2,否则,查找其对应的路由表,找到小于j的最大编号节点(如果所有路由表都大于j,则选择第m-1项路由信息内的数据作为),发送消息,请求它代表查找key的值value,此时成为当前节点,继续按照步骤1和步骤2递归进行查找操作。

  1. 加入新节点时的情形

    如果P2P网络中新加入一个机器节点,首先必须能够和目前P2P网络中任意一个节点建立联系,通过按照”路由问题”所述算法查询对应哈希值,可以找到的后继节点,假设的前趋节点为,那么为了能够将加入P2P网络,需要做下面两件事:

    (1) 改变对应已经发生变化的前趋节点和后继节点记录,以体现新的网络架构。

    (2) 数据的重新分片与分布,具体就是将节点中存储的应该由承载的数据(即节点上哈希值小于等于new的记录)迁移到节点上。

    在非并发环境下以上事务较易完成,但是在并发环境下,可能在之间同时有多个新节点要加入,此时为了保证不出问题,完成上述两个任务可以按照下两步操作:

    步骤1:将的后继节点指向,前继节点置为空值NULL

    步骤2:这一步并非专门为新加入节点设立的,而是所有节点周期性自动完成。这一步骤被称为稳定性检测(Stabilization),P2P网络中每个节点会定期执行,通过这个步骤可以完成前趋和后继节点的更新和数据迁移。对于节点来说,稳定性检测算法流程:

    算法2 稳定性检测

    • 步骤1,假设的后继节点,询问其前趋节点答复,一般情况下,如果这样则转步骤4
    • 步骤2,如果介于之间,记录下为其后继节点。
    • 步骤3,令的当前后继节点,其可能是也可能是,这取决于步骤2的判断结果。如果的前趋节点为空或者位于和它的前趋节点之间,那么发消息告诉说就是的前趋节点,将其前趋节点设置为
    • 步骤4,把其部分数据迁移到,即将上哈希值小于等于c的记录迁移到上。
  2. 当节点离开P2P网络

    正常离开的节点在离开前可以做些准备工作,例如通知相应节点更新其前趋和后继节点以及将本身持有数据迁移到后继节点上。

    异常离开往往是机器故障导致,此时故障机器保持的数据可能丢失,为了避免这个额额问题,可以采用将同一份数据在多个机器上保留副本的方式。

  3. 虚拟节点

    上述一致性哈希算法有两个潜在问题:机器节点映射到环状结构的位置是随机的,所以可能会导致机器负载不均衡;另外,在大规模数据中心中,机器异质性很常见,既有高性能、高配置机器,也有老型号的低配置机器,一致性哈希并未考虑这个问题,将所有机器平等看待,所以可能存在低配置机器高负载的情况。Dynamo对一致性哈希进行改造,引入”虚拟节点“概念,将一个物理节点虚拟成若干虚拟节点,分别映射到一致性哈希的环状结构不同位置。

范围分片(Range Partition)

范围分片首先将所有记录的主键进行排序,然后在排好序的主键空间里面将记录划分成数据分片,每个数据分片存储有序的主键空间片段内的所有记录。在实现具体存储系统时,往往保持一个数据分片的映射表,记录表每一项记载数据分片的最小主键及其对应的物理机地址(如上图)。在对记录增/删/改时,查找映射表中就可以找到对应存储这个记录所在的数据分片的物理机,至于数据分片在物理机的管理方式往往采用LSM树。

时间: 2024-10-08 06:02:54

大数据科普①(我家科普就长这样)的相关文章

大数据热词科普(三)

在前面的文章中我们给大家科普了很多大数据的热词内容.当然,和大数据有关的热词有很多,我们在这篇文章中继续给大家讲述一下大数据的热词,希望这篇文章能够给大家带来帮助.好了,现在我们开始进入正题. 首先就是数据可视化,数据可视化,是关于数据视觉表现形式的科学技术研究.其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量.它是一个处于不断演变之中的概念,其边界在不断地扩大.主要指的是技术上较为高级的技术方法,而这些技术方法允许利用图形.图像处理.计算

大数据热词科普(二)

在上一篇文章中我们给大家介绍了大数据的部分热词科普--人工智能.区块链.图灵测试.在这篇文章中我们给大家介绍一下涉及到大数据的回归分析.贪婪算法.MapReduce.数据挖掘.希望这些知识能够给大家带来帮助. 首先我们说的是回归分析,回归分析是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法.运用十分广泛,回归分析按照涉及的变量的多少,分为一元回归和多元回归分析:按照因变量的多少,可分为简单回归分析和多重回归分析:按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析.

大数据热词科普(六)

在前面的文章中我们给大家介绍了不少关于大数据热词的科普知识,从中我们可以发现大数据中的热词之间都是有一些联系的,如果我们学习大数据的话了解这些词汇以后就会不断地激发灵感,下面我们继续给大家介绍一下大数据的热词,希望能够给大家带来帮助. 首先我们给大家介绍的就是随机森林,随机森林经常使用在机器学习中,在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定.随机森林这个术语是1995年由贝尔实验室的所提出的随机决策森林而来的.而随机森林在大数据中的很多方

云计算、大数据和人工智能科普

一般谈云计算的时候会提到大数据.谈人工智能的时候会提大数据.谈人工智能的时候会提云计算……感觉者之间相辅相成又不可分割.但如果是非技术的人员,就可能比较难理解这三者之间的相互关系,所以有必要解释一下. 今天跟大家讲讲云计算.大数据和人工智能.这三个词现在非常火,并且它们之间好像互相有关系. 一般谈云计算的时候会提到大数据.谈人工智能的时候会提大数据.谈人工智能的时候会提云计算……感觉三者之间相辅相成又不可分割. 但如果是非技术的人员,就可能比较难理解这三者之间的相互关系,所以有必要解释一下. 云

大数据热词科普(五)

在前面的文章中我们给大家讲述了很多有关大数据的热词,我们在这篇文章中给大家介绍结构化数据.半结构化数据.非结构化数据.数据清洗.这些词汇都是和数据分析有关的,下面我们就给大家详细地介绍一下这些词的意思. 首先就是结构化数据,所谓结构化数据,简单来说就是数据库.结合到典型场景中更容易理解,比如财务系统.医疗HIS数据库..政府行政审批:其他核心数据库等.基本包括高速存储应用需求.数据备份需求.数据共享需求等等.由此可见结构化数据是十分常见的. 下面我们就给大家说一说半结构化数据,半结构化数据和普通

从技术架构的角度去丰富你的大数据知识

对于大数据的学习,很长一段时间,都觉得非常迷茫.不知道具体该学习什么!进而导致知识的知识点挺多,而自己所会的内容都不能够形成很好的体系,进而为自己的职场加分.而最近一直在学习相关大数的架构知识,进而具体到一个厂商.这样反而自己学的很快,总结一下前段时间的学习,温故而知新!!! 首先,大数据开始做为概念开始进入公众并在实际业务中落地是在13年.从一项技术的发展来看,这项技术会在18年形成一个很好的闭环.而在此期间,不管你是不是大数据的项目,在这五年内,只要冠以大数据名称都可以获益. 所以,大数据第

【科普】#001 大数据相关技术技术

由于不是大数据的开发人员,因此对大数据的知识,也就只是需要简单的理解,大数据有什么技术,都有什么用,这样就够了 大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为了能够更好的架构大数据项目,这里整理一下,供技术人员,项目经理,架构师选择合适的技术,了解大数据各种技术之间的关系,选择合适的语言. 我们可以带着下面问题来阅读本文章: 1.hadoop都包含什么技术2.Cloudera公司与hadoop的关系是什么,都有什么

中科普开科技有限公司大数据告诉你 25岁开始你的朋友会变少

有一个很好玩的"六人定律",说是任何两个人之间,可以通过六个人来建立联系.据说这是一个股票专家做的实验,将一封邮件发送给一个陌生人,并要求陌生人把邮件转发给另一个人,当这封邮件第六次转发的时候,竟然转发回了股票专家手中,经过无数次的实验,从发出到收回平均经过6次转发,也称作六人法则. 还没有通过"六人定律"认识足够多的朋友,现在又有科学家用大数据告诉我:25岁是交朋友的分水岭,因为25岁以后,我们的朋友开始减少.这个是怎么回事呢?下面做个测试看看?http://t.

给你科普下大数据在未来的趋势重要性

大数据的就业领域是很宽广的,不管是科技领域,还是食品产业,零售业等等,都是需要大数据人才进行大数据的处理,以提供更好的用户体验,以及优化库存,降低成本,预测需求.未来大数据产业发展的趋势之一:与云计算.人工智能等前沿创新技术深度融合.大数据.云计算.人工智能等前沿技术的产生和发展均来自社会生产方式的进步和信息技术产业的发展.而前沿技术的彼此融合将能实现超大规模计算.智能化自动化和海量数据的分析,在短时间内完成复杂度较高.精密度较高的信息处理.比如阿里巴巴的电子商务交易平台能在双 11 当天完成每