最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入解析HetuEngine實(shí)現(xiàn)On Yarn原理

 更新時間:2022年01月12日 16:09:29   作者:華為云開發(fā)者社區(qū)  
這篇文章主要介紹了HetuEngine實(shí)現(xiàn)On Yarn原理,介紹了HetuEngine On Yarn的原理,其實(shí)現(xiàn)主要是借助了Yarn Service提供的能力,感興趣的朋友一起通過本文學(xué)習(xí)下

摘要:本文介紹HetuEngine實(shí)現(xiàn)On Yarn的原理,通過閱讀本文,讀者可以了解HetuEngine如何在資源使用方面融入Hadoop生態(tài)體系。

本文分享自華為云社區(qū)《MRS HetuEngine 特性之 On Yarn原理介紹》,作者:一顆檸檬。

HetuEngine是華為自研高性能分布式SQL查詢&數(shù)據(jù)虛擬化引擎。與大數(shù)據(jù)生態(tài)無縫融合,實(shí)現(xiàn)海量數(shù)據(jù)秒級查詢;支持多源異構(gòu)協(xié)同,使能數(shù)據(jù)湖內(nèi)一站式SQL融合分析。在整合開源能力的同時,MRS HetuEngine相較于開源社區(qū)也做了大量的優(yōu)化,其中一個重要的特性就是On Yarn。

什么是On Yarn?

顧名思義,就是將進(jìn)程運(yùn)行在Yarn上,由Yarn進(jìn)行資源的管理和調(diào)度。

不論是TrinoDB/PrestoDB還是openLooKeng,部署方式都是將coordinator和worker進(jìn)程直接運(yùn)行在主機(jī)上,與主機(jī)上的其他應(yīng)用程序共享資源,無法做到資源隔離,并且難以擴(kuò)展。

MRS HetuEngine借助Yarn Service提供的能力,將coordinator和worker進(jìn)程以Yarn application的形式運(yùn)行在Yarn container中,通過MRS集群的租戶劃分,可以將HetuEngine計算實(shí)例啟動在特定租戶隊列里,從而實(shí)現(xiàn)資源隔離。

HetuEngine架構(gòu)

下圖是HetuEngine的拓?fù)鋱D。HetuEngine向下可以對接各類數(shù)據(jù)源(比如Hive,GaussDB,HBASE,Elasticsearch等),對外向用戶提供CLI/JDBC接口。在同一套MRS集群中,HetuEngine可以在不同租戶隊列中啟動多個HetuEngine計算實(shí)例,支持一個租戶隊列上啟動一個計算實(shí)例。由HetuEngine的HSBroker實(shí)例與Yarn Service交互,將租戶隊列與計算實(shí)例綁定,由HSConsole提供運(yùn)維管理頁面,對HetuEngine的多個計算實(shí)例進(jìn)行運(yùn)維管理操作,包括啟動、停止、刪除計算實(shí)例,對計算實(shí)例進(jìn)行資源配置,擴(kuò)縮容等。

HetuEngine On Yarn原理

如前所述,On Yarn就是把進(jìn)程運(yùn)行在了Yarn 的container中。HetuEngine 是如何實(shí)現(xiàn)將coordinator 和worker運(yùn)行中Yarn中呢?

Yarn Service提供了一系列API以及一個通用的AM,讓用戶可以調(diào)用API即可將任務(wù)提交到Y(jié)arn上,由Yarn實(shí)現(xiàn)任務(wù)的容器化,對容器進(jìn)行資源和生命周期管理。詳細(xì)請參考開源社區(qū)的介紹。https://hadoop.apache.org/docs/r3.1.0/hadoop-yarn/hadoop-yarn-site/yarn-service/Overview.html

HetuEngine的 On Yarn實(shí)現(xiàn)正是借助了Yarn Service所提供的能力。在HetuEngine的HSBroker中,調(diào)用Yarn Service的API,拉起application,在container中運(yùn)行HetuEngine自己的進(jìn)程,也就是coordinator和worker。其中有以下幾個關(guān)鍵點(diǎn):

Yarn Service API

創(chuàng)建一個Yarn Service服務(wù)的接口是/app/v1/services,參數(shù)json結(jié)構(gòu)如下。

