简介
Hadoop是Apache基金会下的一个开源软件,提供大数据分布式并行处理的框架。可以支持多种编程语言
Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性:
* 高可靠性
* 高效性
* 高可扩展性
* 高容错性
* 成本低
* 运行在Linux平台上
* 支持多种编程语言
两大核心–HDFS+MapReduce
- HDFS–实现海量数据的分布式存储
- MapReduce --实现海量数据的分布式处理
Hadoop在企业中的应用架构
Apache Hadoop版本演变
Apache Hadoop版本分为两代,我们将第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop 2.0
第一代Hadoop包含三个大版本,分别是0.20.x,0.21.x和0.22.x,其中,0.20.x最后演化成1.0.x,变成了稳定版,而0.21.x和0.22.x则增加了NameNode HA等新的重大特性
第二代Hadoop包含两个版本,分别是0.23.x和2.x,它们完全不同于Hadoop 1.0,是一套全新的架构,均包含HDFS Federation和YARN两个系统,相比于0.23.x,2.x增加了NameNode HA和Wire-compatibility两个重大特性
* Apache Hadoop
* Hortonworks
* Cloudera(CDH:Cloudera Distribution Hadoop)
* MapR
选择 Hadoop版本的考虑因素:
- 是否开源(即是否免费)
- 是否有稳定版
- 是否经实践检验
- 是否有强大的社区支持
Hadoop项目结构
Hadoop集群的部署与使用
Hadoop框架中最核心的设计是为海量数据提供存储的HDFS和对数据进行计算的MapReduce
-
MapReduce的作业主要包括:
- (1)从磁盘或从网络读取数据,即IO密集工作;
- (2)计算数据,即CPU密集工作
-
一个基本的Hadoop集群中的节点主要有
- NameNode:负责协调集群中的数据存储
- DataNode:存储被拆分的数据块
- JobTracker:协调数据计算任务
- TaskTracker:负责执行由JobTracker指派的任务
- SecondaryNameNode:帮助NameNode收集文件系统运行的状态信息