Hadoop之HDFS认识篇
来源:互联网 发布:松下a4伺服软件 编辑:程序博客网 时间:2024/06/06 02:54
前言:
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodityhardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
HDFS介绍
HDFS为了做到可靠性创建了多份数据块的复制,并将它们放置在服务器群的计算机节点中,MapReduce就可以在它们所在的节点上处理这些数据了。
通俗说就是,HDFS给一份数据备份了多份放在多个磁盘中,如果其中一个磁盘的数据丢失,那么也不会影响数据,详细见下图:
HDFS结构
主要由三大部分组成:NameNode(NN)、SecondaryNameNode(SNN)和DataNodes(DN)。
- NameNode:
① 存储元数据;
② 元数据保存在内存中;
③ 保存文件,block,datanode之间的映射关系。- DataNodes:
① 存储文件内容;
② 文件内容保存在磁盘;
③ 维护了block id到datanode本地文件的映射关系。
HDFS架构
架构图如下所示:
主要功能介绍:
1、 NameNode(NN)
NameNode主要功能:接受客户端的读写服务;
NameNode保存metadate信息包括:
- 文件owership和permissons;
- 文件包含哪些块;
- Block保存在哪个DataNode(又DataNode启动时上报);
- metadata存储到磁盘文件名为“fsimage”;
- Block的位置信息不会保存到fsimage;
- edits记录对metadata的操作日志
2、SecondaryNameNode(SNN)
- 它不是NN的备份(但可以做备份),它的主要工作是帮组NN合并edits log,减少NN启动时间;
- SNN执行合并时机:
- 根据配置文件设置的时间间隔fs.checkpoint.priod 默认3600秒;
- 根据配置文件设置edits log大小fs,checkpoint.size规定edits文件的最大值默认是64MB。
3、 DataNode(DN)
- 存储数据(Block);
- 启动DN线程的时候会向NN汇报block信息;
- 通过想NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收到DN的心跳,则认为其已经lost,并copy骑上的block到其他DN上去。
4、Block的副本放置策略
- 第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点。
- 第二个副本:放置在于第一个副本不同的机架节点上。
- 第三个副本:与第二副本相同机架的节点。
- 更多副本:随机节点。
SNN合并流程
建议:把SNN和NN放在不同的服务器上。
HDFS读流程
具体操作如下图所示:
HDFS写流程
具体操作如下图所示:
ack:确认字符,表示发来的数据已确认接收无误。
详细见百度百科:https://baike.baidu.com/item/ACK/3692629?fr=aladdin
阅读全文
0 0
- Hadoop之HDFS认识篇
- Hadoop之HDFS初步认识(一)
- hadoop优化之HDFS篇
- Hadoop 基础知识---之HDFS篇
- Hadoop概要-HDFS的认识
- hadoop 之HDFS
- Hadoop之HDFS(1)
- Hadoop学习之HDFS
- hadoop之HDFS介绍
- Hadoop集群之HDFS
- Hadoop之HDFS
- Hadoop 之HDFS笔记
- Hadoop之HDFS基本概念
- HADOOP之HDFS
- HADOOP之HDFS
- Hadoop之谈谈HDFS
- Hadoop之HDFS命令
- (一) Hadoop之HDFS
- Ubuntu系统各个版本的镜像下载地址
- Arrays.asList方法总结
- mysqlimport工具的使用帮助文档(mysql导入csv数据,mysql备份数据恢复)
- [转]算法优化:rgb向yuv的转化最优算法,快得让你吃惊!
- Java-Pi的几种实现
- Hadoop之HDFS认识篇
- 机器学习基础模型概述
- 集合第二步: 模拟LinkedList底层实现
- windows环境搭建Hadoop的本地yum源+httpd-2.2.32-win64.zip
- MindManager安装常见问题解决
- DBN和RBM详解
- 为什么人工智能偏好下棋?
- Python图像灰度变换及图像数组操作
- java正则表达式http://www.runoob.com/java/java-regular-expressions.html