聊聊HDFS
大数据大数据,先解决存数据的问题,那不得不说hdfs,干什么用的呢,就是负责数据的存储。号称hadoop的大本营,即hadoop分布式文件系统。hdfs架构分为3个部分:
- nameNode(nn):用于存储文件的元数据,元数据是什么举个例子:比如文件名,文件目录结构,文件的一些属性(生产时间,副本数量,文件权限)......,以及每个文件的块列表和块所在的dataNode等(一会说dataNode)。
- dataNode(dn):用于在本地文件系统存储文件块数据以及块数据的校验和。
- secondaryNameNode(2nn):用于监控hdfs状态的辅助后台程序。每隔一段时间获取hdfs元数据的快照,通俗的讲就是nameNode的备份。
以图书馆为例子:nameNode记录的就是图书馆里面所有书籍的目录,作者,书籍的位置。dataNode就是图书馆存放书的书架。
聊聊mapReduce
hdfs解决了大量数据存储的问题,那要根据需求对数据进行运算求值就不得不说mapReduce啦。
mapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上。
mapReduce主要概括为map阶段和reduce阶段,即先分隔(map)再归纳(reduce)的过程。map阶段并行处理输入数据。reduce阶段对map结果进行汇总。
聊聊yarn
上回讲到hadoop 2.x增加了yarn,yarn主要负责调度。接下来说说它的组成:
- resourceManager(rm):rm进行处理客户端请求,监控nodeManager,启动和监控applicationMaster(am),资源的分配与调度。
- nodeManager(nm):nm负责管理单个节点上的资源,处理来自rm的命令,处理来自am的命令。
- applicationMaster(am):am负责数据的拆分,为应用程序申请资源并分配给内部的任务,同时监控和容错其任务。
- container:这个鬼是yarn中的资源抽象,它封装了某个节点上的多维度资源,如内存,cpu,磁盘,网络......。
结语
心血来潮想学习一下Hadoop,为了督促自己的总结习惯,每周发布一次总结到掘金,希望自己坚持不懈,功成之路,满是荆棘。下图来自尚硅谷老师哈。
下回是真正的实操,搭建hadoop集群。不说了,我得先把虚拟机安装好。