问题
什么是HDFS?
HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)
什么是Hadoop?
Hadoop就是一个分布式计算的解决方案.
hadoop的3个核心组件
1)分布式文件系统:Hdfs——实现将文件分布式存储在很多的服务器上(hdfs是一个基于Linux本地文件系统上的文件系统)
2)分布式运算编程框架:MapReduce——实现在很多机器上分布式并行运算
3) 分布式资源调度平台:Yarn——帮用户调度大量的mapreduce程序,并合理分配运算资源
HDFS特点:
高容错性、可构建在廉价机器上
适合批处理
适合大数据处理
流式文件访问
HDFS局限:
不支持低延迟访问
不适合小文件存储
不支持并发写入
不支持修改
HDFS原理
我们先大概看下原理图,如下
我们现在来具体看下具体的各个部分
主要有四个部分组成
1)HDFS Client:就是客户端
提供一些命令来管理,例如访问HDFS,启动或者关闭HDFS
与数据交互,进行读写操作
读取时,与Namenode交互,获取信息
写入时,把文件分割成一个个Block,然后存储
2)NameNode:即Master,主节点
管理hdfs的名称空间
管理数据块Block的映射信息
处理客户端读写请求
配置副本
3)DataNode:就是Slave,从节点
NameNode 下达命令,DataNode 执行实际的操作。
存储实际的数据块
执行读写操作
4)Secondary NameNode:充当NameNode的辅助节点
不是NameNode 的热备。当NameNode 挂掉的时候,它并不能马上替换 NameNode 并提供服务。
辅助 NameNode,分担其工作量
在紧急情况下,可辅助恢复 NameNode
感谢以下博客
https://www.cnblogs.com/zengming/p/9407070.html
https://www.jianshu.com/p/f1e785fffd4d