论文部分内容阅读
随着互联网和分布式技术的高速发展,我们进入了 “大数据”时代。当代的大数据具有数据量大、产生传播速率快等特点,并且数据的价值会随着其产生时间的推移而大幅下降,这些特性为大数据的处理带来了很大的挑战。基于Hadoop MapReduce的数据批处理可以满足大数据的吞吐量要求,但其处理间隔一般是小时级的,无法进行数据的实时处理,更加无法满足数据的实时查询要求。针对大数据处理中实时性要求比较高的情况,本文在Spark、HBase开源平台的基础上,设计并实现了一个分布式的数据实时处理系统,实现海量数据的实时转换与查询,并在原有平台的基础上提高实时性和易用性。本课题的主要工作包括:1、对HDFS文件存储策略进行优化:在分发文件时,考虑任务节点的负载情况,减少计算热点和不必要的文件移动,从而增加数据计算的并行度,提高计算任务的实时性。2、实现一个相对通用的、可配置的数据实时转换程序:通过设定源数据格式、源字段的转换规则和过滤规则等来规定计算任务的逻辑,避免相似任务的重复开发。3、为HBase提供辅助索引功能,增加查询的实时性:使用MapReduce的方式构建索引;利用HBase协处理器机制,拦截对表的增删改等操作,对维护辅助进行索引,以保证数据的正确性。4、为HBase增加类SQL查询接口 :能进行基本SQL语句的解析,实现关系型表模式与HBase表模式的转换、SQL语句逻辑与HBase操作逻辑的转化,将SQL语句转变成HBase的相应命令,完成对HBase表的操作。