微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > Stay foolish:初学者轻松了解“大数据”

Stay foolish:初学者轻松了解“大数据”

时间:02-15 来源:华通科技 点击:

作为其文件存储系统,HBase位于结构化存储层,HDFS为HBase提供了高可靠性的底层存储支持;用Hadoop MapReduce来处理海量数据,MapReduce为HBase提供了高性能的计算能力;用Hadoop Zookeeper作为协同服务,Zookeeper为HBase提供了稳定服务和failover机制。
  HBase数据模型如下:

  

  Ø Row Key: 行键,Table的主键,Table中的记录按照Row Key排序

  Ø Timestamp: 时间戳,每次数据操作对应的时间戳,可以看作是数据的version number

  Ø Column Family:列簇,Table在水平方向有一个或者多个Column Family组成,一个Column Family中可以由任意多个Column组成,即Column Family支持动态扩展,无需预先定义Column的数量以及类型,所有Column均以二进制格式存储,用户需要自行进行类型转换。

  当Table随着记录数不断增加而变大后,会逐渐分裂成多份splits,成为regions,一个region由[startkey,endkey)表示,不同的region会被Master分配给相应的RegionServer进行管理。

  HBase中有两张特殊的Table,-ROOT-和.META。

  .META.:记录了用户表的Region信息,.META.可以有多个regoin

  -ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region

  Zookeeper中记录了-ROOT-表的location

  Client访问用户数据之前需要首先访问zookeeper,然后访问-ROOT-表,接着访问.META.表,最后才能找到用户数据的位置去访问,中间需要多次网络操作, client端会做cache缓存。

  价值密度低

  Mapreduce是在大数据中挖掘价值的有效方法

  把MapReduce单独列出来,是有必要的,因为它太重要了。MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(化简)",和他们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。

  MapReduce 本身就是用于并行处理大数据集的软件框架。MapReduce 的根源是函数性编程中的 map 和 reduce 函数。它由两个可能包含有许多实例(许多 Map 和 Reduce)的操作组成。Map 函数接受一组数据并将其转换为一个键/值对列表,输入域中的每个元素对应一个键/值对。Reduce 函数接受 Map 函数生成的列表,然后根据它们的键(为每个键生成一个键/值对)缩小键/值对列表。

  具体分步骤描述为:

  1) 在正式执行map函数前,需要对输入进行"分片"(就是将海量数据分成大概相等的"块",hadoop的一个分片默认是64M),以便于多个map同时工作,每一个map任务处理一个"分片"。

  2) 分片完毕后,多台机器就可以同时进行map工作了。map函数要做的事情,相当于对数据进行"预处理",输出所要的"键值"。map对每条记录的输出以《key,value》对的形式输出。

  3) 在进入reduce阶段之前,还要将各个map中相关的数据(key相同的数据)归结到一起,发往一个reducer。这里面就涉及到多个map的输出"混合地"对应多个reducer的情况,这个过程叫做"洗牌"。

  4) 接下来进入reduce阶段。相同的key的map输出会到达同一个reducer。reducer对key相同的多个value进行reduce操作,最后一个key的一串value经过reduce函数的作用后,变成了一个value。

  处理速度快

  MapReduce除了能挖掘大数据价值,同时也是一种分布式/并行计算模型。虽然它是一个很好的抽象,但不能有效地解决计算领域的任何问题。为了满足大数据及时响应的特性,数据流计算的研究被提上了日程。实时计算方向重要的一个模块就是实时数据流计算。

  在数据流模型中,需要处理的输入数据(全部或部分)并不存储在可随机访问的磁盘或内存中,但它们却以一个或多个"连续数据流"的形式到达。数据流不同于传统的存储关系模型,主要区别有如下几个方面:

  流中的数据元素在线到达;

  系统无法控制将要处理的新到达的数据元素的顺序,无论这些数据元素是在一个数据流中还是跨多个数据流;也即重放的数据流可能和上次数据流的元素顺序不一致;

  数据流的潜在大小也许是无穷无尽的;

  一旦数据流中的某个元素经过处理,要么被丢弃,要么被归档存储。因此,除非该数据被直接存储在内存中,否则将不容易被检索。相对于数据流的大小,这是一种典型的极小相关。

  数据流模型中的操作并不排除传统关系型数据的存在。通常,数据流操作将建立数据流和关系型数据的联系。在数据流处理过程中,更新存储关系的同时可能会产生传输处理问题。

近年来,业界出现了不少实时数据流计算系统,虽然没有一个类似于Hadoop的集大成者,但是也都各具

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top