pig 币发行量,pig page

  

  人类每天吃饭、睡觉、工作、玩耍,这个过程产生数据――大量的数据。根据IBM公布的资料,人类每天产生2.5字节的数据(一个北京是一亿,一万个北京是一个字节)。这个量相当于从地球到月球堆叠的所有DVD碟片中可以存储并返回的数据总量,包括我们发送的文本,上传的照片,工业传感器的数据,机器之间通讯的所有数据。   

  

  这是现在“大数据”如此流行的主要原因。简单来说,当人们谈论大数据时,他们的意思是能够获得大量数据,分析这些数据,并将其转化为有用的东西。   

  

  大数据究竟是什么?   

  

  大数据涉及以下内容,但远不止这些:   

  

  大量数据,通常来自多个来源。   

  

  在大量数据的基础上,数据类型也是不一样的——通常我们要同时面对多种类型的数据,这些数据是随着时间不断变化的,不需要先转换成特定的格式,也不需要保持一致。   

  

  数据的分析方式允许出于不同目的对同一数据池进行连续分析。   

  

  所有这些都可以快速完成,甚至实时完成。   

  

  在早期,业界提出了一个缩写来描述四个特征中的三个:VVV,代表容量、多样性、不同类型的数据和速度。   

  

  大数据和数据仓库   

  

  VVV缩写省略了一个关键概念,即不需要永久改变(转换)要分析的数据。这种非破坏性分析意味着任何人都可以出于不同的目的分析同一个数据池,并且可以分析从不同来源收集的数据。   

  

  相比之下,数据仓库是专门为特定目的而设计的,它分析特定的数据,并以结构化的方式处理数据并将其转换为特定的格式。在整个过程中,为了特定的目的,基本上需要对原始数据进行完全的加扰——这就是所谓的提取、转换和加载(ETL)。数据仓库的ETL方法只分析特定的数据。这适用于所有数据都必须在您的工作系统中的情况,但在当今互联网连接的世界中,数据来自四面八方,这不是很适用。   

  

  但是,不要以为大数据会让数据仓库过时。大数据系统可以让你非常方便的处理非结构化数据,但是你得到的查询结果类型远没有数据仓库复杂。毕竟数据仓库的目的是深度分析数据。它之所以能做到这一点,是因为它将所有数据转换为一致的格式,使您能够为深度挖掘和类似的工作建立数据集。数据仓库供应商花了数年时间来优化他们的查询引擎,并在典型的业务环境中回答问题。   

  

  大数据使您能够分析来自多个数据源的大量数据,但分辨率较低。因此,在未来,我们将使用传统的数据仓库和新的方法。   

  

  大数据背后的技术突破   

  

  为了实现大数据的四大特征——巨大的体量、多种类型、非破坏性使用和速度,它需要技术突破,包括开发分布式文件系统(Hadoop),这是一种方便快捷的理解不同数据的方式(最早来自Google的MapReduce,最近是Apache Spark),以及按需访问和移动数据的云/互联网基础设施。   

  

  直到大约十年前,一次处理的数据量还比较少。(嗯,那时候我们都觉得数据仓库非常庞大。自从互联网产生数据并将数据连接到世界各地以来,情况发生了巨大变化。)数据存储数量和位置有限,计算能力不足,处理来自多个来源的不同数据格式的能力有限,使得完成数据处理任务几乎不可能。   

  

  然后,大约在2003年,谷歌的研究人员开发了MapReduce。这种编程技术首先将数据映射为一系列的键/值,计算相似的键值,将其简化为单个值,然后在数百或数千台低成本的机器上并行处理每一批数据,从而简化大规模数据集的处理。这种巨大的并行功能使谷歌能够从越来越多的数据中更快地获得搜索结果。   

  

  2003年前后,谷歌实现了两项突破,使得大数据的发展更进一步。Hadoop由两个关键服务组成:   

  

  Hadoop分布式文件系统(HDFS)用于可靠地存储数据。   

  

  称为MapReduce的技术用于高性能并行数据处理。   

  

  Hadoop运行在一个商业的无共享服务器集群上。可以随意在Hadoop集群中添加或删除服务器;系统将检测并修复任何服务器上的硬件或系统问题。换句话说,Hadoop是自我修复的。无论系统被修改或出现故障,它都可以提供数据并运行大规模和高性能的处理工作。   

  

  虽然Hadoop提供了一个数据存储和并行处理的平台,但真正的价值来自于技术的附加组件、交叉集成和定制实现。为此   

