整理了之前的学习笔记,分享给大家,共勉~~
1、什么是hdfs
分布式文件系统 hadoop distributed file system
易于扩展、容错、存储
2、hdfs的优点
容错性:数据自动保存多个副本;副本丢失、自动恢复
适合批处理:移动计算而非数据;数据位置暴露给计算框架
适合大数据处理、实时计算
流式文件访问:1次写入、多次读取。不可修改。如果
缺点:1、不支持低延迟;2、小文件存取占用namenode大量内存;寻道时间超过读取时间(先合并);3、不支持并发写入、随机修改:1个文件只能1个写入者,并且是1次写入。仅支持append追加。如果一定要修改某一行,写成一个新的文件。
3、hdfs架构
主从架构。主服务、从服务。ha高可用。
心跳机制
https://yq.aliyun.com/articles/43458
datenode以固定周期向namenode发送心跳,namenode如果在一段时间内没有收到心跳,就会标记datenode为宕机。
此段时间的计算公式是:
timeout = 2 * heartbeat.recheck.interval + 10 * dfs.heartbeat.interval
注意:hdfs-site.xml中
heartbeat.recheck.interval的单位为毫秒
dfs.heartbeat.interval的单位为秒
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
超长时间计算:默认为10分钟30秒
而默认的 heartbeat.recheck.interval (dfs.namenode.heartbeat.recheck-interval) 大小为 5 分钟(300000毫秒),dfs.heartbeat.interval 默认的大小为 3 秒。
避免SPOF,实现HA高可用
配置实例 https://blog.csdn.net/Lockey23/article/details/78336159
4、hdfs原理
把大文件切分成若干block,每个block128M分布在多个节点。每个block默认有3个副本。
有个文件记录每个block及其副本存放在哪些node节点上。1个block对应1个task。
task少没有分布式,task太多暂用资源。
其中记录block和副本的映射关系即为元数据。
表一:file1:block1,block2,...
表2:block1:node1、node2、node3
block2:node2、node3、node5
下篇:
大数据学习笔记2——hdfs安装及相关配置文件设置
大数据学习笔记3——hdfs 文件系统shell命令(1)