Apache Hadoop是一款支持数据密集型分布式应用并以Apache 2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应用程序。Hadoop是根据Google公司发表的MapReduce和Google文件系统的论文自行实现而成。
Hadoop框架透明地为应用提供可靠性和数据移动。它实现了名为MapReduce的编程范式:应用程序被分区成许多小部分,而每个部分都能在集群中的任意节点上运行或重新运行。此外,Hadoop还提供了分布式文件系统,用以存储所有计算节点的数据,这为整个集群带来了非常高的带宽。MapReduce和分布式文件系统的设计,使得整个框架能够自动处理节点故障。它使应用程序与成千上万的独立计算的电脑和PB级的数据。现在普遍认为整个Apache Hadoop“平台”包括Hadoop内核、MapReduce、Hadoop分布式文件系统(HDFS)以及一些相关项目,有Apache Hive和Apache HBase等等。
核心子项目:
Hadoop Common:在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common。hadoop大多模块操作的公共工具集合。
HDFS:Hadoop非常高效高吞吐量的分布式文件系统(Distributed File System)-HDFS(Hadoop Distributed File System)。
YARN:一个集群作业调度和资源管理的框架。
MapReduce:基于YARN的分布式计算框架。
配合常用子项目:
Ambari: 配置,管理和监控的Apache Hadoop集群基于Web的工具,其中包括Hadoop的Hadoop HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig and Sqoop。
Apache Avro:新的数据序列化格式与传输工具,将逐步替换Hadoop原有的IPC机制。
Cassandra:Apache Cassandra(社区内一般简称为C*)是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与AmazonDynamo的完全分布式架构于一身。Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩展性和性能,被 Apple, Comcast,Instagram, Spotify, eBay, Rackspace, Netflix等知名网站所采用,成为了一种流行的分布式结构化数据存储方案。
Chukwa: 什么是 Chukwa,简单的说它是一个数据收集系统,它可以将各种各样类型的数据收集成适合 Hadoop 处理的文件保存在 HDFS 中供 Hadoop 进行各种 MapReduce 操作。Chukwa 本身也提供了很多内置的功能,帮助我们进行数据的收集和整理。
Apache HBase:分布式NoSQL列数据库,类似谷歌公司BigTable。
Pig: Hadoop 的普及和其生态系统的不断壮大并不令人感到意外。Hadoop 不断进步的一个特殊领域是 Hadoop 应用程序的编写。虽然编写 Map 和 Reduce 应用程序并不十分复杂,但这些编程确实需要一些软件开发经验。Apache Pig 改变了这种状况,它在 MapReduce 的基础上创建了更简单的过程语言抽象,为 Hadoop 应用程序提供了一种更加接近结构化查询语言 (SQL) 的接口。因此,您不需要编写一个单独的 MapReduce 应用程序,您可以用 Pig Latin 语言写一个脚本,在集群中自动并行处理与分发该脚本。
Apache Hive:构建于hadoop之上的数据仓库,通过一种类SQL语言HiveQL为用户提供数据的归纳、查询和分析等功能。Hive最初由Facebook贡献。
Apache Mahout:机器学习算法软件包。
Spark: Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
Tez: 基于YARN的一个复杂数据非循环任务管理和处理的编程框架。他提供强大而灵活的引擎来执行DAG(有向无环图)的批处理和交互式任务。
Apache Sqoop:结构化数据(如关系数据库)与Apache Hadoop之间的数据转换工具。
Apache ZooKeeper:分布式锁设施,提供类似GoogleChubby的功能,由Facebook贡献。分布式应用的高性能协调服务。
结束语:这里的简介都是从各个网站拷贝过来的,方便集中的了解和认识。接下来将会对每个单独的项目一一学习和配置实现。
网友评论