手把手帶你玩轉HetuEngine:資源規劃與數據源對接

来源:https://www.cnblogs.com/huaweiyun/archive/2023/08/18/17640541.html
-Advertisement-
Play Games

本文分享自華為雲社區《【手把手帶你玩轉HetuEngine】(三)HetuEngine資源規劃》,作者: HetuEngine九級代言 。 HetuEngine支持在服務層角色實例和計算實例兩個維度進行資源規劃,並且支持在高併發場景下通過啟動多個計算實例進行負載分擔和均衡,從而滿足各種業務場景下的資 ...


本文分享自華為雲社區《【手把手帶你玩轉HetuEngine】(三)HetuEngine資源規劃》,作者: HetuEngine九級代言 。

HetuEngine支持在服務層角色實例和計算實例兩個維度進行資源規劃,並且支持在高併發場景下通過啟動多個計算實例進行負載分擔和均衡,從而滿足各種業務場景下的資源規劃需求。

一、HetuEngine角色實例資源規劃

HetuEngine能夠通過服務層對計算實例進行服務化管理,服務層的角色實例包括HSBroker、HSConsole、HSFabric、QAS。

 

可以通過HetuEngine服務層配置對實例參數進行調整,如下圖所示。

 

計算實例資源規劃

HetuEngine的計算實例是一個運行在Yarn容器內的基於記憶體的計算引擎,它一般包含1~2個Coordinator和N個worker,其中Coordinator是管理節點,提供SQL接收、SQL解析、生成執行計劃、執行計劃優化、分派任務和資源調度等能力,如果需要計算實例支持高可用,必須部署兩個Coordinator。Worker是工作節點,提供數據源數據並行拉取,分散式SQL計算等能力。從8.2.1版本開始,HetuEngine支持單租戶多計算實例的形態。

Yarn的租戶隊列、HetuEngine計算實例、計算實例的Coordinator 和 Worker 之間的關係如下圖所示:

Yarn資源池分配示意圖(AM為Yarn的應用管理器)

HetuEngine支持在HSConsole界面對計算實例進行管理,並且能夠對每個計算實例進行差異化配置,如下圖所示

並且支持在創建計算實例的時候添加計算實例級別的自定義參數配置:

HetuEngine計算實例選型與記憶體配置建議

HetuEngine的計算實例作為SQL查詢引擎,是一個純記憶體的計算引擎。因此,從性能的角度考慮,需要給計算實例儘可能多的記憶體資源。

由於HetuEngine的計算實例是onYarn模式,Coordinator和Worker都是運行在Yarn的NodeManager節點上的。

coordinator & worker資源配置推薦

Coordinator建議部署的節點為2個,Worker按實際資源情況部署。

• Coordaintor和Worker的記憶體值配置要求為:

1. 要求yarn.scheduler.maximum-allocation-mb > coordaintor/worker容器記憶體 > JVM記憶體。

2. 建議yarn.scheduler.maximum-allocation-mb記憶體為節點物理記憶體的90%,coordaintor/worker容器記憶體比yarn.scheduler.maximum-allocation-mb,JVM記憶體 為coordaintor/worker容器記憶體比大小的80%。

3. 建議一個節點啟動一個conatiner的形式部署,避免產生記憶體碎片從未造成資源浪費。

4. coordaintor和worker+AM所用到的記憶體資源不能超出該租戶的可使用最大記憶體資源。

• Coordaintor和Worker的CPU值配置要求為:

1. yarn.scheduler.maximum-allocation-vcores 大於coordaintor和worker的vcore。

2. 建議coordaintor和worker的vcore的值比yarn.scheduler.maximum-allocation-vcores的值少2~10個。

3. coordaintor和worker+AM所用到的core資源不能超出該租戶的可使用最大core資源。

隊列資源規劃配置示例

計算實例規模估算

根據業務數據量大致估算計算實例worker的大小和數量

Yarn參數、計算實例記憶體配置

  • Yarn參數調整

調整yarn上container最大核數和最大記憶體相關參數以滿足計算實例估算規模大小要求,在yarn服務級別進行修改

  • 計算實例記憶體調整

HetuEngine的配置(建議CN和Worker配置保持一致):具體修改點如下圖所示,在HSConsole頁面,選擇計算實例,點擊"配置",即可在彈出視窗按下圖修改:

3. 高併發下多實例配置推薦

單HetuEngine計算實例的併發建議低於50,高併發場景下建議啟動多個計算實例進行負載分擔避免性能明顯下降。HetuEngine支持兩種方式啟動多計算實例,一是單租戶單實例的模式,二是單租戶多實例的模式。

 

方式1: 單租戶單實例的部署模式。

可將資源分成多個資源池,每個租戶獨占一個資源池,每個租戶啟動一個計算實例的方式進行部署。例如將資源分成default、online、offline 3個資源池,分別給default、online、offline三個租戶使用,每個租戶啟動一個計算實例,不同的業務將提交到不同的資源隊列:

 

方式2:單租戶多實例的部署模式。

