Hadoop是Apache基金会下的一个开源分布式计算平台,是公认的大数据通用存储和分析平台。Hadoop支持通过简单的编程模型对存储在集群节点上的海量数据进行分布式数据处理。Hadoop可以通过增加节点的方式进行横向扩展,并且不依赖高端硬件,而是在应用层进行检测、处理硬件问题,从而支持在普通的商用硬件集群上,提供高可用的服务。

Hadoop包括:

Hadoop Common为Hadoop其他模块的提供了一些常用的工具,包括系统配置工具Configuration、远程过程调用RPC、序列化机制和Hadoop文件系统抽象FileSystem等。

Hadoop Distributed File System (HDFS™)Hadoop分布式文件系统,是Hadoop体系中数据存储管理的基础。HDFS提供了文件的一致性模型,通过流式数据访问,提供了高吞吐量应用程序数据访问功能。

Hadoop YARNYARN(Yet Another Resource Negotiator的缩写)是Hadoop的集群资源管理系统。Hadoop2中引入YARN,最初是为了改善MapReduce的实现,但它具有足够的通用性,同样可以支持其他的分布式计算模式。

Hadoop MapReduceMapReduce是一种可用于数据处理的编程模型。MapReduce的优势在于处理大规模的数据集。MapReduce任务过程分为两个处理阶段:map阶段和reduce阶段。每阶段都以键值对作为输入和输出。

发展到现在,Hadoop已经成为一个生态系统,Hadoop相关的项目包括:

  • AvroAvro是一个独立于编程语言的数据序列化系统。支持二进制序列化的方式,可以便捷、快速地处理大量数据,动态语言友好。
  • CassandraCassandra是一套开源分布式NoSQL数据库系统。Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。
  • ChukwaChukwa 是一个开源的用于监控大型分布式系统的数据收集系统。
  • HBaseHBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。适合需要实时地随机访问超大规模数据集的场景。
  • HiveHive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
  • SparkApache Spark 是专为大规模数据处理而设计的快速通用的集群计算框架,可用来构建大型的、低延迟的数据分析应用程序。