• hbase rowkey设计的注意事项


    1 充分利用有序性
    
    1.1 如果要scan操作,且不是很频繁,可以利用rowkey的有序性将需要一起扫描的数据放到一起。例如直接用时间戳。这样就可以按时间scan了。这个只要是简单的全表扫描都行。
    
    1.2 同样是scan,还可以利用rowkey的有序性实现数据本地化,设同一类别的数据需要一起扫描,那就可以给rowkey加一个类别前缀。(为了节约磁盘空间,需将类别名称编码)  这个不如垂直爬虫,我要扫描新闻类,或者BBS类,就可以为rowkey加个编码后的新闻,bbs类别id,实现同一类别的url本地化。
    
    1.3  组合rowkey
    
    多个字段组合出rowkey,实现多字段排序以满足我们的程序设计需求,例如爬虫系统的需求有根据host ,优先级,等排序。这个完全可以是使用 hostid_pid(优先级)_urlid(哈希,或者md5)
    
    2.1 避免热点
    频繁按时间段查询,如果用时间戳作为rowkey会造成热点,所以这里需要将rowkey打散到各个节点,将压力分配到各个节点。例如人民币冠字号查询,如果rowkey是冠字号,hbase会将临近的冠字号作为rowkey放到同一个region。这样当频繁查询的时候,就会造成某个regionserver压力过大,形成热点,影响整体性能。
  • 相关阅读:
    MySQL之SQL优化详解(三)
    MySQL之SQL优化详解(二)
    MySQL之SQL优化详解(一)
    RabbitMQ从入门到精通(三)
    RabbitMQ 从入门到精通(二)
    RabbitMQ 从入门到精通 (一)
    Redis 的主从复制(Master/Slave)
    Redis的事务讲解
    Linux CentOS完全卸载PHP
    Linux(CentOS7)常用命令详解
  • 原文地址:https://www.cnblogs.com/i80386/p/3706087.html
Copyright © 2020-2023  润新知