摘要

近年来,随着大数据场景的兴起,RDBMS由于其自身的扩展性和可用性限制无法满足企业需求。No SQL数据库的出现弥补了传统关系型数据库在大数据领域的不足。No SQL数据库本身具有良好的扩展性、容错性以及实时访问、存储TB级别数据的特点。HBase就是以HDFS和MapReduce为基础的开源No SQL型分布式数据库,它不支持二级索引、事务和批量数据处理时延长等[1]。本文以HBase和Spark为基础,增加插件使HBase支持SQL语句和二级索引,通过修改Spark源码,提升对HBase数据的本地化计算级别。插件对HBase无侵入、低耦合,支持用户输入SQL语句,把输入字段转化为HBase的列族和列限定符,根据不同的场景选取不同的执行方案。MapReduce计算框架具有计算效率低,无法利用HBase的读写缓存的缺陷[1],原始Spark框架不能感知HBase数据分片。本文改进Spark能感知HBase数据分片,对HBase中数据进行高级别本地化计算。最终,将本文设计的系统与业内常用的Hive+HBase方案对比常用SQL消耗的时延[3]。通过实验得出,本文构建的优化方案在没有缺失HBase的优良特性的基础上加强了部分应用场景的实时性。