Hadoop工作原理:
Google文件系统gfs是一个可拓展的分布式文件系统,用于大型的,分布式的,对大数据进行访问的应用.只是对数据进行读操作
hdfs是google gfs的开源版本,一个高度容错的分布式系统,它能够提供高吞吐量的数据访问,适合存储海量(PB)级的数据,hdfs在进行数据切割的时候会出现切割错误的情况,
所以不适用于有事务属性的生产情况.Hadoop只擅长做数据分析而不是数据处理
拥有ACID性质的特性的就是事务:
原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。
隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。
NameNode管理文件系统的命名空间.
维护着文件系统树及整棵树内所有的文件和目录。这些信息以两个文件形式永久保存在本地磁盘上:命名空间镜像文件和编辑日志文件。
NameNode也记录着每个文件中各个块所在的数据节点信息,但它并不永久保存块的位置信息,因为这些信息在系统启动时由数据节点重建
NameNode的作用:
记录每个文件数据块在各个Datanode上的位置副本信息
协调客户端对文件的访问
记录命名空间内的改动或空间本身属性的改动(记录在内存中)
Namenode使用事务日志记录HDFS元数据的变化,使用印象文件存储文件系统的命名空间,包括文件映射,文件属性等
Hadoop2.0存储文件时把文件切块为128m每份(Hadoop1.0是64m)然后存储到磁盘上,namenode在此时会以领导者的身份来为这些元数据取名,分配地址然后存储,在存储的时候会
自动将副本更新为三份,在存储的时候会以数据就近原则来存储,并且可以通过机架感知来进一步的确保数据的安全性.
secondarynamenode主要用来持久化namenode
Datanode:负责所在物理节点的存储管理
一次写入,多次读取(不修改)
文件由数据块组成,大小为1248M,数据块尽量散布到各个节点
datanode具体可参考文章https://blog.csdn.net/qq_35641192/article/details/80303879
secondarynamenode可参考文章:https://blog.csdn.net/xh16319/article/details/31375197