HBase写入和读取优化

在开发中,突然遇到了发现Hbase的读取和写入变的非常慢,然后再次检查了代码,有两个地方更改后性能有大幅的提升,说明如下。
网上优化可能很多,这个只是我简单的实践记录。

1 读取优化

Scan操作时候设置缓存

    result.setCaching(10000)
    result.setBatch(5000)

2 写入优化

写入慢最后发现是没有控制一次发HBase的量,直接进行大量的数据一次性写入,造成HBase卡死的一样,更改如下:

           val realSize = batchData.size()
            if (realSize <= 5000) {
              table.put(batchData)
            } else {
             val part = realSize / 5000
             for (index <- 0 until part) {
                table.put(batchData.subList(index * 5000, (index + 1) * 5000))
              }
             table.put(batchData.subList(part * 5000, realSize))
             table.put(batchData.subList(0, 5000))
           }
           table.flushCommits()
    原文作者:明翼
    原文地址: https://www.jianshu.com/p/3ab6dd2b7567
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