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通知客户端
HDFS读流程
客户端向NameNode发起读数据请求
NameNode找出距离最近的DataNode节点信息
客户端从DataNode分块下载文件
若DataNode-2挂掉了,Client向DataNode-3请求数据
MapReduce
MapReduce是一种编程模型,是一种编程方法,是抽象的理论。
MapReduce编程模型
输入一个大文件,通过Split之后,将其分为多个分片
每个文件分片有单独的机器去处理,这就是Map方法
将各个机器计算的结果进行汇总并得到最终的结果,这就是Reduce方法
(这中方法有点类似分治法)