Hadoop HDFS原理
来源:互联网 发布:sqlserver true false 编辑:程序博客网 时间:2024/05/18 22:15
一、HDFS介绍
HDFS 包括 块、NameNode、DataNode,适用于一次写多次读,不支持并发写。具有通透性、容错性。
HDFS中文件被分成块进行存储,其块默认大小为64M,块是文件存储处理的逻辑单元。用户通过网络访问文件。
NameNode 为管理节点,存放文件元数据。其包括文件与数据块的映射表、数据块与数据节点的映射表(文件名、文件有的块,以及块所在的DataNode)
用户请求访问文件时,先向NameNode请求文件的信息,然后访问具体的DataNode获取块数据,并进行拼接。Secondary NameNode为NameNode的备份,防止发生单点故障,导致文件不可访问,NameNode存储的文件信息在内存中。EditLog为更改的操作,通过EditLog和FsImage可生成最新的文件信息,其中EditLog和FsImage存储在磁盘上。
DataNode主要用于存放数据块,一般对文件进行3份副本。分布在两个机架的三个节点上,DataNode定期向NameNode发送心跳消息,网络故障、或者宕机。
二、文件读写
1.文件读操作
(1)客户端向NameNode发出文件读取请求(文件名)
(2)NameNode向客户端返回数据元信息(文件名、文件有的块,以及块所在的DataNodes )
(3)客户端访问DataNode并读取Blocks,将Blocks进行组装。
2.文件写操作
(1)将文件拆分为固定大小的块
(2)通知NameNode,NameNode查询可用的、在线、有足够磁盘空间的DataNodes返回给客户端。
(3)客户端根据返回的信息,将Block写入具体的DataNode
(4)DataNode间通过复制管道进行流水线复制,将Block写入另一个DataNode
(5)复制完成后更新元数据,通知NameNode已完成创建一个新的数据块。Client写完一个Block后再写下一个Block
三、HDFS文件系统特点
1.数据冗余、硬盘容错(3份备份,多个机架)
2.流式的数据访问(一次写入、多次读取,顺序读写)
3.存储大文件(小文件将增加NameNode的压力)
适合数据批量读写,吞吐量高,不适合交互式应用(数据库),很难满足低延迟,不支持多个用户并发写相同文件
四、HDFS应用
通过hadoop fs -(put、get、ls、cd、rm、mkdir等等)
0 0
- hadoop HDFS原理基础知识
- 【hadoop】 2001-hdfs原理
- Hadoop HDFS原理
- hadoop HDFS存储原理
- Hadoop HDFS原理
- hadoop核心------>HDFS原理
- hadoop HDFS存储原理
- Hadoop-HDFS运行原理
- Hadoop之HDFS原理
- hadoop HDFS存储原理
- hadoop hdfs 原理
- Hadoop-->HDFS原理总结
- Hadoop HDFS 运行原理
- hadoop hdfs存储原理
- hadoop hdfs内部原理
- Hadoop HDFS原理
- hadoop HDFS存储原理
- hadoop-HDFS运行原理
- hibernate中load和get的区别
- JS——笔试点滴记录2——字符串相关
- 方法上spring事物注解失效问题
- 关于 Java 数组的 12 个最佳方法
- Unity 使用DoTween
- Hadoop HDFS原理
- [java学习7]angular的filter练习
- AlertDialog自定义界面圆角有背景问题
- python tkinter应用:文本编辑器
- java中String、StringBuffer、StringBuilder的区别
- EditText账号输入格式
- ping程序---unix系统
- Ubuntu编译运行Redsocks2实现透明代理
- Java性能优化技巧集锦