hbase多租戶實現方案—資源限制—quotas
上次整理了hbasde多租戶基於namespace的許可權管理實現方案,對於一些應用場景,基於namespace許可權的多租戶還不能夠很好的滿足業務的需求。業務有時候不單單需要基於許可權的多租戶,有時候還需要更複雜的基於資源限制排程的多租戶,以滿足在資源有限的情況下優先保證核心重要業務的正常執行。
社群針對這個問題提出了相應的應對措施,主要有如下三點: (
1)資源限制,主要針對使用者、
namespace
以及表的
qps和請求大小進行限制,詳見
hbase-11598 (
2)資源排程,主要針對任務進行優先順序排程,通常會優先排程實時互動而且小的任務,而批量操作任務或者長時間操作任務(大
scan
)優先順序相對較低,詳見
hbase-10993 (
3)資源隔離,將不同表通過物理隔離的方式分布到不同的
regionserver
上,詳見
hbase-6721
本文將會重點介紹
hbase
中的資源限制方案
– quotas
,主要對其使用方式、實現原理進行介紹,並對其實際效果通過實踐進行驗證。另外,本文還會對
hbase
的資源排程原理進行簡單介紹,並對主要配置進行講解。
本文介紹資源限制方案—quotas。主要對其使用方式、實現原理進行介紹,並對其實際效果通過實踐進行驗證。
資源限制-quotas
quotas使用條件
1.hbase版本在1.1.0以上,或者低版本應用了對應的patch(
hbase-11598)
2.quotas
功能預設是關閉的,需要在配置檔案
hbase-site.xml
中通過設定
hbase.quota.enabled
為true
開啟。設定完成之後,需要重啟
hmaster
才能生效
quotas語句詳解
hbase> set_quota type => throttle, throttle_type => read, user =>
'u1'
, table =>
't2'
, limit =>
'10req/sec' (
1)quotas
分別支援表級別以及使用者級別資源限制,或者同時支援表級別和使用者級別,如示例所示 (
2)throttle_type
可以取值
read / write
,分別對隨機讀和隨機寫進行限制
limit
可以從兩個維度對資源進行限制,分別為
req/time
和size/time
,前者限制單位時間內的請求數,後者限制單位時間內的請求資料量。需要指明的是
time
的單位可以是
sec | min | hour | day
,size
的單位可以是
b(bytes) | k | m | g | t | p
,因此limit
可以表示為
』1000req/min』
或者』100g/day』
,分別表示』限制
1分鐘的請求數在
1000
次以內』,』
限制一台的資料量為
100g』
常用quotas語句
hbase> set_quota type => throttle, table =>
't1'
, limit =>
'1000req/sec'
hbase> set_quota type => throttle, throttle_type => write, user =>
'u1'
, limit =>
'10m/sec' (
1)set_quota
命令執行的限制都是針對單個
regionserver
來說的,並不是針對整個集群 (
2)set_quota
命令預設執行後並不會立刻生效,需要等待一段時間才會生效,等待時間預設為
5min
。可以通過引數
hbase.quota.refresh.period
進行設定,比如可以通過設定
hbase.quota.refresh.period = 60000
將生效時間縮短為
1min (
3)可以通過命令
list_quotas
檢視當前所有執行的
set_quota
命令
ELK多租戶方案
日誌分析是目前重要的系統除錯和問題排查的重要手段之一,而目前分布式系統由於例項和機器眾多,所以構建一套統一日誌系統是非常必要的 elk提供了一整套解決方案,並且都是開源軟體,之間互相配合使用,完美銜接,高效的滿足了很多場合的應用,是目前的主流選擇之一。本文主要介紹如何實現一套elk日誌系統同時給多套...
ES多租戶方案調研
如上圖所示,現有索引的邏輯為 1 對於每乙個使用者的每一種非結構化資料,都建立乙個對應的索引user1 log index1 2 對於每乙個索引,預設為乙個分片,副本數量為1 根據現有的邏輯,可以計算得到 單個集群中的索參數量 使用者1 使用者1使用的資料型別數量 使用者2 使用者2使用的資料型別數...
k8s calico網路原理以及多租戶實現設計
基礎概念介紹 租戶 tenant 在網路資源上完全隔離的乙個使用者,在業務上可以代表乙個對於網路有隔離和管理需求的部門。乙個租戶可以對應多個網路。網路 network 在業務上可以代表乙個部門下的乙個專案組。乙個網路只能掛在乙個租戶下面,同時可以有多個子網。子網 subnet 在業務上可以代表乙個部...