Hadoop简介

1.什么是大数据

大数据是一个概念也是一门技术,是在以Hadoop为代表的大数据平台框架上进行各种数据分析的技术

大数据包括了以Hadoop和Spark为代表的基础大数据框架

还包括实时数据处理,离线数据处理;数据分析,数据挖掘和用机器算法进行预测分析等技术

Hadoop核心

HDFS 分布式文件系统:存储是大数据技术的基础

MapReduce 编程模型:分布式计算是大数据应用的解决方案

2.HDFS概念

数据块

数据块是抽象块而非整个文件作为存储单元,默认大小为64MB,一般设置为128M,备份X3

NameNode

管理文件系统的命名空间,存放文件元数据

维护者文件系统的所有文件和目录,文件与数块的映射

记录每个文件中各个块所在数据节点的信息

DataNode

存储并检索数据块,向NameNode更新所在存储块的列表

3.HDFS写流程和读流程

HDFS写流程

(1)客户端向NameNode发起写数据请求

(2)分块写入DataNode节点节点,DataNode自动完成副本备份

(3)DataNode向NameNode汇报存储完成,NameNode通知客户端

Hadoop简介

HDFS读流程

客户端向NameNode发起读数据请求

NameNode找出距离最近的DataNode节点信息

客户端从DataNode分块下载文件

Hadoop简介

若DataNode-2挂掉了,Client向DataNode-3请求数据

MapReduce

MapReduce是一种编程模型,是一种编程方法,是抽象的理论。

MapReduce编程模型

输入一个大文件,通过Split之后,将其分为多个分片

每个文件分片有单独的机器去处理,这就是Map方法

将各个机器计算的结果进行汇总并得到最终的结果,这就是Reduce方法

(这中方法有点类似分治法)