介绍
从今天起我们正式进入Hadoop框架的学习,首先,我们要对Hadoop有一个基本认识。
Hadoop是Apache软件基金会的顶级项目,用于可靠、可扩展、分布式计算的开源软件。Hadoop可以让我们在服务器集群上,根据自定义的业务逻辑,对存储的海量数据进行分布式处理。
Hadoop能够以一种简单计算模型的方式在多台节点上分布式处理超大规模的数据集。它被设计为能够从单个节点扩展到数千台节点,每个节点都能够提供本地存储和计算的能力。Hadoop本身不依赖硬件来提供高可用性,因为集群中的任意节点都可能出现故障,Hadoop能够检测和处理应用层的故障,从而在集群之上提供高可用的服务。
从上面的介绍我们可以看出,Hadoop解决了大数据领域中数据存储和数据计算两个方面。而这两个方面也是目前大数据方向的最基本的底层支持。
Hadoop有以下几个重要的模块:
Hadoop Common,用于支撑其他模块的公共模块,提供了RPC请求、数据序列化等公共服务Hadoop Distributed File System(HDFS),提供了高吞吐量的分布式文件系统,解决了数据存储的问题Hadoop YARN,负责任务调度和集群资源管理的框架,解决了分布式任务中资源分配的问题Hadoop MapReduce,一个基于YARN的用于并行处理大规模数据集的框架,解决了数据计算的问题
Hadoop相关项目
其实现在我们说的Hadoop,通常指的是一个更广泛的概念——Hadoop生态圈。
在近些年,围绕Hadoop诞生了很多相关的框架,这些框架或多或少都与Hadoop有一定的联系,有的是为了弥补Hadoop本身的不足之处,有的是建立在Hadoop之上提供更加易用或解决特定领域问题。
下面是与Hadoop相关的一些Apache项目:
Ambari,一个基于Web的工具,用于管理、监控Hadoop集群以及其他组件,包括了Hadoop HDFS、Hadoop MapReduce、Hive、HCatalog、HBase、ZooKeeper、Oozie、Pig以及Sqoop等。Ambari也提供了用于查看集群的运行情况的仪表盘,例如热点图和能够直观的查看MapReuce、Pig和Hive应用程序以及以用户友好的方式诊断其性能特征的功能Avro,一个数据序列化系统Cassandra,一个可扩展的多个主节点数据库,没有单点故障Chukwa,一个用于管理大型分布式系统的数据收集系统HBase,一个可扩展的分布式数据库,支持大表的结构化数据存储Hive,一个数据仓库基础组件,提供数据汇总和即席查询Mahout,一个可扩展的机器学习和数据挖引擎Pig,用于并行计算的高级数据流和执行框架Spark,一个适用于Hadoop的快速和通用计算引擎,Spark提供了一种简单而富有表现力的编程模型,支持广泛的应用程序,包括ETL、机器学习、流处理和图计算Tez,一个基于Hadoop YARN的通用数据流编程框架,提供了一个强大而灵活的引擎来执行任意DAG任务来处理批处理和交互式用例的数据。Tez正在被Hadoop生态系统中的Hive、Pig和其他框架采用,也被其他商业软件(如ETL工具)采用,以取代Hadoop MapReduce作为底层执行引擎ZooKeeper,个用于分布式应用的高性能协调服务
震撼一下
下面几张图片是我们公司的一些Hadoop的集群环境,先来感受一下,为后续的学习增加点儿动力。

这个HDFS集群总存储量是6.76PB,由80个节点组成,存储的文件数量不多,但是都是大文件。

这个HDFS集群总存储量是5.67PB,目前以及存储了四千多万个文件,堆内存使用的也比较多。

这个YARN集群由70个节点组成,内存2.15TB,VCore有1120个。

这个YARN集群有1.93TB的内存,VCore有1008个。

最后来一个规模较大的YARN集群,4543个存活节点,221.80TB内幕才能,VCore有109334个。
希望这些集群的图片能够激发你更多的兴趣。