论文部分内容阅读
随着信息技术的发展,物联网越来越多的应用到像智能交通、智能家居、智能医疗等的智能应用行业中,以传感设备为基础的各类流式数据的实时接收和处理成为物联网智能应用的关键。 在智能交通应用中,实时采集的交通信息要进行有效的存储,为交通信息服务、交通计算、交通管理等提供数据支持。面对大规模的、快速、实时、连续不间断到达的数据,实现大规模实时数据的存储成为智能交通应用中不可避免的问题。相对于传统的存储介质,HDFS是目前最典型的云存储平台,它凭借其高容错、可伸缩和廉价存储的优点支持大规模数据集的存储。但是HDFS对于海量、高并发、连续、高速的小文件的接收和存储效率并不高,主要有以下的几个问题: 1,面对高速发送来的实时数据,没有考虑文件的接入问题,当同时有多个前端设备请求存储文件时,这就使得存储系统面对的文件一方面是高速发送的文件,另一方面是持久化的历史文件,很容易造成文件的堵塞和丢失。 2,HDFS中每个文件、目录和数据块的存储信息大约占150个字节,如果有一百万个文件,每个文件单独占一个数据块,至少需要300M内存。大量小文件的存放需要耗费很多的内存资源来记录文件信息。 3,存储集群中,每个数据节点存储容量不可能完全一致,由于主节点选择数据节点的随机性,被选中数据节点磁盘可能接近满额,此时主节点会自动做存储负载均衡,占用数据传输带宽,不仅影响数据传输的性能,而且会引起传输数据的不可靠 针对上述的主要问题,本文以HDFS作为底层的存储平台,提出了一种面向大规模实时数据的存储优化方法,通过设置缓存服务器,快速的接受文件,降低文件的丢失率,把海量的小文件合并成大文件,减少文件的数目,降低文件对NameNode的内存占用,提高HDFS的存储效率,并借鉴贪心算法,选择选择最优的节点进行文件的存储,最大化地利用存储资源。本文的主要贡献如下: 第一,设置了高内存的文件缓存服务器,快速接收前端设备发送来的文件,对符合小文件标准的文件添加标识信息,并存入到相应的临时文件队列中,减小了文件的传输时间,降低了文件的丢失率。 第二,借助一致性哈希算法,把队列文件映射到对应的文件处理服务器上,按照先进先出的原则把队列中的文件取出,然后进行合并处理,减少文件对NameNode的内存占用,降低NameNode的存储压力。 第三,提出一种存储节点优化选择算法,通过计算副本存储优选比率,采用基于贪心算法的局部优化存储方案,选择存储节点,达到存储资源的高效利用。