POST /app/v1/services
{
  "name": "hello-world",
  "version": "1.0.0",
  "description": "hello world example",
  "components" :
    [
      {
        "name": "hello",
        "number_of_containers": 1,
        "artifact": {
          "id": "nginx:latest",
          "type": "DOCKER"
        },
        "launch_command": "./start_nginx.sh",
        "resource": {
          "cpus": 1,
          "memory": "256",
          "additional" : {
            "yarn.io/gpu" : {
              "value" : 4,
              "unit" : ""
            }
          }     
        }
      }
    ]
  • name:服務(wù)名稱,顯示在Yarn的resource manager WEB界面servicename;
  • version:版本號
  • description:服務(wù)的描述
  • components:一個service中可以包含多個component,以運(yùn)行不同的任務(wù);
  • components.name:component名稱
  • number_of_containers:此component中container的數(shù)量;
  • artifact:進(jìn)程依賴的資源文件,包含id和type信息,type支持docker和tarball
  • launch_command:進(jìn)程啟動命令
  • resource:此component所需的資源。

HetuEngine的HSBroker根據(jù)用戶輸入構(gòu)造此json,然后調(diào)用Yarn Service API,實(shí)現(xiàn)On Yarn。此外Yarn Service還提供stop/delete等API,也由HSBroker調(diào)用,實(shí)現(xiàn)對HetuEngine計算實(shí)例的停止/刪除等運(yùn)維操作。

依賴文件

Yarn Service支持資源文件在HDFS上的形式啟動進(jìn)程,其提供的API可以接收tar包以及docker等形式的資源文件,由Yarn Service自行將HDFS上的文件進(jìn)行資源本地化。因此,HetuEngine只需將依賴的jar包和資源文件提前部署在HDFS上的指定位置,在調(diào)用Yarn Service的API時指定資源文件即可。

租戶綁定

HetuEngine支持將計算實(shí)例與Yarn的租戶隊列綁定,每個隊列上都可以運(yùn)行一套coordinator + worker的組合?;谇懊鎅arn Service能力,只需在構(gòu)造json時,指定隊列信息即可。除了隊列,還可以設(shè)置container的放置策略(plecement policy),這里不進(jìn)行詳述,可以參考yarn的文檔。

資源管理

HetuEngine支持用戶自定義coordinator和worker的個數(shù)以及CPU內(nèi)存大小。如下圖,在HetuEngine的HSConsole頁面,用戶可以設(shè)置計算實(shí)例的CPU,內(nèi)存,節(jié)點(diǎn)個數(shù)。內(nèi)部實(shí)現(xiàn)是由HSBroker接收用戶輸入,將container運(yùn)行所需的資源大小設(shè)置在json的resource段中。

當(dāng)前HetuEngine支持橫向擴(kuò)展worker的個數(shù),實(shí)現(xiàn)資源的彈性伸縮。即使在計算實(shí)例處于運(yùn)行中時,也可以手動調(diào)整worker的個數(shù),無需重啟計算實(shí)例。這得益于Yarn Service的API中提供的flex接口,可以實(shí)現(xiàn)向一個運(yùn)行中的application增加或者減少container的數(shù)量。

客戶端使用

HetuEngine的計算實(shí)例創(chuàng)建完成后,用戶可以通過hetu-cli或者JDBC程序進(jìn)行訪問,需要用戶綁定對應(yīng)的租戶隊列權(quán)限,才能向指定的隊列提交任務(wù)。

Hetu CLI示例:

hetu-cli --catalog hive --tenant tenantName --schema schemaName

租戶名:(可選)租戶名。指定HetuEngine啟動的租戶資源隊列,不指定為租戶的默認(rèn)隊列。使用此參數(shù)時,kinit的用戶需要具有該租戶對應(yīng)角色的權(quán)限。

Hetu JDBC示例:

Properties properties = new Properties();
...…
properties.setProperty("tenant", "default");       
properties.setProperty("deploymentMode", "on_yarn");
……
connection = DriverManager.getConnection(url, properties);
……

本文主要介紹了HetuEngine On Yarn的原理,其實(shí)現(xiàn)主要是借助了Yarn Service提供的能力,感興趣的讀者可以深入閱讀開源社區(qū)相關(guān)的介紹。

到此這篇關(guān)于解析HetuEngine實(shí)現(xiàn)On Yarn原理的文章就介紹到這了,更多相關(guān)HetuEngine實(shí)現(xiàn)On Yarn原理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ChatGpt無法訪問或錯誤碼1020的幾種解決方案

    ChatGpt無法訪問或錯誤碼1020的幾種解決方案

    ChatGPT是一種語言模型,它被訓(xùn)練來對對話進(jìn)行建模,下面這篇文章主要給大家介紹了關(guān)于ChatGpt無法訪問或錯誤碼1020的幾種解決方案,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 滑動驗(yàn)證碼的設(shè)計與理解

    滑動驗(yàn)證碼的設(shè)計與理解

    這篇文章主要介紹了滑動驗(yàn)證碼的設(shè)計與理解,本文通過實(shí)例代碼給大家介紹小網(wǎng)站是怎么設(shè)計的,代碼簡單易懂,需要的朋友可以參考下
    2019-08-08
  • SHA:安全散列算法簡析 附實(shí)例

    SHA:安全散列算法簡析 附實(shí)例

    SHA (Secure Hash Algorithm,譯作安全散列算法) 是美國國家安全局 (NSA) 設(shè)計,美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST) 發(fā)布的一系列密碼散列函數(shù)
    2020-06-06
  • IntelliJ IDEA 2020最新注冊碼(親測有效,可激活至 2089 年)

    IntelliJ IDEA 2020最新注冊碼(親測有效,可激活至 2089 年

    這篇文章主要介紹了IntelliJ IDEA 2020最新注冊碼,親測有效,可激活至 2089 年,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 全網(wǎng)最全Git命令手冊

    全網(wǎng)最全Git命令手冊

    Git是一個很強(qiáng)大的分布式版本控制系統(tǒng)。它不但適用于管理大型開源軟件的源代碼,管理私人的文檔和源代碼也有很多優(yōu)勢。 本文主要介紹了全網(wǎng)最全Git命令手冊,感興趣的可以了解一下
    2021-12-12
  • 解決MobaXterm連接報錯Network error:Connection timed out問題

    解決MobaXterm連接報錯Network error:Connection timed 

    這篇文章主要介紹了解決MobaXterm連接報錯Network error:Connection timed out問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 微信小程序開發(fā)實(shí)例詳解

    微信小程序開發(fā)實(shí)例詳解

    這篇文章主要介紹了微信小程序開發(fā)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • IDEA出現(xiàn)java:程序包javax.servlet不存在問題解決方法

    IDEA出現(xiàn)java:程序包javax.servlet不存在問題解決方法

    這篇文章主要給大家介紹了關(guān)于IDEA出現(xiàn)java:程序包javax.servlet不存在問題的解決方法,這個錯誤提示意味著你的Java程序中缺少了javax.servlet這個包,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • thymeleaf實(shí)現(xiàn)th:each雙重多重嵌套功能

    thymeleaf實(shí)現(xiàn)th:each雙重多重嵌套功能

    今天給大家分享一個使用 thymeleaf 實(shí)現(xiàn)一個動態(tài)加載一二級文章分類的功能,本文通過代碼講解的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-11-11
  • git?push?origin?HEAD:refs/for/master?的意思分析

    git?push?origin?HEAD:refs/for/master?的意思分析

    這篇文章主要介紹了git?push?origin?HEAD:refs/for/master?的意思,補(bǔ)充介紹了git?提交代碼常用命令,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01

最新評論

且末县| 永昌县| 宁河县| 东宁县| 青海省| 平邑县| 恩平市| 灵台县| 朝阳区| 焦作市| 巴彦县| 连城县| 祁阳县| 泰顺县| 衢州市| 绍兴县| 阳曲县| 武山县| 南部县| 饶河县| 资阳市| 上杭县| 青岛市| 藁城市| 哈尔滨市| 潞城市| 宁国市| 南木林县| 安陆市| 墨竹工卡县| 札达县| 朝阳县| 万源市| 昭觉县| 县级市| 兴安县| 称多县| 廉江市| 阳曲县| 民勤县| 新巴尔虎右旗|