1.Hadoop简介

Hadoop 是什么
Hadoop由apache基金会开发的可靠、可伸缩的分布式系统基础架构。Hadoop 主要解决海量数据的存储 和 海量数据的分析计算问题。通常来讲,Hadoop 指的是一个更广泛的概念 — Hadoop 生态圈。

Hadoop发展历史
Hadoop 创始人 Doug Cutting 为了实现与Google类似的全文搜索功能

2.Hadoop三大发型版本

Hadoop 有三大发型版本: Apache , Cloudera, Hortonworks

Apache版本: 最原始最基础的发型版本,对于入门学习最好
Cloudera : 内部集成了很多大数据框架, 对应产品 CDH。 2009年 Doug Cutting 加盟Cloudera
Hortonworks: 类似的推出了HDP 服务。 文档较好

2018年 Cloudera 兼并 Hortonworks 推出新的服务 CDP服务。

3.Hadoop的优势

Hadoop 具有 高可靠性,高扩展性,高效性和高容错性

高可靠性: Hadoop底层维护多个数据副本,所以即使某个计算节点或者存储出现故障,也不会出现数据丢失。 高扩展性: 在集群间分配任务数据,可方便的扩展数以千计的节点。 高效性: 在MapReduce 的思想下,Hadoop是并行工作的,可加快任务的处理速度。 高容错性: 能够自动的将失败的任务重新分配。

4.Hadoop的组成

不同版本的Hadoop 在计算存储核心组成上存在差别: Hadoop 2.x 使用YARN 作为资源调度器,MapReduce 仅负责计算。

Hadoop基本概念 - 图1

4.1 HDFS组成

HDFS 集群由NameNode, DataNode 和 2NN 共同组成. 其中 NameNode 存储文件的元数据,以及每个文件的块列表和块所在的DataNode等。 DataNode 在本地文件系统存储文件块数据,以及块数据的校验和。2NN每隔一段时间对NameNode元数据进行备份。

4.2 Yarn架构概述

Yarn 集群中包含 ResourceManager ,NodeManager ,applicationMastar 等组成部分。

ResourceManager: 负责整个集群的管理 NodeManager: 负责单个节点服务器的管理 ApplicationMaster: 单个应用的管理节点 container: 容器,计算应用运行在容器中, 容器包含了CPU,内存等资源

各组成部分间的关系如下图:
Hadoop基本概念 - 图2

4.3 MapReduce

MapReduce 计算过程可以分为两部分

Map:map阶段并行处理输入数据
Reduce: reduce阶段对map结果进行汇总

4.4 任务处理流程

客户端向Yarn 资源管理集群提交任务的处理流程如下:

1) client 向ResourceManager 申请运行一个应用 2) ResourceManager 返回JobId, 目录数据等信息 3) client 根据目录,生成切片方案 4) client 向ResourceManager 提交作业 5) 从队列获取任务,发送指令给到NodeManager 6) NodeManager 接收到指令后创建一个container 并启动一个application master 7) NodeManager 将切片数据拉取到 application master 8) Application 向 ResourceManager 申请运行资源 9) Resource Manager 发送指令,分配多少资源用来处理任务 10) 实际任务在NodeManager 上执行

5.大数据技术生态体系

数据可以分为三种类型: 结构化数据,半结构化数据 和 非结构化数据

结构化数据: 数据库表记录 半结构化数据: 日志文件 非结构化数据: 图片,音频,视频,文档等