一、Hadoop是什么
Hadoop是一个开源的大数据框架
Hadoop是一个分布式计算的解决方案
Hadoop=HDFS(分布式文件系统)+MapReduce(分布式计算)
二、Hadoop核心
HDFS分布式文件系统:存储是大数据技术的基础
MapReduce编程模型:分布式计算是大数据应用的解决方案
三、Hadoop基础架构
- HDFS基础
1、数据块
数据块是抽象块而非整个文件作为存储单元
默认大小为64MB,一般设置为128M,备份*3
2、NameNode
管理文件系统的命名空间,存放文件元数据
维护着文件系统的所有文件和目录,文件与数据块的映射
记录每个文件中各个块所在数据节点的信息
3、DataNode
存储并检索数据块
向NameNode更新所存储块的列表
4、HDFS优点
适合大文件存储,支持TB、PB级的数据存储,并有副本策略
可以构建在廉价的机器上,并有一定的容错和恢复机制
支持流式数据访问,一次写入多次读取最高效
5、HDFS缺点
不适合大量小文件存储
不适合并发写入,不支持文件随机修改
不知道随机读等低延时的访问方式
6、HDFS写流程
客户端向NameNode发起写数据流程
分块写入DataNode节点,DataNode自动完成副本备份
DataNode向NameNode汇报存储完成,NameNode通知客户端
7、HDFS读流程
客户端向NameNode发起读数据流程
NameNode找出距离最近的DateNode节点信息
客户端从DateNode分块下载文件
8、常用HDFS Shell命令
类Linux系统:ls、cat、mkdir、rm、chmod、chown等
HDFS文件交互:copyFromLocal、copyToLocal、get、put
9、HDFS总结
普通的成百上千的机器
TB甚至PB为单位的大量的数据
简单便捷的文件获取
- MapReduce
1、简介
MapReduce是一种编程模型,是一种编程方法,是抽象的理论
2、MapReduce编程模型
输入一个大文件,通过Split之后,将其分为多个分片
每个文件分片由单独的机器去处理,这就是Map方法
将各个机器计算的结果进行汇总并得到最终的结果,这就是Reduce方法
文章仅作为个人学习整理