横截面数据和面板数据
IDC估计,到2011年,数字宇宙将达到1.8 ZB。
Zettabyte有多大? 这是十亿兆字节。 当前的世界人口为70亿,也就是说,如果您为地球上的每个人提供2500亿GB的硬盘,仍然无法满足存储需求。
许多来源促成大量数据……
1.纽约证券交易所每天产生大约1 TB的新交易数据。
2. Facebook托管约100亿张照片,占用1 PB的存储空间。
3.家谱网站Ancestry.com大约存储2.5 PB的数据。 4. Internet档案存储大约2 PB的数据,并且以每月20 TB的速度增长。 5.日内瓦附近的大型Hard Collider对撞机每年将产生约15 PB的数据。 6.每天人们从传感器,移动设备,在线交易和社交网络创建相当于2.5万亿字节的数据。
Facebook,雅虎! Google发现自己正在以前所未有的规模收集数据。 他们是第一批从数百万用户收集大量数据的大型公司。
他们很快使传统的数据系统和技术(如Oracle和MySql)不堪重负。 即使是使用最大硬件的最好,最昂贵的供应商也几乎无法跟上,当然也无法为他们提供有效分析其数据流入的工具。
在2000年代初期,他们开发了MapReduce , BigTable和Google File System等新技术来处理其大数据。 最初,这些技术是专有的。 但是他们意识到,将这些概念公开化,同时将实现隐藏起来,将使它们受益–因为更多的人将为这些做出贡献,并且所雇用的毕业生将在加入之前对其有很好的了解。
在2004/2005年左右,Facebook,Yahoo! Google开始分享描述其大数据技术的研究论文。
Google在2004年发表了研究论文“ MapReduce:大型集群上的简化数据处理”。
MapReduce是用于处理和生成大型数据集的编程模型以及相关的实现。 用户指定一个处理键/值对以生成一组中间键/值对的映射函数,以及一个归约函数,该归约函数合并与同一中间键关联的所有中间值。 许多现实世界的任务是表达在这个模型中,如图此文件。
以这种功能风格编写的程序会自动并行化,并在大型商用机器集群上执行。 运行时系统负责划分输入数据,安排程序在一组机器上的执行,处理机器故障以及管理所需的机器间通信的细节。 这使没有并行和分布式系统经验的程序员可以轻松利用大型分布式系统的资源。 Google的MapReduce实施可在大型商用机器集群上运行,并且具有高度可扩展性。
典型的MapReduce计算在数千台计算机上处理许多TB的数据。 程序员和系统易于使用。 现已实施了数百个MapReduce程序,每天在Google的集群上执行多达一千个MapReduce作业。
Doug Cutting曾在Nutch (一个开源搜索技术项目,现在由Apache Software Foundation管理)工作,他读过Google发表的这篇论文,以及Google发表的有关Google分布式文件系统[GFS]的另一篇论文 。 他认为GFS将解决他们的存储需求,而MapReduce将解决他们在Nutch以及实施MapReduce和GFS时遇到的扩展问题。 他们将Nutch的GFS实现命名为Nutch分布式文件系统[NDFS]。
Nutch的NDFS和MapReduce实施适用于搜索领域之外,并于2006年2月从Nutch移出,形成了Lucene的独立子项目Hadoop和NDFS,成为HDFS [Hadoop分布式文件系统] –这是一种实现GFS。 在同一时间Yahoo! 扩展了对Hadoop的支持,并雇用了Doug Cutting。
从高层次上讲,这就是HDFS的工作方式。 假设我们有一个300 MB的文件。 [Hadoop在PB和TB的文件中也做得非常好。] HDFS要做的第一件事是将其拆分为块。 目前,HDFS上的默认块大小为128 MB。 拆分为块后,我们将有两个128 MB的块和另一个44 MB的块。 现在,HDFS将使每个块的[n]个数量可以配置为[n]个,例如,n为三个。 HDFS现在将这些副本存储在HDFS群集的不同DataNode中。 我们还有一个NameNode,用于跟踪副本和DataNode。 NameNode知道给定副本所在的位置–每当它检测到给定副本已损坏[DataNode继续在副本上运行校验和]或相应的HDFS节点为dowm时,它将查找该副本在群集中的其他位置,并告诉其他节点'n'X复制副本。 NameNode是一个单点故障–并且两个避免了我们可以拥有与主要节点同步的辅助NameNode-并且当主要节点发生故障时-辅助节点可以控制。 Hadoop项目目前正在实施分布式NameNode。
Google于2006年再次发表了另一篇有关“大表:结构化数据的分布式存储系统”的论文。
Bigtable是用于管理结构化数据的分布式存储系统,该系统旨在跨数千个商用服务器扩展到非常大的PB级数据。 Google的许多项目都将数据存储在Bigtable中,包括Web索引,Google Earth和Google Finance。 这些应用程序在数据大小(从URL到网页到卫星图像)和延迟要求(从后端批量处理到实时数据服务)方面对Bigtable提出了截然不同的要求。 尽管需求千差万别,Bigtable已成功为所有这些Google产品提供了一种灵活的高性能解决方案。 该文描述了Bigtable的,这给客户带来了数据的布局和格式的动态控制提供简单的数据模型,并介绍了Bigtable的设计和实施。
BigTable将两个任意字符串值(行键和列键)和时间戳(因此为三维映射)映射到关联的任意字节数组中。 它不是关系数据库,可以更好地定义为稀疏的分布式多维排序图。
基本上,BigTable讨论了如何在GFS之上构建分布式数据存储。
Hadoop的HBase是BigTable的实现。 HBase是一个分布式的,面向列的数据库,它使用HDFS作为其基础存储,并支持使用MapReduce的批处理式计算和点查询。
亚马逊在2007年发表了有关“发电机:亚马逊的高可用键值商店”的研究论文。
Dynamo是一个高度可用的键值存储系统,Amazon的某些核心服务使用该系统提供“始终在线”的体验。 Apache Cassandra —结合了Dynamo的完全分布式设计和BigTable的数据模型,并用Java编写–由Facebook在2008年开源。这是一种NoSQL解决方案,最初由Facebook开发,并一直支持其收件箱搜索功能,直到2010年末。 Cassandra的最初开发工作由两名从亚马逊招聘到Facebook的Dynamo工程师完成。 但是,Facebook在2010年底放弃了Cassandra,当时他们在HBase上构建了Facebook Messaging平台。
此外,除了使用BigTable的建模方式外,它还具有最终一致性,Gossip协议等属性,该属性是一种服务于受Amazon Dynamo启发的读写请求的主从方式。 重要属性之一是“最终一致性”,这意味着在给定足够长的时间不发送任何更改的情况下,可以预期所有更新最终都会在系统中传播,并且所有副本都是一致的。
在谈论Cassandra时,我使用了“ NoSQL”一词。 NoSQL(有时扩展为“不仅限于SQL”)是一类广泛的数据库管理系统,在某些重要方面与关系数据库管理系统(RDBMS)的经典模型有所不同。 这些数据存储区可能不需要固定的表架构,通常避免联接操作,并且通常水平扩展。
实际上,“ NoSQL”这个名称实际上是在1998年由Carlo Strozzi最初使用的,它是他正在开发的基于文件的数据库的名称。 具有讽刺意味的是,它只是一个没有SQL接口的关系数据库。 这个术语在2009年重新出现,当时Eric Evans用它来命名非关系数据库中的当前激增。
NoSQL数据库分为四类。
1.键值存储:这是基于Amazon的Dynamo论文。
2. ColumnFamily / BigTable克隆:示例包括HBase,Cassandra
3.文档数据库:示例包括CouchDB,MongoDB 4.图形数据库:例如AllegroGrapgh,Neo4j
根据Marin Dimitrov的说法,以下是NoSQL数据库的用例-换句话说,以下是关系数据库运行不佳的情况。
1.海量数据
2.极端查询量
3.模式演变
借助NoSQL,我们获得了诸如大规模可伸缩性,高可用性,更低的成本(与同级别的竞争解决方案相比),可预测的弹性和架构灵活性等优势。
对于应用程序程序员而言,关系数据库和Cassandra之间的主要区别在于它的数据模型 -基于BigTable。 Cassandra数据模型是为大规模分布的数据而设计的。 它以符合ACID的数据惯例进行交易,以获取性能,可用性和运营可管理性方面的重要优势。
如果您想将Cassandra与HBase进行比较,那么这是一个很好的选择。 HBase与Cassandra的另一场辩论在这里 。
参考文献:
- 来自JCG合作伙伴 的BIG数据的小横截面 Facile登录博客上的Prabath Siriwardena。
- MapReduce:大型集群上的简化数据处理
- Bigtable:用于结构化数据的分布式存储系统
- Dynamo:亚马逊的高可用键值存储
- Hadoop分布式文件系统
- ZooKeeper:Internet级系统的无等待协调
- Hadoop / MapReduce / HBase框架及其在生物信息学中的当前应用概述
- Cassandra –分散式结构化存储系统
- NOSQL模式
- 具有Cassandra和HBase的BigTable模型
- LinkedIn技术讲座:Apache Hadoop – PB和TB
- O'Reilly网络广播:Hadoop简介
- Google开发人员日:MapReduce
- WSO2Con 2011 –小组:数据,无处不在的数据:大,小,私有,共享,公共等等
- 使用Apache Cassandra扩展
- HBase vs Cassandra:我们为什么搬家
- NoSQL简史
翻译自: https://www.javacodegeeks.com/2012/03/small-cross-section-of-big-data.html
横截面数据和面板数据