• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于HBase的動態(tài)分組研究

    2021-09-23 08:09:32李春煒
    關(guān)鍵詞:降級集群分組

    李春煒

    (中國人民武裝警察部隊指揮學(xué)院,天津 300250)

    1 HBase分組對使用場景的影響

    早期HBase是一個業(yè)務(wù)方一個集群,以業(yè)界標(biāo)準(zhǔn)物理機64核256G內(nèi)存、硬盤SSD 512G*8為基準(zhǔn),至少需要10臺這種配置的機器才能保證集群穩(wěn)定。多個業(yè)務(wù)共用一個集群會導(dǎo)致?lián)屨季W(wǎng)絡(luò)、搶占線程的情況,集群出現(xiàn)故障影響層面較大,導(dǎo)致多個非故障業(yè)務(wù)受到牽連。因此為每個業(yè)務(wù)配置一個集群或者多個非重要業(yè)務(wù)共用一個集群,再或者某些重要的業(yè)務(wù)使用獨立集群,其他非重要業(yè)務(wù)使用公共集群,能夠基本保證業(yè)務(wù)使用HBase的穩(wěn)定性和避免資源浪費。不過隨著業(yè)務(wù)流量變動,或者業(yè)務(wù)暫時下線、新的業(yè)務(wù)加入、老的業(yè)務(wù)退出,如何對表進行相對合理的分組成為了新難題,基本都需要人工根據(jù)現(xiàn)有的集群情況、業(yè)務(wù)的重要性以及未來讀寫預(yù)期進行分組。且隨著時間推移,業(yè)務(wù)的擴縮容都是不可控的,純?nèi)斯さ臅r效性不能得到保障,往往是出了問題再解決,集群可用性風(fēng)險增加,機器成本達不到理想狀態(tài)[1]。

    2 基于HBase的動態(tài)分組

    基于上述問題可以采用一套動態(tài)策略,通過調(diào)用HBase分組隔離功能RegionServer Grouping來實現(xiàn)對表的動態(tài)分組,以達到保障機器資源和降低業(yè)務(wù)風(fēng)險的作用。

    2.1 動態(tài)計數(shù)

    每個業(yè)務(wù)在每個時段都有響應(yīng)的讀寫請求,時間粒度粗則按天為單位,細則按秒為單位,基于HBase客戶端統(tǒng)計業(yè)務(wù)請求數(shù)或根據(jù)HBase服務(wù)端自帶的監(jiān)控指標(biāo)來計數(shù),將統(tǒng)計到的數(shù)量上報到監(jiān)控系統(tǒng)。當(dāng)前業(yè)界普遍采用的監(jiān)控系統(tǒng)有基于kafka的flink實現(xiàn),本文不進行闡述。結(jié)合每個業(yè)務(wù)的請求數(shù),我們就能依據(jù)趨勢圖來提前預(yù)判哪些業(yè)務(wù)應(yīng)該臨時分到特定的分組,哪些業(yè)務(wù)應(yīng)該長時間在某個分組里,具體的分析策略需要結(jié)合業(yè)務(wù)實際情況而定。

    2.2 分組對機器的劃分

    每個集群有一個default分組,不過合理的依據(jù)機器性能創(chuàng)建新的分組可以使機器的使用效益最大化。HBase最大的特性就是可水平擴展大數(shù)據(jù)存儲,無論是HDD磁盤,還是SSD磁盤理論上都是可以利用的。但由于RegionServer和DataNode是部署在一起的,磁盤的性能直接決定了RegionServer的讀寫能力,自然也成為了分組指標(biāo)之一。除了磁盤,CPU和內(nèi)存也是決定機器性能的重要指標(biāo)。判斷一個分組是否合理,還可以分析監(jiān)控指標(biāo),然后人為的或者動態(tài)的進行調(diào)整,指標(biāo)和維度越多,越趨近合理[2]。

    2.3 分組對業(yè)務(wù)的劃分

    業(yè)務(wù)之間有優(yōu)先級的高低。優(yōu)先級高的業(yè)務(wù)必然要使用性能更好的分組;一些流量小,要求不高的業(yè)務(wù),可以調(diào)低優(yōu)先級使用性能一般的分組。除了主觀的調(diào)整外,業(yè)務(wù)分類、流量波峰波谷時間維度、寫入數(shù)據(jù)塊大小等都可作為業(yè)務(wù)評分的標(biāo)準(zhǔn)。主客相結(jié)合的評判對業(yè)務(wù)的定義顯得十分必要。

    2.4 分組的降級

    動態(tài)分組除了能進行常規(guī)的分組操作,面對突發(fā)事件,如跨機房網(wǎng)絡(luò)不通、機房斷電、機器故障等不可抗力的特殊場景,還可以立刻觸發(fā)分組策略對分組進行降級,保障系統(tǒng)的高可用。設(shè)計分組降級策略時,需要充分考慮到業(yè)務(wù)指標(biāo)的重要性,是側(cè)重響應(yīng)時間還是成本。

    2.5 人工干預(yù)

    對動態(tài)分組的研究就是為了解決人工使用中遇到的問題,使HBase系統(tǒng)更加完善。但當(dāng)動態(tài)分組由于設(shè)計缺陷或者編碼錯誤導(dǎo)致系統(tǒng)沒有按照預(yù)期分組時,就需要人為進行干預(yù),確保系統(tǒng)最高控制權(quán)在人的手中。

    3 動態(tài)分組功能設(shè)計與應(yīng)用

    本文所研究的動態(tài)分組功能是基于實驗室特定局域網(wǎng)場景實現(xiàn)的,具體架構(gòu)如圖1所示。

    圖1 動態(tài)分組架構(gòu)圖Fig.1 Dynamic grouping architecture diagram

    3.1 定時任務(wù)模塊

    該模塊是最終執(zhí)行移動分組的模塊,通過定時獲取“策略模塊”計算出的信息來對業(yè)務(wù)進行移動分組。實驗采用spring quartz雙節(jié)點搭配zookeeper選舉master保障單節(jié)點執(zhí)行調(diào)用RegionServer Grouping。執(zhí)行后打印執(zhí)行日志,方便跟蹤系統(tǒng)策略及狀態(tài)[3]。

    3.2 上報模塊

    3.2.1 基于HBase客戶端的上報

    該上報采用異步分鐘級上報,通過HBase自帶依賴包Netty傳輸數(shù)據(jù),以避免使用其他通信框架造成jar包沖突,ReportServer接收客戶端所上報的數(shù)據(jù)。上報的數(shù)據(jù)設(shè)置過期時間,可避免造成大量冷數(shù)據(jù)。本實驗設(shè)置為兩天,上報的數(shù)據(jù)格式為{"clientId":"00001","table Name":"exampleTable","date":"yyyyMMDDhh mm","expired Day":"2","timeArrays":[qps,qps,qps…]},timeArrays存儲為每秒的QPS。服務(wù)端接收到數(shù)據(jù)之后解析并分析數(shù)據(jù)。

    3.2.2 基于HBase服務(wù)端上報

    HBase服務(wù)端上報包含RegionServer上報和DataNode上報,主要監(jiān)控指標(biāo)都集中在RegionServer上。實驗選用了常用的幾個指標(biāo):totalRequestCount、readRequest Count、writeRequestCount、numActiveHandler、numCallsIn GeneralQueue。不同的指標(biāo)可以生成不同的策略,指標(biāo)越多,策略的復(fù)雜度也越高[4]。將這些指標(biāo)上報到實時分析模塊后進行分析,如圖2所示。

    圖2 上報模塊交互圖Fig.2 Reporting module interaction diagram

    3.3 實時分析模塊

    依賴上報數(shù)據(jù)進行實時數(shù)據(jù)分析,為了保證模塊魯棒性將服務(wù)端接口接入kafka,利用flink消費kafka,訂閱生成報表方便管理人員對分組進行實時監(jiān)控,同時將設(shè)定好的策略條件載入到flink 進行計算。實驗使用了一個簡單的閾值來觸發(fā)分組,超過設(shè)定好的QPS,該業(yè)務(wù)分組將被推送到定時任務(wù)模塊隊列,待定時任務(wù)執(zhí)行后,將業(yè)務(wù)移動到新的分組,如圖3所示。

    圖3 實時模塊圖Fig.3 Real-time module diagram

    3.4 離線分析模塊

    除了依據(jù)實時分析模塊對業(yè)務(wù)進行分組外,離線分析模塊和實時分析模塊一樣從kafka訂閱上報數(shù)據(jù),然后根據(jù)數(shù)據(jù)倉庫中相關(guān)維度的數(shù)據(jù)表進行統(tǒng)計分析,從而使得某些策略的閾值更加精確合理,最后依據(jù)最初設(shè)置的權(quán)重來對現(xiàn)有策略進行更新,如圖4所示。

    圖4 離線分析模塊圖Fig.4 Offline analysis module diagram

    3.5 策略模塊

    策略模塊是動態(tài)分組最核心的模塊,該模塊發(fā)揮的優(yōu)劣直接決定了動態(tài)分組的價值。實驗根據(jù)業(yè)務(wù)復(fù)雜度設(shè)計了高中低三種策略。在相同的業(yè)務(wù)集群和應(yīng)用場景設(shè)定下,三種策略的動態(tài)分組結(jié)果均不相同,經(jīng)評估符合正常的分組邏輯。策略如下:

    3.5.1 分組降級策略

    分組降級策略采用單向不可逆的動態(tài)分組,將默認分組部分表移動到中等資源組,中等資源組部分表遇到瓶頸或者抖動繼續(xù)移動到唯一分組,如圖5所示。

    圖5 分組降級策略圖Fig.5 Group downgrade strategy diagram

    3.5.2 流量分析策略

    流量分析策略采用雙向移動策略,分組粒度更細,是在分組降級策略基礎(chǔ)上進一步根據(jù)流量計數(shù)進行分組,按天按周甚至按月在流量低峰時移動,如圖6所示。

    圖6 流量分析策略圖Fig.6 Traffic analysis strategy diagram

    3.5.3 多維度動態(tài)調(diào)整策略

    多維度動態(tài)調(diào)整策略除了采用上述兩種策略外,還采用了流量大小、region個數(shù)、壓縮格式、自定義表權(quán)重、表列數(shù)量、表value大小等策略。這些策略需要多維度組件結(jié)合具體的業(yè)務(wù)需求進行調(diào)整,在資源有限的情況下不推薦使用。

    3.6 人機交互模塊

    任何系統(tǒng)都不能堪稱完美,需要管理者對系統(tǒng)擁有絕對的控制權(quán),因此人機交互模塊保證了人工對動態(tài)分組系統(tǒng)的直接干預(yù)。

    當(dāng)啟動動態(tài)分組功能,系統(tǒng)就能按照特定的時間對各個業(yè)務(wù)進行分析處理,并按照預(yù)期的策略進行分組調(diào)整。調(diào)整后系統(tǒng)繼續(xù)對分組的各個監(jiān)控指標(biāo)進行監(jiān)控,并按天對指標(biāo)進行離線分析,得出推薦策略供人工進行策略調(diào)整,整個動態(tài)分組功能實現(xiàn)閉環(huán),最終趨近于最優(yōu)狀態(tài)。

    3.7 動態(tài)分組在局域網(wǎng)環(huán)境中的應(yīng)用

    實驗?zāi)M業(yè)務(wù)流量成倍數(shù)增加或減少,動態(tài)分組功能啟動,按照業(yè)務(wù)復(fù)雜度從低到高進行橫向擴展,期間記錄了各個分組的使用情況如圖7所示。

    圖7 分組狀態(tài)圖Fig.7 Group state diagram

    動態(tài)分組系統(tǒng)成功調(diào)整了分組并且為業(yè)務(wù)分配新的分組。調(diào)整后機器利用率更加平均,業(yè)務(wù)平穩(wěn)運行。

    4 結(jié)語

    本文針對當(dāng)前業(yè)界對HBase分組使用進行了分析與對比,從現(xiàn)有HBase分組功能尋找出多種策略的動態(tài)分組方案,并實現(xiàn)了一個局域網(wǎng)的基于HBase的動態(tài)分組系統(tǒng)設(shè)計。實驗證明該方法能夠有效的對不同的業(yè)務(wù)場景進行相對合理的動態(tài)分組,保證集群穩(wěn)定性,與常規(guī)的人工配置相比,可提高資源利用率,有較好的研究與推廣價值。

    猜你喜歡
    降級集群分組
    社交降級后,終于舒服了
    現(xiàn)代年輕人“消費降級”現(xiàn)象大掃描
    華人時刊(2023年9期)2023-06-20 08:31:24
    海上小型無人機集群的反制裝備需求與應(yīng)對之策研究
    分組搭配
    “賞石”會被消費降級嗎?
    寶藏(2018年12期)2019-01-29 01:51:08
    消費降級了嗎?
    怎么分組
    一種無人機集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計
    電子制作(2018年11期)2018-08-04 03:25:40
    分組
    Python與Spark集群在收費數(shù)據(jù)分析中的應(yīng)用
    科技| 锦州市| 尼玛县| 惠来县| 汉寿县| 陆良县| 罗江县| 勐海县| 乡宁县| 会昌县| 永济市| 天镇县| 时尚| 德钦县| 朔州市| 台州市| 济南市| 桦南县| 娄烦县| 得荣县| 雅安市| 新密市| 马鞍山市| 丰县| 新宾| 鄂托克前旗| 兴安盟| 叶城县| 信宜市| 泗洪县| 延长县| 荆州市| 诸暨市| 青海省| 昌乐县| 商南县| 义乌市| 石阡县| 大连市| 灵宝市| 绥德县|