當前位置:編程學習大全網 - 網絡軟體 - 壹文詳解HBase資源隔離相關的解決方案

壹文詳解HBase資源隔離相關的解決方案

易擴展性,準確來說是易橫向擴展性,壹直是HBase引以為豪的優點之壹,所以理論上HBase的集群規模可以做到很大,多個產品和業務的數據可以存在壹個HBase中統壹管理,節省運維資源和成本。

但是集群規模大了,數據量多了,處理負載變高了,加上各個產品和業務之間優先級不同,負載不同,對不同資源的敏感性也不同,使得簡單粗暴的***用壹個集群的效果並不是很好,面對這種業務場景早期的HBase版本並沒有相關的解決方案,所以更多的就是各自為戰,各自用各自的集群,這樣不僅使得HBase集群重復建設,增加硬件投入以及運維成本外,更是埋沒了HBase的易擴展型的特點,所以後續的HBase版本中慢慢加入了多租戶以及業務資源隔離相關的解決方案。

下面就從硬件資源隔離以及業務資源隔離兩個方面來說明下HBase的實現:

此功能用於將統壹的大HBase 集群的 RegionServer 劃分為多個分組,管理員可以將不同的表放入不同分組進行資源隔離,避免無關系的業務之間互相影響。

同樣也可以根據不同的業務需求提供不同的硬件資源。對於於重點業務,可以分配更多的regionserver的機器,降低負載;而對於非重點業務,則可以更少的機器承擔負更多的業務。

目前datanode已經支持了分級存儲,甚至可以將重點業務使用不同的介質,比如SSD,從而達到硬件資源利用率和業務執行效率雙提升的目的。

下圖就是HBase中RsGroup的實現方式:

從上圖以及上面的描述可以看出,RsGroup的特點如下:

啟用過程修改所有節點的hbase-site.xml, 並重啟master即可,配置修改如下:

生產系統中的RsGroup的使用需要兼顧到很多硬件成本以及業務需求相關的限制,下面給出幾個相對通用的原則供大家參考:

最後說說RsGroup使用過程中相關的管理以及註意事項:

RegionServer 默認情況下只提供壹個請求隊列給所有業務使用,該隊列處理所有的讀寫請求,導致部分延遲較高的請求影響其他對延遲敏感的業務,大量的寫請求影響了讀請求。針對這種情況,HBase 提供了讀寫隊列隔離方案。

HBase 有四種典型的數據API操作類型,分別為 get、scan 和put、delete,其中 get 和 scan 屬於 read 類型,put、delete屬於write類型。默認場景下,HBase 只提供壹個隊列,所有請求都會進入該隊列進行優先級排序。在壹些場景下,我們要求這四種類型的訪問盡可能的互相不影響,那麽就需要在線上配置讀寫分離。

首先,我們可以根據HBase的業務特點,即讀多寫少還是寫多讀少來分配讀寫的比例:

HBase 中的相關配置如下:

該值在HBase中默認為0,代表讀寫資源不分離。如果將 hbase.ipc.server.callqueue.read.ratio 設置為0.5,則表示有50%的線程數處理讀請求,剩余50%用於接收寫請求。如果讀多寫少,則將該值設置為0.5-1之間;如果寫多讀少,則將該值設置為0-0.5之間。

其次,在某些場景下,讀操作scan以及get也需要進行隔離,HBase也同樣提供scan以及get的比例:

HBase 中的相關配置如下:

該值在HBase中默認為0,代表scan和get資源不分離。如果將 hbase.ipc.server.callqueue.scan.ratio 設置為0.5,則代表在50%的讀線程之中,再有50%的線程處理 scan,也就是全部線程的25%。如果scan多get少,則將該值設置為0.5-1之間;如果get多scan少,則將該值設置為0-0.5之間。

  • 上一篇:jar怎麽讀
  • 下一篇:求個BT電影的好網站
  • copyright 2024編程學習大全網