完全解析分布式存储,带你了解HDFS的块-创新互联
在大数据的学习过程中,我们经常会听到“分布式”这三个字,那个所谓的“分布式”到底是什么意思?我们看到一些古装电视剧电影,在古代,生产力比较低下,没有现在的各种便捷的交通工具。人们需要运输一些货物的时候,最常见的方式就是套马车,用马来拉动车。如果需要拉的货物比较多,一匹马拉不动呢?人们的做法并不是训练一匹更加强壮的马,而是会使用多匹马同时来拉动这辆马车。这就是分布式的思想!
创新互联建站服务项目包括竹溪网站建设、竹溪网站制作、竹溪网页制作以及竹溪网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,竹溪网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到竹溪省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!那么在程序世界中,单台服务器的能力是有限的,虽然我们可以堆配置来构建一台性能非常强悍的服务器,但是上限还是容易达到的,且成本会非常的高。为了解决这样的问题,我们就可以使用多台服务器协同工作,共同来完成指定的任务,组成一个服务器集群,而这样的集群我们通常也就称为--分布式集群。
分布式集群可以提供数据的存储、计算等操作。今天我们就来聊一聊分布式存储,也就是一个分布式文件系统。其实在HDFS之前,也有一些其他的分布式文件系统,笼统的来说,只要是实现了将数据分散的存储在多个节点上进行存储,并且可以实现数据的读取就可以称为是“分布式文件系统”。
传统的分布式文件系统的缺点现在想象一下这种情况:有四个文件 0.5TB的file1,1.2TB的file2,50GB的file3,100GB的file4;有7个服务器,每个服务器上有10个1TB的硬盘。
在存储方式上,我们可以将这四个文件存储在同一个服务器上(当然大于1TB的文件需要切分),我们需要使用一个文件来记录这种存储的映射关系吧。用户是可以通过这种映射关系来找到节点硬盘相应的文件的。那么缺点也就暴露了出来:
第一、负载不均衡。
因为文件大小不一致,势必会导致有的节点磁盘的利用率高,有的节点磁盘利用率低。
第二、网络瓶颈问题。
一个过大的文件存储在一个节点磁盘上,当有并行处理时,每个线程都需要从这个节点磁盘上读取这个文件的内容,那么就会出现网络瓶颈,不利于分布式的数据处理。
HDFS的块结构HDFS与其他普通文件系统一样,同样引入了块(Block)的概念,并且块的大小是固定的。但是不像普通文件系统那样小,而是根据实际需求可以自定义的。块是HDFS系统当中的最小存储单位,在hadoop2.0中默认大小为128MB(hadoop1.x中的块大小为64M)。在HDFS上的文件会被拆分成多个块,每个块作为独立的单元进行存储。多个块存放在不同的DataNode上,整个过程中 HDFS系统会保证一个块存储在一个数据节点上 。但值得注意的是,如果某文件大小或者文件的最后一个块没有到达128M,则不会占据整个块空间 。
块的存储位置在hdfs-site.xml中我们配置过下面这个属性,这个属性的值就是块在linux系统上的存储位置
HDFS的优点dfs.datanode.data.dir file://${hadoop.tmp.dir}/dfs/data
1. 高容错性(硬件故障是常态):数据自动保存多个副本,副本丢失后,会自动恢复
2. 适合大数据集:GB、TB、甚至PB级数据、千万规模以上的文件数量,1000以上节点规模。
3. 数据访问: 一次性写入,多次读取;保证数据一致性,安全性
4. 构建成本低:可以构建在廉价机器上。
5. 多种软硬件平台中的可移植性
6. 高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
7. 高可靠性:Hadoop的存储和处理数据的能力值得人们信赖.
HDFS的缺点1. 不适合做低延迟数据访问:
HDFS的设计目标有一点是:处理大型数据集,高吞吐率。这一点势必要以高延迟为代价的。因此HDFS不适合处理用户要求的毫秒级的低延迟应用请求
2. 不适合小文件存取:
1. 从存储能力出发(固定内存)
因为HDFS的文件是以块为单位存储的,且如果文件大小不到128M的时候,是不会占用整个块的空间的。但是,这个块依然会在内存中占用150个字节的元数据。因此,同样的内存占用的情况下,大量的小文件会导致集群的存储能力不足。
例如: 同样是128G的内存,最多可存储9.2亿个块。如果都是小文件,例如1M,则集群存储的数据大小为9.2亿*1M = 877TB的数据。但是如果存储的都是128M的文件,则集群存储的数据大小为109.6PB的数据。存储能力大不相同。
2. 从内存占用出发(固定存储能力)
同样假设存储1M和128M的文件对比,同样存储1PB的数据,如果是1M的小文件存储,占用的内存空间为1PB/1Mb*150Byte = 150G的内存。如果存储的是128M的文件存储,占用的内存空间为1PB/128M*150Byte = 1.17G的内存占用。可以看到,同样存储1PB的数据,小文件的存储比起大文件占用更多的内存。
3. 不适合并发写入,文件随机修改:
HDFS上的文件只能拥有一个写者,仅仅支持append操作。不支持多用户对同一个文件的写操作,以及在文件任意位置进行修改。
帮助到你的话就点个关注吧~
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网页题目:完全解析分布式存储,带你了解HDFS的块-创新互联
当前网址:http://cdiso.cn/article/ceecoc.html