目录
1.什么是HDFS?
HDFS也叫分布式存储系统,可以理解为是磁盘,主要解决海量数据的存储
2.HDFS读写流程
2.1 写流程
第一步:
1.client请求上传文件,与NameNote建立通讯,NameNote会检查client是否有写的权限,检查目标文件的目录是否已经存在,没就报错,有的话就会就可以执行上传
第二步:
2.根据机架感知策略找到与client一个可以上传的节点,返回给client
第三步:
3.client会按照NameNote给的节点建立联系,如果有多个节点,client会跟第一个节点建立联系,第一个节点与第二个建立联系,并且第二个会给第一个ack校验的结果,传给client
2.2 读流程
第一步
1.client请求上传文件,与NameNote建立通讯,NameNote会检查client是否有读的权限,检查目标文件是否存在,没就报错,有的话就会就可以执行下一步
第二步
2.根据机架感知技术返回block部分或则全部的DateNote的位置给client
第三步
3.当client手段NameNote传的来信息,会与每一个节点建立联系,同时读多个DateNote,当读取完毕以后会 根据block进行排序拼接成为一个文件
3.Hadoop-HA
3.1QJM
共享存储系统,独立的小集群
目的
用于同步日志
ANN将自己的日志定时上传到QJM中,SNN则定时的去拉取QJM中的最近的日志文件
3.2ZKVC
故障转移控制
目的
为了会有一个ANN进行工作
4.优缺点
优点是?
1.高容错性
HDFS上传文件可以保存多个副本(默认3个),如果其中一个节点的副本的文件丢失,其它的节点可以从另外一个存储副本的节点进行拷贝
当文件进行读或写操作时,里面添加了MD5散列算法进行校验,避免了数据出错
2.适合大数据的处理
hadoop可以有上千节点,HDFS可以拥有超大容量的分布式系统,存储的数据可以达到TB甚至时PB级别的单个文件,还可以处理百万规模的数据
3.高并发访问能力
HDFS采用了多副本机制,当用户并发访问时,可以根据就近原则提供副本的数据,提高集群的吞吐量
4.流式文件写入
文件建立在一次写入多次读写,对于大数据分析来说时建立在全部数据之上,对于HDFS来说,读取整个文件比读取某条文件要好
5.可构建在廉价机器上
这代表着出现故障的概率相当的高,为了避免数据中断,HDFS的高容错性很好的避免了这个问题
缺点?
不适合低延迟数据访问
HDFS针对大数据吞吐量做了优化,牺牲了数据获取的延迟,所以对于低延迟来说,不适合用HDFS来做。
它适合高吞吐率的场景,即在某一时间内写入大量的数据。
无法高效存储大量的小文件
因为HDFS把文件系统的元数据存储在内存中,文件系统存储所容纳的文件数目是由HDFS中的NameNode节点决定的,而内存的空间是有限的
不支持多用户写入文件、修改文件
HDFS中一个文件只有一个写入者,而且写操作只能在文件末尾完成,即只能执行追加操作。