《Hadoop权威指南》---相关框架

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hy_coming/article/details/82949837

hadoop之所以能够这么流行,主要是集成了很多其他优秀的框架,下面就来看看这些有用的框架。

一、Pig

MapReduce使作为程序员的你能够自己定义一个map函数和reduce函数,但是你必须使你的数据处理过程与这一连续的map和reduce模式相匹配,很多时候,数据处理多个MapReduce过程才能够实现,从而使得数据处理过程与该模式匹配可能很困难,但是有了Pig,就能够使用更加丰富的数据结构,这些数据结构往往都是多值和嵌套的,并且还提供了一套更加强大的数据变换操作,包括MapReduce中忽视的连接(join)操作。

Pig为大型数据集的处理提供了更高层次的抽象,主要包括两大部分:

  1. 用于描述数据流的语言,称为Pig Latin
  2. 用于运行Pig Latin程序的执行环境。当前有两个环境:单JVM中的本地环境和hadoop集群上的分布式执行环境

Pig Latin程序由一些列的‘操作’或者‘变换’组成,每个操作或者变换对输入进行数据处理,并产生输出结果,从整体上看,这些操作描述了一个数据流。Pig执行环境把数据流翻译成可执行的内部表示并运行它,在Pig内部,这些变换操作被转换成一系列MapReduce作业,但是作为程序员,你多数情况下并不需要知道这些转换是如何进行的,这样一来,你便可以将精力集中在数据上,而非执行细节上。

二、Hive

Hive是一个构建在hadoop上的数据仓库框架,是应Facebook每天产生的海量新兴社会网络数据进行管理和(机器)学习的需求而产生和发展的,在尝试了不同系统之后,团队选择hadoop来存储和处理数据,因为hadoop的性价比高,同时还可以满足他们的可伸缩性要求。

Hive的设计目的是让SQL技能(但是java编程技能相对较弱)的分析师能够对Facebook存放的HDFS中的大规模数据集执行查询。现在的Hive已经是一个成功的apache项目,很多组织把它作为一个通用的、可伸缩性的数据处理平台。

三、HBase

HBase是一个HDFS上开发的面向列的分布式数据库。如果需要实时的随机访问超大规模的数据集,就可以使用HBase这一hadoop应用。

虽然数据库存储和检索的实现可以选择很多不同的策略,但是绝大部分的办法(特别是关系型数据库技术的变种)不是为大规模可伸缩性的分布处理设计的,很多厂商提供了复制和分区的解决方案,让数据库能够从单个节点上扩展出去,但是这些附加的技术大都是属于“事后”的解决办法,而且非常的难以安装和维护。并且这些解决办法常常要牺牲一些重要的RDBMS(关系型数据库关系系统)特性。在一个“扩展的”RDBMS上,连接、复杂查询、触发器、试图以及外键约束这些功能功能要么运行开销大,要么无法用。

HBase从另外体格方向来解决可伸缩性的问题。它自底向上地进行构建、能够简单的通过增加节点来达到线性扩展。HBase并不是关系熊数据库,它不支持SQL,但是在特定的问题空间里,它能够做RDBMS不能做的事:在脸颊硬件构成的集群上管理着超大规模的稀疏表。

HBase的一个典型的应用就是webtable,一个以网页URL为主键的表,其中包含爬取的页面和页面的属性。webtable非常大,行数可以达到十亿级别。在webtable上连续运行用于批处理分析和解析的MapReduce作业,能够获取相关的统计信息,增加验证的MIME类型列以及供搜索引擎进行索引的解析后的文本内容,同时表格还会被以不同运行速度的“爬取器”速记访问并随机更新其中的列,在用户点击网站的缓存页面时,需要实时地将这些被随机访问的页面提供给他们。

猜你喜欢

转载自blog.csdn.net/hy_coming/article/details/82949837