Hadoop从诞生至今已经发展成为一个大数据相关的庞大的软件生态系统。这里收集整理了跟Hadoop相关的Apache下的开源项目,以供后续分析研究。
Apache Hadoop
Hadoop是一个大数据处理框架,它可用于从单台到数以千计的服务器集群的存储和计算服务。HadoopDistributed File System (HDFS) 提供了能够跨越多台计算机的大数据存储服务,而MapReduce则提供了一个并行处理的框架。它们的思想源自Google的MapReduce和Google File System(GFS)论文。详细参见:http://hadoop.apache.org/
Apache Ambari
Ambari是一个对Hadoop集群进行监控和管理的基于Web的系统。目前已经支持HDFS,MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop等组件。详细参见:http://ambari.apache.org/
Apache Cassandra
Cassandra是一个分布式的NoSQL数据库。它基于multi-master模式,无单点失败,具有可扩展性。最早由Facebook开发用于存储收件箱等简单格式数据,后开源,被用于Twitter等知名网站。详细参见:http://cassandra.apache.org/
Apache Hive
Hive是 一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类似SQL一样的查询语言HiveQL来管理这些数据。详细参见:http://hive.apache.org/
Apache Pig
Pig是一个基于Hadoop的大数据分析平台,它提供了一个叫PigLatin的高级语言来表达大数据分析程序。详细参见:http://pig.apache.org/
Apache Avro
Avro是一个数据序列化系统。它提供了丰富的数据结构类型,快读可压缩的二进制数据格式,存储持久数据的文件容器,远程过程调用等。详细参见:http://avro.apache.org/
Apache Chukwa
Chukwa是一个用于监控大型分布式系统的的数据采集系统。它构建于Hadoop的HDFS和Map/Reduce框架之上,包含了一系列用于数据监控,分析和展示的灵活的强大工具集。它为日志系统提供了一整套解决方案。详细参见:http://chukwa.apache.org/
Apache Drill
Drill是一个对大规模数据集进行交互式分析的分布式系统。它是Google的Gremel的开源实现。详细参见:http://incubator.apache.org/drill/
Apache Flume
Flume是一个高可靠的分布式海量日志采集,聚合和传输系统。它来源于Cloudera开发的日志收集系统。详细参见:http://flume.apache.org/
Apache HBase
HBase是一个分布式的,面向列的数据库。它基于Hadoop之上提供了类似BigTable的功能。详细参见:http://hbase.apache.org/
Apache HCatalog
HCatalog是基于Hadoop的数据表和存储管理服务,提供了更好的数据存储抽象和元数据服务。详细参见:https://hive.apache.org/hcatalog/
Apache Mahout
Mahout是一个机器学习领域的经典算法库,提供包括聚类,分类,推荐过滤,频繁子项挖掘等。详细参见:http://mahout.apache.org/
Apache Oozie
Oozie是一个工作流调度系统,用于管理Hadoop里的job。它可以把多个Map/Reduce作业组合到一个逻辑工作单元来完成指定目标。详细参见:http://oozie.apache.org/
Apache Sqoop
Sqoop是一个Hadoop和关系型数据库之间的数据转移工具。可将关系型数据库中的数据导入到Hadoop的HDFS中,也可将HDFS中的数据导进到关系型数据库中。详细参见:http://sqoop.apache.org/
Apache ZooKeeper
ZooKeeper是一个针对大型分布式系统的可靠协调系统,提供包括配置维护,名字服务,分布式同步和组服务等功能。Hadoop的管理就是用的ZooKeeper。详细参见:http://zookeeper.apache.org/
Apache Accumulo
Accumulo是一个可靠的,可伸缩的,高性能排序分布式的Key-Value存储解决方案。它基于Google的BigTable设计思路。详细参见:http://accumulo.apache.org/
Apache S4
S4是一个可扩展的,分布式的流数据实时处理框架,最早由Yahoo开发并开源。与Twitter的Storm类似。详细参见:http://incubator.apache.org/s4/
Apache Thrift
Thrift是一个跨语言的服务开发框架。用它可让你的服务支持多种语言的开发,并可用代码生成器对它所定义的IDL定义文件自动生成服务代码框架。它最早由Facebook开发并开源出来。 详细参见:http://thrift.apache.org/
最后,得提一下Apache Nutch开源网络爬虫系统。Hadoop最早是为Nutch服务而诞生的,即为大规模的网络爬虫系统提供分布式存储和计算服务。