现在的位置: 首页 > 云计算 > 正文

Hadoop的探索历程

2013年03月06日 云计算 ⁄ 共 1545字 ⁄ 字号 评论关闭

在当下的云计算领域,数据的存储和处理模型作为整体的基石,所以想在云计算中不迷失方向,摸着这些基石,按石索骥。

Hadoop本身内置的几个重要基石:

HDFS:提供分布式文件系统:提供系统文件级别的抽象和封装,主从模式的架构,API接口,对应的文件的管理和监控体系。

MapReduce:构建在HDFS之上,当然也可以推广到更加广泛的分布式存储平台上的并行计算模型,以Key-Value作为数据模型,通过Mapper,Reducer阶段,以及内置的Shuffle阶段;在这个模型至少,教育领域已经进行深层次研究和验证,并且在此基础上,进一步将其他相关领域的计算模型可以迁移到MapReduce的模型;

比如:完成矩阵、向量的运算、关系代数的运算

           在传统的关系数据库领域,诸如选择、投影、集合运算(并、交、差、自然连接)等

           进一步推演到OLAP领域的计算模型,分组、聚合运算,矩阵计算

          在企业管理软件领域的工作流系统的计算模型,以及类似图形计算模型的实现机制,都能够在MapReduce计算模型上找到类似的解决方法。

Avro:试想一下,怎么样的数据模型,才能够在大量的并行计算集群中高效的被处理? 数据的模型至少包括两大类:数据的Shema区域、数据区域;通常情况下,一个数据模型这两个部分或者是分离、或者是需要特定的软件才能够识别;将数据模型的模式和数据在同一个序列化中实体中解决,从而可以让任何语言可以处理。JSON和XML都提供了可靠的数据存储;而JSON级别是看不到数据的Schem的;而XML文件的Schema需要xsd来定义;JSON在Web领域应用非常广泛,XML同样扮演很重要的角色。

 Zookeeper:分布式存储和计算模型,需要大量的主、从节点来并行运行,对这些多个节点的管理工作是一个棘手的问题,一份数据的多个分割存储、一个任务的并行拆分,都需要可靠的事务和锁管理来支持,内部隐藏了并发编程的细节和可能难以控制的问题。试想如果自己来实现这些功能,需要涉及的技术难题就够忙活的。

 

在此上述的4大基石的基础上,有能力的就可以编写任意的支持并行处理和计算的产品,而业界针对数据的处理最有影响力的几个方面:

a:数据库领域

大量的基于类似MapReduce计算模型的产品,将SQL作为对外的规范,利用HDFS作为存储实体,以MapReduce作为计算操作实现类似SQL的DDL,DML,数据分析和数据的ETL过程;

b:数据挖掘和数据仓库领域

在基于关系数据库的数据挖掘的产品,已经积累了多年的挖掘模型、算法、工具等;而在Hadoop所提供的一系列工具后,这些厂商肯定捷足先登;如果没有从事该领域的,进入该领域的难度会更大;很简单数据分析工具方面:Oracle,IBM,SAS,Tibco,SAP等的诸多产品,都在不断尝试这方面的新产品。

c:互联网领域的大数据应用

搜索引擎、社交网络、互联网广告、消费客户趋势分析、用户推荐;这些通过Hadoop的基础平台来实现,无疑可以寻找到更多可用的资源。

Pig,Mahout分别在并行计算和机器学习算法领域提供了丰富的算法模型库。

比如:Pig的Pig Latin语言、丰富的用户定义函数库Pbank等提供了大量原始的可重用基础模块。

Mahout: 提供了一系列的算法库:

 

另外对大规模数据的计算模型还有两类处理模型:

Dremel为代表的类似SQL的实时交互性计算模型,追随者Impala和Drill已经提供了业界的开源实现;

Stream流式计算模型的CEP的云时代的,StreamBase,Storm,S4,Spark都是可以值得借鉴的他山之石

 

当然时刻还需要有变化的眼光,将这些融合在一起,来实现核心价值 

 

 

抱歉!评论已关闭.