Hadoop
分布式计算平台,同时也是一个生态圈
HDFS
HDFS组件
NameNode
- NameNode 存储文件的元数据,位置信息
- 配置副本策略
- 管理数据块映射信息
- 处理读写请求
Datanode
SecondaryNameNode
- SecondaryNameNode 对NameNode做备份,但不能顶替NN提供服务
- 定期合并镜像文件,编辑日志,推送给NN
- 可以恢复NN的数据(可能不完整)
Client
HDFS文件的上传与下载
- 上传:客户端通过HDFS对象向NameNode提交上传请求,NN确定文件状态以及父目录是否存在,返回许可。随后用户上传文件的第一个数据块,请求NN返回Datanode,NN根据请求返回三个DN节点,用户通过输出流请求在一个DN上上传数据(上传的DN根据网络拓扑计算决定),然后该DN会调用其他的DN节点将这个通信信道建立完成。三个节点逐级应答客户端,客户端向第一个DN节点上传一个数据块,以packet为单位,DN收到后先进行落盘处理,同时将该packet传送给第二个DN节点然后再传给第三个DN节点。当第一个块传输完成后,第二个数据块重复上面的动作,传递完成后关闭传输流,传输过程中,第一个DN节点会将packet放入一个应答队列,待所有节点相应完成后表示上传成功。
- 下载: 客户端访问HDFS对象,向NameNode请求下载某文件,NameNode返回文件的元数据信息,以及数据块坐在的位置。客户端得到信息后获取文件输入流,根据就近原则随机原则随机挑选一个DN节点获取packet,客户端收到后现在本地缓存,然后写入目标文件。
NameNode与SecondaryNameNode的机制
- NN在启动后会将fsimage和edits加载到内存里,格式化后则是创建。客户端对HDFS进行操作后,NN先将操作记录到日志中,然后再内存中进行操作,2NN向NN询问是否CheckPoint,带回指令。如果CheckPoint,NN会生成一个滚动的日志文件,一个磁盘中编辑日志的复制文件,将磁盘中的镜像文件和复制好的编辑日志文件复制到2NN中,加载到2NN内存中合并成一个合并文件,返回到NN中,NN用重命名的方式覆盖原文件。
- fsimage是HDFS文件系统中元数据的一个永久性检查点
- edits存放HDFS文件系统中所有的更新操作
- CheckPoint触发点为1小时或者edits执行了一百万次操作。2NN在一分钟内确认三次NN的操作次数
Yarn组件
- ResourceManager 处理客户端请求,监控NodeManager,启动ApplicationMaster,调度资源
- NodeManager 管理单个节点上的资源,处理ResourceManager的命令,处理ApplicationMaster的命令
- Contianer 封装单个节点上的资源
- ApplicationMaster 负责数据切分,为应用申请资源,监控任务
MapReduce框架⭐
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。