HDFS概念
数据块
NameNode
DataNode
数据块:抽象块而非整个文件作为存储单;默认大小64MB一般设置为128M,备份X3。
NameNode:管理文件系统的命名空间,存放文件元数据;维护着文件系统的所有文件和目录,文件与数据块的映射;记录每个文件中各个块所在数据节点的信息。
DataNode:存储并检索数据块;向NameNode更新所存储块的列表。
1、HDFS模块
HDFS负责大数据的存储,通过将大文件分块后进行分布式存储方式,突破了服务器硬盘大小的限制,解决了单台机器无法存储大文件的问题,HDFS是个相对独立的模块,可以为YARN提供服务,也可以为HBase等其他模块提供服务。
2、YARN模块
YARN是一个通用的资源协同和任务调度框架,是为了解决Hadoop1.x中MapReduce里NameNode负载太大和其他问题而创建的一个框架。
YARN是个通用框架,不止可以运行MapReduce,还可以运行Spark、Storm等其他计算框架。
3、MapReduce模块
MapReduce是一个计算框架,它给出了一种数据处理的方式,即通过Map阶段、Reduce阶段来分布式地流式处理数据。它只适用于大数据的离线处理,对实时性要求很高的应用不适用。
1、客户端想NameNode发起写数据请求
2、分块写入DataNode节点,DataNode自动完成副本备份
3、DataNode向NameNode汇报存储完成,NameNode通知客户端
1、客户端向NameNode发起读数据请求
2、NameNode找出距离最近的DataNode节点信息
3、客户端从DataNode分块下载文件
MapReduce是一种编程模型,是一种编程方法,是抽象的理论。
MapReduce四个阶段
- 输入一个大文件,通过split之后将其分为多个分片
- 每个文件分片由单独的机器去处理,这就是Map方法
- 将各个机器计算的结果进行汇总并得到最终的结果,这就是Reduce方法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。