320版本後,HetuEngine支持通過配置在單個租戶內啟動多個計算實例,如下圖所示,不同的業務都提交到同一租戶中的隊列,HetuEngine能夠自動實現單租戶內的各個計算實例均衡負載。

二、HetuEngine數據源對接

HetuEngine能夠支持跨源(多種數據源,如Hive,HBase,GaussDB(DWS),Elasticsearch,ClickHouse等),跨域(多個地域或數據中心)的快速聯合查詢,尤其適用於Hadoop集群(FusionInsight MRS)的Hive、Hudi數據的互動式快速查詢場景。本章將對HetuEngine的數據源對接能力與操作實踐進行介紹。

數據源對接概述

當前HetuEngine數據源對接支持以下幾種能力:

1.支持對接Hive、HBase、GaussDB(DWS),Elasticsearch,ClickHouse、Hudi、IoTDB等多種數據源,並支持對接跨域HetuEngine

2.支持多種數據源的快速聯合查詢並提供可視化的數據源配置、管理頁面,用戶可通過HSConsole界面快速添加數據源,併進行差異化配置

3.數據源動態生效,無需重啟計算實例

4.支持數據源下推

多數據源對接

當前版本HetuEngine支持對接的數據源如表1所示

可視化數據源管理界面

HetuEngine能夠支持多種數據源的快速聯合查詢並提供可視化的數據源配置、管理頁面,用戶可通過HSConsole界面快速添加數據源,併進行差異化配置。操作示例如下圖所示

可以通過最下方“自定義配置”添加相應數據源的自定義配置

數據源動態生效

在HSConsole界面或者使用HSConsole Rest API對數據源的添加、配置、刪除等操作支持動態生效,無須重啟計算實例。

數據源動態生效時間預設為60秒。如需修改動態生效時間,在計算實例自定義配置添加如下參數,例如:

catalog.scanner-interval =120s

數據源計算下推

HetuEngine支持查詢下推(pushdown),它能把查詢,或者部分查詢,下推到連接的數據源。這意味著特殊的謂詞,聚合函數或者其它一些操作,可以被傳遞到底層資料庫或者文件系統進行處理。查詢下推能帶來以下好處:

  1. 提升整體的查詢性能。

  2. 減少HetuEngine和數據源之間的網路流量。

  3. 減少遠端數據源的負載。

HetuEngine對查詢下推的具體支持情況,依賴於具體的Connector,以及Connector相關的底層數據源或存儲系統。

 

點擊關註,第一時間瞭解華為雲新鮮技術~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • # Unity 如何獲取Texture 的記憶體大小 在Unity中,要獲取Texture的記憶體文件大小,可以使用UnityEditor.TextureUtil類中的一些函數。這些函數提供了獲取存儲記憶體大小和運行時記憶體大小的方法。由於UnityEditor.TextureUtil是一個內部類,我們需要 ...
  • ## 引言 今天在做一個設置文件夾路徑的功能,就是一個文本框,加個按鈕,點擊按鈕,彈出 `FolderBrowserDialog` 再選擇文件夾路徑,簡單做法,可以直接 `StackPanel` 橫向放置一個 `TextBox` 和一個 `Image Button`,然後點擊按鈕在 後臺代碼中給 ` ...
  • # Unity 編輯器資源導入處理函數 OnPreprocessTexture 用法 [![https://github.com/AlianBlank/download.unity.com](https://img2023.cnblogs.com/other/406187/202308/406187 ...
  • 他媽的!!!就因為這破事導致我浪費了兩天的時間!!! 都是基礎不扎實的鍋,導致我沒能第一時間想到問題的關鍵 好了,平復一下心情,快速的寫一篇博客來記錄這個叼問題 ## 解決方法 先把結論放在這裡:用`extern "C" {}`把中斷函數包起來 ```C++ // 就像這樣 extern "C" { ...
  • ansible 是用來自動化管理遠程操作系統的工具. ansible的三要素: `控制節點` , `被控節點`, `資產清單` ### 安裝 ansible 可以通過pip直接安裝 ```bash python3 -m pip install ansible --user ``` ### 快速入門 ...
  • 這裡的使用場景是在ubuntu x64上編譯arm程式,需要一個開發環境,而最省心的方式就是自己做一個arm環境的chroot鏡像,然後自由用apt-get安裝依賴,然後編譯程式。所以這裡就以製作arm鏡像為例。 在我們開始之前,我們需要瞭解一下ARM的幾種架構: armel(abi):這個是老架構 ...
  • ## Ansible的安裝及簡單使用 ## #### 一.Ubuntu安裝Ansible ```shell sudo apt update sudo apt install ansible #使用以下命令檢查安裝是否成功: ansible --version ``` ![image-20230817 ...
  • # 一、準備工作 ## 1、配置yum阿裡鏡像源 * 查看yum當前配置的倉庫,如果yum配置的不是阿裡雲源,請配置阿裡雲源。 ```shell yum repolist all ``` * 驗證是否能ping通阿裡雲 ```shell # 如果不能ping通可能是DNS沒有配置 ping mirr ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...