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()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容