一种基于Spark内存技术对HBase数据库加速读写的方法技术

技术编号:20221643 阅读:35 留言:0更新日期:2019-01-28 20:11
本发明专利技术公开了一种基于Spark内存技术对HBase数据库加速读写的方法,对Hbase数据库进行改进,将数据的计算单元由Hbase转到Spark内存计算,数据的高效存储使用Hbase on HDFS架构,调用相应的API进行增加、删除、修改、查找操作,利用内存计算的优势实现大规模列式数据库在高并发、低延时场景的实时查询要求。本发明专利技术的一种基于Spark内存技术对HBase数据库加速读写的方法和现有技术相比,采用内存计算对传统Hbase数据库进行改造,对海量数据的入库、查询均有大幅度性能提升,不仅能够有效提高大数据集群计算性能、缩短产品研发周期,通过内存的高IO特性还可对集群的高并发能力和稳定性进行有效提升。

【技术实现步骤摘要】
一种基于Spark内存技术对HBase数据库加速读写的方法
本专利技术涉及大数据计算
,具体地说是一种基于Spark内存技术对HBase数据库加速读写的方法。
技术介绍
在大数据时代,每日均会存储计算数以亿计的海量数据。优秀的列式存储组件HBase具有较好的存储、计算、稳定性和平行扩展能力,被使用的范围越来越广,但仍面临一些问题。如,高并发读写混合不足、全局扫描性能不高、复杂语法支持不够等。内存计算组件Spark作为一款高性能的内存计算框架,在实时计算领域具有很大的优势。
技术实现思路
本专利技术的技术任务是提供一种基于Spark内存技术对HBase数据库加速读写的方法。本专利技术的技术任务是按以下方式实现的:一种基于Spark内存技术对HBase数据库加速读写的方法,对Hbase数据库进行改进,将数据的计算单元由Hbase转到Spark内存计算,数据的高效存储使用HbaseonHDFS架构,调用相应的API进行增加、删除、修改、查找操作,利用内存计算的优势实现大规模列式数据库在高并发、低延时场景的实时查询要求。所述的调用相应的API进行增加、删除、修改、查找操作,包括,采用Scala或Java语言调用相应的API进行操作。该方法操作具体步骤如下:步骤1)配置Hbase相应Jar包文件依赖,确保Hbase方法可被Spark正常获取;步骤2)使用HBaseShell创建表,create'access_log','info';步骤3)启动SparkShell,执行bin/spark-shell–masteryarn–deploy-modeclient–num-executors5–executor-memory500m–executor-cores2;步骤4)配置文件修改,Spark应用需要连接到zookeeper集群,然后借助zookeeper访问Hbase集群;步骤5)Bulkload数据写入Hbase,将45M大小的access_log.log文件导入到Hbase中,用时7秒。所述的步骤1)中,配置Hbase相应Jar包文件依赖,是基于Spark1.0及以上版本。所述的步骤4)中,借助zookeeper访问Hbase集群,包括:将hbase-site.xml文件加入classpath。所述的步骤4)中,借助zookeeper访问Hbase集群,包括:在HBaseConfiguration实例中设置。本专利技术的一种基于Spark内存技术对HBase数据库加速读写的方法和现有技术相比,采用内存计算对传统Hbase数据库进行改造,对海量数据的入库、查询均有大幅度性能提升,使用SparkonHbase的方式,不仅能够有效提高大数据集群计算性能、缩短产品研发周期,通过内存的高IO特性还可对集群的高并发能力和稳定性进行有效提升。具体实施方式实施例1:一种基于Spark内存技术对HBase数据库加速读写的方法,对Hbase数据库进行改进,将数据的计算单元由Hbase转到Spark内存计算,数据的高效存储使用HbaseonHDFS架构,采用Scala或Java语言调用相应的API进行增加、删除、修改、查找操作,利用内存计算的优势实现大规模列式数据库在高并发、低延时场景的实时查询要求。该方法操作具体步骤如下:步骤1)基于Spark1.0及以上版本,配置Hbase相应Jar包文件依赖,确保Hbase方法可被Spark正常获取;例如:spark-defaults.conf添加配置项spark.driver.extraClassPath/opt/hadoop/data/lib/*,其中/opt/hadoop/data/lib/路径下放Hbase依赖的jar包;步骤2)使用HBaseShell创建表,create'access_log','info';步骤3)启动SparkShell,执行bin/spark-shell–masteryarn–deploy-modeclient–num-executors5–executor-memory500m–executor-cores2;步骤4)配置文件修改,Spark应用需要连接到zookeeper集群,然后借助zookeeper访问Hbase集群;实现方法有两种:一种是将hbase-site.xml文件加入classpath;另一种是在HBaseConfiguration实例中设置;例如:valconf=HBaseConfiguration.create();conf.set("hbase.zookeeper.quorum","slave1,slave2,slave3");conf.set("hbase.zookeeper.property.clientPort","2181");conf.set("zookeeper.znode.parent","/hbase")步骤5)Bulkload数据写入Hbase,将45M大小的access_log.log文件导入到Hbase中,用时7秒。相比传统插入模式使用7分钟展现出60倍速度的提升。例如:valconf=HBaseConfiguration.create();conf.set("hbase.zookeeper.quorum","slave1,slave2,slave3");conf.set("hbase.zookeeper.property.clientPort","2181");conf.set("zookeeper.znode.parent","/hbase");conf.set(TableInputFormat.INPUT_TABLE,"access_log");valtable=newHTable(conf,"access_log");lazyvaljob=Job.getInstance(conf);job.setMapOutputKeyClass(classOf[ImmutableBytesWritable]);job.setMapOutputValueClass(classOf[KeyValue]);HFileOutputFormat.configureIncrementalLoad(job,table);valrdd=sc.textFile("/opt/hadoop/data/access.log").zipWithIndex().map(x=>{valkv:KeyValue=newKeyValue(Bytes.toBytes(x._2+1),"info".getBytes(),"value".getBytes(),x._1.getBytes())(newImmutableBytesWritable(Bytes.toBytes(x._2+1)),kv)});rdd.saveAsNewAPIHadoopFile("/tmp/data1",classOf[ImmutableBytesWritable],classOf[KeyValue],classOf[HFileOutputFormat],conf);valbulkLoader=newLoadIncrementalHFiles(conf);bulkLoad本文档来自技高网...

【技术保护点】
1.一种基于Spark内存技术对HBase数据库加速读写的方法,其特征在于,对Hbase数据库进行改进,将数据的计算单元由Hbase转到Spark内存计算,数据的高效存储使用Hbase on HDFS架构,调用相应的API进行增加、删除、修改、查找操作,利用内存计算的优势实现大规模列式数据库在高并发、低延时场景的实时查询要求。

【技术特征摘要】
1.一种基于Spark内存技术对HBase数据库加速读写的方法,其特征在于,对Hbase数据库进行改进,将数据的计算单元由Hbase转到Spark内存计算,数据的高效存储使用HbaseonHDFS架构,调用相应的API进行增加、删除、修改、查找操作,利用内存计算的优势实现大规模列式数据库在高并发、低延时场景的实时查询要求。2.根据权利要求1所述的基于Spark内存技术对HBase数据库加速读写的方法,其特征在于,所述的调用相应的API进行增加、删除、修改、查找操作,包括,采用Scala或Java语言调用相应的API进行操作。3.根据权利要求1所述的基于Spark内存技术对HBase数据库加速读写的方法,其特征在于,该方法操作具体步骤如下:步骤1)配置Hbase相应Jar包文件依赖,确保Hbase方法可被Spark正常获取;步骤2)使用HBaseShell创建表,create'access_log','info';步骤3)启动SparkShell,执行bin/spark-shell–masteryarn–deploy-modeclie...

【专利技术属性】
技术研发人员:王文文路国隋梁志勇牛硕
申请(专利权)人:浪潮软件股份有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1