项目打算使用Hadoop来做MapReduce,先对Hadoop项目有个大致的了解吧..
Hadoop是Apache下面一个开源的分布式计算和存储的平台,其核心是MapReduce和HDFS,其他还有一些子项目是为Hadoop而服务的,包括Hive Hbase Pig Chukwa Zookeeper 等.目前包括两个版本,官方版和Cloudera版,Cloudera是Hadoop的商用版本。
MapReduce是分布式计算的核心,它提供了一种新的计算方式,可以利用廉价的硬件构建性能良好的计算集群,比如可以使用X86集群替代IBM小型机。
HDFS 一个分布式的文件系统,其前身是Apache的Nutch项目的原型,目前成了Hadoop的一部分,通过流式的数据接口,使用DataNode Protocal协议通信,可以部署在低廉的硬件上。主要有三个角色来进行文件系统的管理 NameNode,DataNode,Client.
Common项目是一个工具项目,为Hadoop项目的其他子项目提供支持,包括RPC ,FileSystem,串行化等。
Avro,用于数据序列化
Chukwa 是开源的数据收集系统,用于监控和分析大型分布式系统的数据。
Hive 最早有facebook设计,是建立在Hadoop上的一个数据仓库,可以使用SQL来查询Hadoop中的数据。
Hbase 是一个分布式,面向列的数据库。
Pig是一个对大型数据集进行分析评估的平台,优势是它的结构可以经受高度并行化。
Zookeeper,为分布式应用提供协调服务。
项目主要的模块图解: