Hbase多租戶實現方案 資源限制 quotas

2021-08-13 08:46:50 字數 2595 閱讀 5701

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 在業務上可以代表乙個部...