天天看点

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

<a target="_blank"></a>

hadoop: 开源的数据分析平台,解决了大数据(大到一台计算机无法进行存储,一台计算机无法在要求的时间内进行处理)的可靠存储和处理。适合处理非结构化数据,包括hdfs,mapreduce基本组件。

hdfs:提供了一种跨服务器的弹性数据存储系统。

mapreduce:技术提供了感知数据位置的标准化处理流程:读取数据,对数据进行映射(map),使用某个键值对数据进行重排,然后对数据进行化简(reduce)得到最终的输出。

amazon elastic map reduce(emr): 托管的解决方案,运行在由amazon elastic compute cloud(ec2)和simple strorage service(s3)组成的网络规模的基础设施之上。如果你需要一次性的或不常见的大数据处理,emr可能会为你节省开支。但emr是高度优化成与s3 中的数据一起工作,会有较高的延时。

hadoop 还包含了一系列技术的扩展系统,这些技术主要包括了sqoop、flume、hive、pig、mahout、datafu和hue等。

pig:分析大数据集的一个平台,该平台由一种表达数据分析程序的高级语言和对这些程序进行评估的基础设施一起组成。

hive:用于hadoop的一个数据仓库系统,它提供了类似于sql的查询语言,通过使用该语言,可以方便地进行数据汇总,特定查询以及分析。

hbase:一种分布的、可伸缩的、大数据储存库,支持随机、实时读/写访问。

sqoop:为高效传输批量数据而设计的一种工具,其用于apache hadoop和结构化数据储存库如关系数据库之间的数据传输。

flume:一种分布式的、可靠的、可用的服务,其用于高效地搜集、汇总、移动大量日志数据。

zookeeper:一种集中服务,其用于维护配置信息,命名,提供分布式同步,以及提供分组服务。

cloudera:最成型的hadoop发行版本,拥有最多的部署案例。提供强大的部署、管理和监控工具。开发并贡献了可实时处理大数据的impala项目。

hortonworks:使用了100%开源apache hadoop提供商。开发了很多增强特性并提交至核心主干,这使得hadoop能够在包括windows server和azure在内平台上本地运行。

mapr:获取更好的性能和易用性而支持本地unix文件系统而不是hdfs。提供诸如快照、镜像或有状态的故障恢复等高可用性特性。领导着apache drill项目,是google的dremel的开源实现,目的是执行类似sql的查询以提供实时处理。

数据存储

我们的目标是做一个可靠的,支持大规模扩展和容易维护的系统。计算机里面有个locality(局部性定律),如图所示。从下到上访问速度越来越快,但存储代价更大。

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

相对内存,磁盘和ssd就需要考虑数据的摆放, 因为性能会差异很大。磁盘好处是持久化,单位成本便宜,容易备份。但随着内存便宜,很多数据集合可以考虑直接放入内存并分布到各机器上,有些基于 key-value, memcached用在缓存上。内存的持久化可以通过 (带电池的ram),提前写入日志再定期做snapshot或者在其他机器内存中复制。当重启时需要从磁盘或网络载入之前状态。其实写入磁盘就用在追加日 志上面 ,读的话就直接从内存。像voltdb, memsql,ramcloud 关系型又基于内存数据库,可以提供高性能,解决之前磁盘管理的麻烦。

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

hyperloglog &amp; bloom filter &amp; countmin sketch

都是是应用于大数据的算法,大致思路是用一组相互独立的哈希函数依次处理输入。hyperloglog 用来计算一个很大集合的基数(即合理总共有多少不相同的元素),对哈希值分块计数:对高位统计有多少连续的0;用低位的值当做数据块。 bloomfilter,在预处理阶段对输入算出所有哈希函数的值并做出标记。当查找一个特定的输入是否出现过,只需查找这一系列的哈希函数对应值上有没 有标记。对于bloomfilter,可能有false positive,但不可能有false negative。bloomfilter可看做查找一个数据有或者没有的数据结构(数据的频率是否大于1)。countmin sketch在bloomfilter的基础上更进一步,它可用来估算某一个输入的频率(不局限于大于1)。

cap theorem

后Hadoop时代的大数据架构后Hadoop时代的大数据架构
后Hadoop时代的大数据架构后Hadoop时代的大数据架构

根据不同的延迟要求(sla),数据量存储大小, 更新量多少,分析需求,大数据处理的架构也需要做灵活的设计。上图就描述了在不同领域中大数据组件。

说大数据的技术还是要先提google,google 新三辆马车,spanner, f1, dremel

spanner:高可扩展、多版本、全球分布式外加同步复制特性的谷歌内部数据库,支持外部一致性的分布式事务;设计目标是横跨全球上百个数据中心,覆盖百万台服务器,包含万亿条行记录!(google就是这么霸气^-^)

f1: 构建于spanner之上,在利用spanner的丰富特性基础之上,还提供分布式sql、事务一致性的二级索引等功能,在adwords广告业务上成功代替了之前老旧的手工mysql shard方案。

dremel: 一种用来分析信息的方法,它可以在数以千计的服务器上运行,类似使用sql语言,能以极快的速度处理网络规模的海量数据(pb数量级),只需几秒钟时间就能完成。

spark

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

flink

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

使用了一种类似于sql数据库查询优化的方法,这也是它与当前版本的apache spark的主要区别。它可以将全局优化方案应用于某个查询之上以获得更佳的性能。

kafka

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

storm

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

samza

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

linkedin主推的流式计算框架。与其他类似的spark,storm做了几个比较。跟kafka集成良好,作为主要的存储节点和中介。

lambda architecture

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

summingbird

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

nosql

数据传统上是用树形结构存储(层次结构),但很难表示多对多的关系,关系型数据库就是解决这个难题,最近几年发现关系型数据库也不灵了,新型nosql出现 如cassandra,mongodb,couchbase。nosql 里面也分成这几类,文档型,图运算型,列存储,key-value型,不同系统解决不同问题。没一个one-size-fits-all 的方案。

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

cassandra

sql on hadoop

impala

cloudera公司主导开发的新型查询系统,它提供sql语义,能够查询存储在hadoop的hdfs和hbase中的pb级大数据,号称比hive快5-10倍,但最近被spark的风头给罩住了,大家还是更倾向于后者。

drill

apache社区类似于dremel的开源版本—drill。一个专为互动分析大型数据集的分布式系统。

<a href="http://druid.io/" target="_blank">druid</a>

在大数据集之上做实时统计分析而设计的开源数据存储。这个系统集合了一个面向列存储的层,一个分布式、shared-nothing的架构,和一个高级的索引结构,来达成在秒级以内对十亿行级别的表进行任意的探索分析。

berkeley data analytics stack

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

上面说道spark,在berkeley amp lab 中有个更宏伟的蓝图,就是bdas,里面有很多明星项目,除了spark,还包括:

cloudera

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

hadoop老大哥提出的经典解决方案。

hdp (hadoop data platform)

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

hortonworks 提出的架构选型。

redshift

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

amazon redshift是 paraccel一个版本。它是一种(massively parallel computer)架构,是非常方便的数据仓库解决方案,sql接口,跟各个云服务无缝连接,最大特点就是快,在tb到pb级别非常好的性能,我在工作中 也是直接使用,它还支持不同的硬件平台,如果想速度更快,可以使用ssd。

netflix

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

完全基于aws的数据处理解决方案。

intel

后Hadoop时代的大数据架构后Hadoop时代的大数据架构

原文发布时间:2015-04-23

本文来自云栖合作伙伴“linux中国”