随着大数据时代的到来,第三次信息化浪潮已经开幕了(15年一次),在第四次信息化浪潮的到来之前,各种新兴企业的兴起也愈发迅速,大数据HADOOP体系的技术也愈发成熟
HDFS存储过程
有客户端发送提交请求,首先与namenode进行交互,然后namenode与datanode实时发送心跳(即ping),然后将文件切分成block进行上传,但是其实HDFS默认有三个机架,这里就先不讲机架感知策略,只要知道机架感知是存放副本的就行.上传block时,是将以比block的单元进行传输的(即chunk---最小的存储单元),当block上传到第一个datanode时,它就会默认复制三份(dfs.replication设置),以chunk传输完一个存储单元,后立即往下一个副本传递.利用了时间重叠技术;然后datanode以一张map映射表告知namenode的block存储情况.
副本存放策略:
默认有两种算法,一是namenode查询datanode(CPU,内存等信息),然后找一个资源充足的datanode节点存放副本.
(1) 读文件bai流程
1)client端发送读文件请求给namenode,如果文件不存在,返回错误信息,否则,将该文件对应的block及其所在datanode位置发送给client
2) client收到文件位置信息后,与不同datanode建立socket连接并行获取数据。
(2) 写文件流程
1) client端发送写文件请求,namenode检查文件是否存在,如果已存在,直接返回错误信息,否则,发送给client一些可用namenode节点
2) client将文件分块,并行存储到不同节点上datanode上,发送完成后,client同时发送信息给namenode和datanode
3) namenode收到的client信息后,发送确信信息给datanode
4) datanode同时收到namenode和datanode的确认信息后,提交写操作。