hadoop是一个开源框架,可编写和运行分布式应用和处理大规模数据
核心是HDFS以及MapReduce
HDFS 分布式文件系统
HDFS具备的优点:
1)高容错性,数据自动保存多个副本在不同机架上,提高容错性,副本数低于最小副本数时会自动备份,我们无需关心具体实现
2)适合批处理,通过移动计算,而不是移动数据
3)适合大数据,处理数据达到TB甚至PB级,能够处理百万以上规模的文件(由于NN的构造,不适合处理数量多的小文件)
4)流式文件访问,文件只能进行读写操作,不能进行修改操作(修改文件名不算),参考网盘的概念
5)可构建在廉价的机器上,因为是靠集群的性质来实现的,所以不需要太好的机器,通过保存多副本(增加了冗余)提高可靠性,不易丢失
不适用的场景
1)低延迟数据访问,无法做到毫秒内的读写数据,它适合高吞吐率的场景,比如某一时刻写入大量数据
2)小文件存储,这样NN会消耗大量内存,NN存储的是metadata,这些数据都在内存中,读取小文件寻道时间会超过读写时间,违反HDFS设计思路
3)并发写入,文件随机修改,不允许多线程同时写一个文件,只支持文件的增删,不能修改
HDFS如何存储数据:
HDFS采用Master/Slave的架构存储数据,由4个部分组成HDFS Client、NameNode