当前位置: 首页 > news >正文

dede网站入侵百度地图排名可以优化吗

dede网站入侵,百度地图排名可以优化吗,网站建设企业邮箱制作网站,苏州网站设计公司兴田德润怎么样背景: 对于其他数据存储系统来说,统计表的行数是再基本不过的操作了,一般实现都非常简单;但对于HBase这种key-value存储结构的列式数据库,统计 RowCount 的方法却有好几种不同的花样,并且执行效率差别巨大&…

背景:
对于其他数据存储系统来说,统计表的行数是再基本不过的操作了,一般实现都非常简单;但对于HBase这种key-value存储结构的列式数据库,统计 RowCount 的方法却有好几种不同的花样,并且执行效率差别巨大!下面来研究下吧~


测试集群:HBase1.2.0 - CDH5.13.0 四台服务器

注:以下4种方法效率依次提高


一、hbase-shell的count命令

这是最简单直接的操作,但是执行效率非常低,适用于百万级以下的小表RowCount统计!
在这里插入图片描述

 hbase> count 'ns1:t1'hbase> count 't1'hbase> count 't1', INTERVAL => 100000hbase> count 't1', CACHE => 1000hbase> count 't1', INTERVAL => 10, CACHE => 1000

此操作可能需要很长时间,来运行计数MapReduce作业。默认情况下每1000行显示当前计数,计数间隔可自行指定。

默认情况下在计数扫描上启用缓存,默认缓存大小为10行。

行数为 3000W 的表测试结果:

hbase(main):001:0> count 'sda_crm_calls20180102'

在这里插入图片描述
默认INTERVAL为1000行时花了80分钟。。

hbase(main):001:0> count 'sda_crm_calls20180102', INTERVAL => 1000000

在这里插入图片描述

INTERVAL为1000000行时花了130分钟。。


二、scan方式设置过滤器循环计数(JAVA实现)

这种方式是通过添加 FirstKeyOnlyFilter 过滤器的scan进行全表扫描,循环计数RowCount,速度较慢! 但快于第一种count方式!

基本代码如下:
public void rowCountByScanFilter(String tablename){long rowCount = 0;try {//计时StopWatch stopWatch = new StopWatch();stopWatch.start();TableName name=TableName.valueOf(tablename);//connection为类静态变量Table table = connection.getTable(name);Scan scan = new Scan();//FirstKeyOnlyFilter只会取得每行数据的第一个kv,提高count速度scan.setFilter(new FirstKeyOnlyFilter());ResultScanner rs = table.getScanner(scan);for (Result result : rs) {rowCount += result.size();}stopWatch.stop();System.out.println("RowCount: " + rowCount);System.out.println("统计耗时:" +stopWatch.getTotalTimeMillis());} catch (Throwable e) {e.printStackTrace();}
}

耗时45分钟!


三、利用hbase.RowCounter包执行MR任务

这种方式效率非常高!利用了hbase jar中自带的统计行数的工具类!

通过 $HBASE_HOME/bin/hbase 命令执行:

[root@cdh1 ~]# hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'sda_crm_calls20180102'

在这里插入图片描述
在这里插入图片描述

耗时1m40s,速度较上面两种有了质的飞跃!


四、利用HBase协处理器Coprocessor(JAVA实现)

这是我目前发现效率最高的RowCount统计方式,利用了HBase高级特性:协处理器

我们往往使用过滤器来减少服务器端通过网络返回到客户端的数据量。但HBase中还有一些特性让用户甚至可以把一部分计算也移动到数据的存放端,那就是协处理器 (coprocessor)。

协处理器简介:

(节选自《HBase权威指南》)

使用客户端API,配合筛选机制,例如,使用过滤器或限制列族的范围,都可以控制被返回到客户端的数据量。如果可以更进一步优化会更好,例如,数据的处理流程直接放到服务器端执行,然后仅返回一个小的处理结果集。这类似于一个小型的MapReduce框架,该框架将工作分发到整个集群。

协处理器 允许用户在region服务器上运行自己的代码,更准确地说是允许用户执行region级的操作,并且可以使用与RDBMS中触发器(trigger)类似的功能。在客户端,用户不用关心操作具体在哪里执行,HBase的分布式框架会帮助用户把这些工作变得透明。

实现代码:

public void rowCountByCoprocessor(String tablename){try {//提前创建connection和confAdmin admin = connection.getAdmin();TableName name=TableName.valueOf(tablename);//先disable表,添加协处理器后再enable表admin.disableTable(name);HTableDescriptor descriptor = admin.getTableDescriptor(name);String coprocessorClass = "org.apache.hadoop.hbase.coprocessor.AggregateImplementation";if (! descriptor.hasCoprocessor(coprocessorClass)) {descriptor.addCoprocessor(coprocessorClass);}admin.modifyTable(name, descriptor);admin.enableTable(name);//计时StopWatch stopWatch = new StopWatch();stopWatch.start();Scan scan = new Scan();AggregationClient aggregationClient = new AggregationClient(conf);System.out.println("RowCount: " + aggregationClient.rowCount(name, new LongColumnInterpreter(), scan));stopWatch.stop();System.out.println("统计耗时:" +stopWatch.getTotalTimeMillis());} catch (Throwable e) {e.printStackTrace();}
}

在这里插入图片描述
发现只花了 23秒 就统计完成!

为什么利用协处理器后速度会如此之快?

Table注册了Coprocessor之后,在执行AggregationClient的时候,会将RowCount分散到Table的每一个Region上,Region内RowCount的计算,是通过RPC执行调用接口,由Region对应的RegionServer执行InternalScanner进行的。

因此,性能的提升有两点原因:

1.分布式统计。将原来客户端按照Rowkey的范围单点进行扫描,然后统计的方式,换成了由所有Region所在RegionServer同时计算的过程。

2.使用了在RegionServer内部执行使用了InternalScanner。这是距离实际存储最近的Scanner接口,存取更加快捷。

http://www.ritt.cn/news/23768.html

相关文章:

  • 自动采集更新的网站wordpress软文广告文案
  • springboot网站开发网站开发框架
  • 用源码建设网站网络推广平台有哪些?
  • 网站建设的经费成都网站建设公司排名
  • 做一个企业网站设计电子商务营销策略有哪些
  • 用java可以做网站吗广东百度推广的代理商
  • 有哪几个平台做网站简述优化搜索引擎的方法
  • 上海网站备案拍照地点运营培训班有用吗
  • 最新手机网址企业官网seo
  • 泰安房产网数据中心谷歌seo关键词优化
  • 最好的网站设计公司怎么做百度搜索排名
  • 模板网站制作多少钱百度联盟怎么加入
  • 网站快照没了长沙网站优化体验
  • 菏泽做网站的公司10000个免费货源网站
  • 北京海淀建设规划局seo网站推广怎么做
  • 网站gzip压缩张家口网站seo
  • 网站网页的收录数量企业如何网络推广
  • 网页微信版官方杭州seo排名优化外包
  • 安徽区块链虚拟币网站开发价格百色seo外包
  • 重庆seo计费管理郑州seo优化外包公司
  • 网站域名改版怎么做网络推广网站推广淘宝运营商
  • 无锡营销型网站价格google全球推广
  • 公司网站建设申请报告免费建站有哪些
  • 中小型企业网站建设百度点击软件
  • 渭南免费做网站长沙疫情最新数据消息
  • 汕头网站建设优化公司网页制作流程
  • 化妆品网站模版免费下载流量平台
  • 专业网站排名优化公司最近有哪些新闻
  • 主流网站类型百度官网首页官网
  • 如何自建网站做外贸阿里指数在哪里看