Hadoop是什么?
Hadoop是使用Java编写,允许分布在集群,使用简单的编程模型的计算机大型数据集处理的Apache的开源框架。 Hadoop框架应用工程提供跨计算机集群的分布式存储和计算的环境。 Hadoop是专为从单一服务器到上千台机器扩展,每个机器都可以提供本地计算和存储。
Hadoop的架构
在其核心,Hadoop主要有两个层次,即:
- 加工/计算层(MapReduce),以及
- 存储层(Hadoop分布式文件系统)。
MapReduce
MapReduce是一种并行编程模型,用于编写普通硬件的设计,谷歌对大量数据的高效处理(多TB数据集)的分布式应用在大型集群(数千个节点)以及可靠的容错方式。 MapReduce程序可在Apache的开源框架Hadoop上运行。
Hadoop分布式文件系统
Hadoop分布式文件系统(HDFS)是基于谷歌文件系统(GFS),并提供了一个设计在普通硬件上运行的分布式文件系统。它与现有的分布式文件系统有许多相似之处。来自其他分布式文件系统的差别是显著。它高度容错并设计成部署在低成本的硬件。提供了高吞吐量的应用数据访问,并且适用于具有大数据集的应用程序。
除了上面提到的两个核心组件,Hadoop的框架还包括以下两个模块:
-
Hadoop通用:这是Java库和其他Hadoop组件所需的实用工具。
-
Hadoop YARN :这是作业调度和集群资源管理的框架。
Hadoop如何工作?
建立重配置,处理大规模处理服务器这是相当昂贵的,但是作为替代,可以联系许多普通电脑采用单CPU在一起,作为一个单一功能的分布式系统,实际上,集群机可以平行读取数据集,并提供一个高得多的吞吐量。此外,这样便宜不到一个高端服务器价格。因此使用Hadoop跨越集群和低成本的机器上运行是一个不错不选择
Hadoop运行整个计算机集群代码。这个过程包括以下核心任务由 Hadoop 执行:
- 数据最初分为目录和文件。文件分为128M和64M(128M最好)统一大小块。
- 然后这些文件被分布在不同的群集节点,以便进一步处理。
- HDFS,本地文件系统的顶端﹑监管处理。
- 块复制处理硬件故障。
- 检查代码已成功执行。
- 执行发生映射之间,减少阶段的排序。
- 发送排序的数据到某一计算机。
- 为每个作业编写的调试日志。
Hadoop的优势
-
Hadoop框架允许用户快速地编写和测试的分布式系统。有效并在整个机器和反过来自动分配数据和工作,利用CPU内核的基本平行度。
-
Hadoop不依赖于硬件,以提供容错和高可用性(FTHA),而Hadoop库本身已被设计在应用层可以检测和处理故障。
-
服务器可以添加或从集群动态删除,Hadoop可继续不中断地运行。
-
Hadoop的的另一大优势在于,除了是开源的,因为它是基于Java并兼容所有的平台。
Hadoop 核心组件
Hadoop 包含以下模块:
Hadoop Common:常见实用工具,用来支持其他 Hadoop 模块。
Hadoop Distributed File System(HDFS):分布式文件系统,它提供对应用程序数据的高吞吐量访问。
Hadoop YARN:一个作业调度和集群资源管理框架。
Hadoop MapReduce:基于 YARN 的大型数据集的并行处理系统。
其他与 Apache Hadoop 的相关项目包括:
Ambari:一个基于Web 的工具,用于配置、管理和监控的 Apache Hadoop 集群,其中包括支持 Hadoop HDFS、Hadoop MapReduce、Hive、HCatalog、HBase、ZooKeeper、Oozie、Pig 和 Sqoop。Ambari 还提供了仪表盘查看集群的健康,如热图,并能够以用户友好的方式来查看的 MapReduce、Pig 和 Hive 应用,方便诊断其性能。
HBase:一个可扩展的分布式数据库,支持结构化数据的大表存储。
Hive:数据仓库基础设施,提供数据汇总以及特定的查询。
Mahout:一种可扩展的机器学习和数据挖掘库。
Pig:一个高层次的数据流并行计算语言和执行框架。
Spark:Hadoop 数据的快速和通用计算引擎。Spark 提供了简单和强大的编程模型用以支持广泛的应用,其中包括 ETL、机器学习、流处理和图形计算。
ZooKeeper:一个高性能的分布式应用程序协调服务。
Hadoop三大发行版
(1) Apache Hadoop
Apache Hadoop最原始版本,所有其他发行版均基于该发行版实现的。
官网地址http://hadoop.apache.org/,Logo如下
0.23.x :非稳定版
2.x :最新版是2.8.0,建议使用2.7.3稳定版。
3.0:已发行多个测试版,正式稳定版尚未发布
(2)CDH
CDH(Cloudera’s Distribution for Hadoop)是Cloudera 公司的的Hadoop 发行版。
官方是https://www.cloudera.com/,Logo如下。
包含CDH4 和CDH5 两个版本
CDH4 ;基于Apache Hadoop 0.23.0 版本开发
CDH5 :基于Apache Hadoop 2.2.0 版本开发
(3)HDP
HDP(The Hortonworks Data Platform)是Hortonworks 公司的发行版。
官网地址是https://hortonworks.com/,Logo如下。
(4) 发行版选择
- 作为学习,建议选择Apache Hadoop最新的稳定版;
- 作为工作(生产环境),建议选择CDH或HDP稳定版。
(5) 不同发行版兼容性
架构、部署和使用方法一致,不同之处仅在若干内部实现。