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()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容