,Hadoop提供了子项目,这些子项目为平台增加了功能和新特性:

  

Hadoop Common:支持其他Hadoop子项目的公共实用程序。

  

Chukwa:一个用于管理大型分布式系统的数据采集系统。

  

Hbase:一个可扩展的分布式数据库,为大型表提供结构化数据存储支持。

  

HDFS:一种分布式文件系统,支持对应用数据的大吞吐量访问。

  

Hive:提供数据摘要和即席查询的数据仓库基础设施。

  

MapReduce:计算集群上大数据集分布式处理的软件框架。

  

Pig:并行计算的高级数据流语言和执行框架。

  

ZooKeeper:分布式应用的高性能协调服务。

  

大部分Hadoop平台的实现应至少包括其中的一些子项目,因为它们通常是开发大数据所必需的。例如,大多数企业选择使用HDFS作为主要的分布式文件系统,把HBase作为数据库,它可以存储数十亿条数据。使用MapReduce或者最近的Spark几乎是必须的,因为它们提高了Hadoop平台的速度和敏捷性。

  

采用MapReduce,开发人员可以在分布式处理器集群或者单机上开发并行处理大量非结构化数据的程序。MapReduce框架分为两个功能区:

  

Map,这一功能把工作分发到分布式集群中的不同节点上。

  

Reduce,这一功能将工作排序并把结果解析为单个数值。

  

MapReduce的主要优点之一是它是容错的,这通过监视集群中的每个节点来实现;每个节点都需要定期报告完成的工作和状态更新。如果一个节点保持沉默的时间比预期的间隔长,那么主节点会发出通知并将工作重新分配给其他节点。

  

Apache Hadoop是以MapReduce为核心的一种开源框架,两年后才开发出来。Hadoop最初是用来索引现在不太常用的Nutch搜索引擎的,现在几乎所有的主要行业都使用Hadoop来进行多种大数据工作。在Hadoop的分布式文件系统和YARN(Yet Another Resource Negotiator,另一种资源调度器)的支持下,该软件使用户能够处理分布在数千台设备上大量的数据集,就好像它们都在一台巨大的机器上一样。

  

2009年,加州大学伯克利分校的研究人员开发了Apache Spark来替代MapReduce。Spark使用内存存储进行并行计算,因此,它比MapReduce快100倍。Spark可以作为一个独立的框架或者在Hadoop内部运行。

  

即使使用Hadoop,您仍然需要一种方法来存储和访问数据。这通常是通过MongoDB、CouchDB或者Cassandra等NoSQL数据库来实现的,它们专门处理分布在多台机器上的非结构化或者半结构化数据。对于数据仓库,大量不同类型的数据融合成统一的格式,并存放在一个数据存储中,与数据仓库不同,这些工具不会改变数据的根本性质或者位置――电子邮件仍然是电子邮件,传感器的数据仍然是传感器的数据,而且可以存储在任何地方。

  

然而,把体量巨大的数据存储在机器集群上的NoSQL数据库中,如果您不使用这些数据,那就体现不出这种方式的优势所在。而这才是大数据分析的用武之地。Tableau、Splunk和Jasper BI等工具支持您解析数据,以识别模式、提取含义,并揭示出新的深度分析结果。您由此要开展的工作会因您的需求而有所不同。

  

(InfoWorld的执行编辑Galen Gruman、InfoWorld的特约编辑Steve Nunez、自由撰稿人Frank Ohlhorst和Dan Tynan均为本文做出了贡献。)

  

编译: Charles

相关文章