概述
hadoop包括hdfs, yarn, mapReduce.
hdfs | 分布式存储系统 |
---|---|
yarn | 任务调度,资源管理的框架 |
mapReduce | 计算框架 |
hadoop搭建集群有几种 :
单机模式
伪分布式
完全分布式
特点总结
切块 | 能存储超大文件 |
---|---|
心跳 | 保证检测故障 |
不允许修改 | 一次写入,多次读取,不允许修改,允许追加写入 |
不建议存小文件,产生大量元数据 | |
能在廉价设备上横向拓展 | |
不支持低延迟响应 | |
不支持事务,允许大数据下的容错 |
.
.
基本结构
HDFS是主从结构,Namenode+dataNode
数据存储在根目录/ 下
.
.
.
Block块
HDFS基本的存储单元,所有的数据都用block形式存储
数据切块,block快最大默认128M
3个备份
切块的意义:便于存储超大文件,快速备份
.
.
Namenode
存储元数据,管理datanode
Namenode用心跳机制管理datanode
datanode定时发送心跳,namenode通过心跳来判断datanode是否存活
edits滚动写入fsimage的条件:
1h间隔
重启
强制更新:hadoop dfsadmin -rollEdits
edits达到64M
心跳信息:
集群编号clusterId
datanode服役状态:预服役,服役,退役
datanode上的blockId
.
.
副本放置策略
第一个副本:
集群内,当前节点上
集群外上传,namenode选datanode空闲节点
2.7之前,2和3副本同机架,1不同
2.7之后,1和2副本同机架,3不同
其余节点放置在空闲机架
.
.
SecondaryNamenode
不是namenode备份,辅助namenode完成edits滚动
一般采用namenode+备份+N个dataNode, 不使用secondaryNamenode.
.
.
读/下载流程
写入流程
删除流程
1.客户端发起请求,namenode检验权限和文件是否存在,返回信号
2.校验成功,namenode记录edit,再修改内存中的元数据,返回给客户端ack
3.dataNode发送心跳,检验心跳信息中和元数据是否一致,在心跳响应中要求删除对应的block
4.datanode收到心跳响应后,去删除对应的block
.
.
操作命令
搭建集群完成之后,任意位置输入start-all.sh就可以启动
组件分布在各个节点中