论文部分内容阅读
随着人们对公共安全越来越重视,视频监控系统在安全防范领域的作用日益突出。现代的视频监控系统需要存储海量的数据,包括视频数据和小文件数据(关键帧、运动物体截图)等,对这些数据进行高效的存取是非常重要的。基于Hadoop分布式框架对海量的视频监控数据进行存储和处理。Hadoop在对海量的视频监控数据进行存储和处理的过程中存在两个问题:其一,OpenCV没有提供解析二进制视频流的接口,导致对视频进行分布式处理时视频的读取性能较差。其二,分布式文件系统对于大文件的流式访问效率非常高,但是对于小文件的存取性能非常低下。根据OpenCV解析本地视频文件的原理,通过将二进制视频流顺序传输到解码包的缓冲区中,调用解码器对解码包中的数据进行解析,实现了二进制视频流的解析和视频的读取优化,以减少Map任务的执行时间。在分布式文件系统中增加小文件的处理模块,利用视频监控系统中小文件存取的相关性及连续性的特点,将系统中的小文件合并成大文件进行存取,以提高小文件的写入性能;采取两级元数据机制以减少元数据节点的内存占用,有效的利用数据节点的内存:在元数据节点中保存小文件的一级索引信息,在数据节点中保存小文件的二级索引信息;另外在数据节点中采用分布独立式缓存结构,利用小文件数据存取的连续性,对文件数据进行缓存预取,以提高小文件的读取性能。实验表明,基于二进制流的解析方法的视频解析速度比现有的方法提高了10%~30%;对于视频监控系统中的小文件,相比于原生的HDFS,改进后的HDFS的小文件写入速度整体提高了57%~62%,读取速度提高了10%~13%,元数据节点的内存使用整体减少了5%~12%。