iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >HetuEngine怎么实现On Yarn原理
  • 647
分享到

HetuEngine怎么实现On Yarn原理

2023-06-26 05:06:10 647人浏览 独家记忆
摘要

本文小编为大家详细介绍“HetuEngine怎么实现On Yarn原理”,内容详细,步骤清晰,细节处理妥当,希望这篇“HetuEngine怎么实现On Yarn原理”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一

本文小编为大家详细介绍“HetuEngine怎么实现On Yarn原理”,内容详细,步骤清晰,细节处理妥当,希望这篇“HetuEngine怎么实现On Yarn原理”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    什么是On Yarn?

    顾名思义,就是将进程运行在Yarn上,由Yarn进行资源的管理和调度。

    不论是TrinoDB/PrestoDB还是openLooKeng,部署方式都是将coordinator和worker进程直接运行在主机上,与主机上的其他应用程序共享资源,无法做到资源隔离,并且难以扩展。

    MRS HetuEngine借助Yarn Service提供的能力,将coordinator和worker进程以Yarn application的形式运行在Yarn container中,通过MRS集群的租户划分,可以将HetuEngine计算实例启动在特定租户队列里,从而实现资源隔离。

    HetuEngine架构

    下图是HetuEngine的拓扑图。HetuEngine向下可以对接各类数据源(比如Hive,GaussDB,HBaseelasticsearch等),对外向用户提供CLI/JDBC接口。在同一套MRS集群中,HetuEngine可以在不同租户队列中启动多个HetuEngine计算实例,支持一个租户队列上启动一个计算实例。由HetuEngine的HSBroker实例与Yarn Service交互,将租户队列与计算实例绑定,由HSConsole提供运维管理页面,对HetuEngine的多个计算实例进行运维管理操作,包括启动、停止、删除计算实例,对计算实例进行资源配置,扩缩容等。

    HetuEngine怎么实现On Yarn原理

    HetuEngine On Yarn原理

    如前所述,On Yarn就是把进程运行在了Yarn 的container中。HetuEngine 是如何实现将coordinator 和worker运行中Yarn中呢?

    Yarn Service提供了一系列api以及一个通用的AM,让用户可以调用API即可将任务提交到Yarn上,由Yarn实现任务的容器化,对容器进行资源和生命周期管理。详细请参考开源社区的介绍。https://hadoop.apache.org/docs/r3.1.0/hadoop-yarn/hadoop-yarn-site/yarn-service/Overview.html

    HetuEngine的 On Yarn实现正是借助了Yarn Service所提供的能力。在HetuEngine的HSBroker中,调用Yarn Service的API,拉起application,在container中运行HetuEngine自己的进程,也就是coordinator和worker。其中有以下几个关键点:

    Yarn Service API

    创建一个Yarn Service服务的接口是/app/v1/services,参数JSON结构如下。

    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:服务名称,显示在Yarn的resource manager WEB界面servicename;

    • version:版本号

    • description:服务的描述

    • components:一个service中可以包含多个component,以运行不同的任务;

    • components.name:component名称

    • number_of_containers:此component中container的数量;

    • artifact:进程依赖的资源文件,包含id和type信息,type支持docker和tarball

    • launch_command:进程启动命令

    • resource:此component所需的资源。

    HetuEngine的HSBroker根据用户输入构造此json,然后调用Yarn Service API,实现On Yarn。此外Yarn Service还提供stop/delete等API,也由HSBroker调用,实现对HetuEngine计算实例的停止/删除等运维操作。

    依赖文件

    Yarn Service支持资源文件在hdfs上的形式启动进程,其提供的API可以接收tar包以及docker等形式的资源文件,由Yarn Service自行将HDFS上的文件进行资源本地化。因此,HetuEngine只需将依赖的jar包和资源文件提前部署在HDFS上的指定位置,在调用Yarn Service的API时指定资源文件即可。

    租户绑定

    HetuEngine怎么实现On Yarn原理

    HetuEngine支持将计算实例与Yarn的租户队列绑定,每个队列上都可以运行一套coordinator + worker的组合。基于前面Yarn Service能力,只需在构造json时,指定队列信息即可。除了队列,还可以设置container的放置策略(plecement policy),这里不进行详述,可以参考yarn的文档。

    资源管理

    HetuEngine支持用户自定义coordinator和worker的个数以及CPU内存大小。如下图,在HetuEngine的HSConsole页面,用户可以设置计算实例的CPU,内存,节点个数。内部实现是由HSBroker接收用户输入,将container运行所需的资源大小设置在json的resource段中。

    HetuEngine怎么实现On Yarn原理

    当前HetuEngine支持横向扩展worker的个数,实现资源的弹性伸缩。即使在计算实例处于运行中时,也可以手动调整worker的个数,无需重启计算实例。这得益于Yarn Service的API中提供的flex接口,可以实现向一个运行中的application增加或者减少container的数量。

    客户端使用

    HetuEngine的计算实例创建完成后,用户可以通过hetu-cli或者JDBC程序进行访问,需要用户绑定对应的租户队列权限,才能向指定的队列提交任务。

    Hetu CLI示例:

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

    租户名:(可选)租户名。指定HetuEngine启动的租户资源队列,不指定为租户的默认队列。使用此参数时,kinit的用户需要具有该租户对应角色的权限。

    Hetu JDBC示例:

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

    读到这里,这篇“HetuEngine怎么实现On Yarn原理”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

    --结束END--

    本文标题: HetuEngine怎么实现On Yarn原理

    本文链接: https://www.lsjlt.com/news/306934.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • HetuEngine怎么实现On Yarn原理
      本文小编为大家详细介绍“HetuEngine怎么实现On Yarn原理”,内容详细,步骤清晰,细节处理妥当,希望这篇“HetuEngine怎么实现On Yarn原理”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
      99+
      2023-06-26
    • 深入解析HetuEngine实现OnYarn原理
      目录什么是On Yarn?HetuEngine架构HetuEngine On Yarn原理依赖文件租户绑定资源管理客户端使用摘要:本文介绍HetuEngine实现On Yarn的原理...
      99+
      2024-04-02
    • Flink on yarn运行原理的示例分析
      小编给大家分享一下Flink on yarn运行原理的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Flink运行时由两种类型的进程组成:1),JobManager也叫master协调分布式执行。他们调度任务,协调...
      99+
      2023-06-19
    • YARN Capacity Scheduler怎么实现
      这篇文章主要讲解了“YARN Capacity Scheduler怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“YARN Capacity Scheduler怎么实现”吧!特点以队列...
      99+
      2023-06-19
    • 如何实现Spark on Yarn配置日志Web UI
      本篇文章为大家展示了如何实现Spark on Yarn配置日志Web UI,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.进入spark目录和配置文件 [root@sht-sgmhadoopnn-...
      99+
      2023-06-03
    • 怎么掌握Flink on YARN应用启动流程
      本篇内容介绍了“怎么掌握Flink on YARN应用启动流程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
      99+
      2024-04-02
    • Vue中$on和$emit的实现原理分析
      目录Vue中发布订阅模式$emit和$on用法深挖首先剖析一下$on的原理实现有一点要记住先定义的先触发分析$emit先打个断点Vue中发布订阅模式 在Vue中采用了发布订阅模式,典...
      99+
      2024-04-02
    • spark-on-yarn作业提交缓慢优化中的spark jar包处理是怎样的
      这篇文章将为大家详细讲解有关spark-on-yarn作业提交缓慢优化中的spark jar包处理是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。spark on yanr方式运行计算...
      99+
      2023-06-02
    • Node包管理器npm和yarn怎么使用
      这篇文章主要介绍“Node包管理器npm和yarn怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Node包管理器npm和yarn怎么使用”文章能帮助大家解决...
      99+
      2024-04-02
    • Dijkstra算法原理及C++怎么实现
      这篇文章主要介绍“Dijkstra算法原理及C++怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Dijkstra算法原理及C++怎么实现”文章能帮助大家解决问题。什么是最短路径问题如果从图中...
      99+
      2023-07-02
    • Session实现原理
      HTTP协议 ( http://www.w3.org/Protocols/ )是“一次性单向”协议。 服务端不能主动连接客户端,只能被动等待并答复客户端请求。客户端连接服务端,发出一个HTTP Request,服务端处理请求,并且返回一个H...
      99+
      2023-06-03
    • 怎么进行Spark in action on Kubernetes - Spark Operator的原理解析
      怎么进行Spark in action on Kubernetes - Spark Operator的原理解析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言...
      99+
      2023-06-02
    • JS包管理工具yarn怎么安装使用
      这篇文章主要介绍“JS包管理工具yarn怎么安装使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JS包管理工具yarn怎么安装使用”文章能帮助大家解决问题。1. ...
      99+
      2024-04-02
    • CentOS6.5中怎么通过Hadoop用户实现Yarn伪分布式部署
      这篇文章将为大家详细讲解有关CentOS6.5中怎么通过Hadoop用户实现Yarn伪分布式部署,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.修改mapred-site.xml文件,没有...
      99+
      2023-06-03
    • node中间件核心原理怎么实现
      这篇文章主要介绍“node中间件核心原理怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“node中间件核心原理怎么实现”文章能帮助大家解决问题。node中间件主要是指封装http请求细节处理的...
      99+
      2023-07-04
    • java原子类实现的原理是什么
      Java原子类的实现原理是利用了底层的CAS(Compare and Swap)操作。CAS是一种乐观锁机制,它包含三个参数:内存位...
      99+
      2023-10-18
      java
    • golang map 实现原理
      在学习 Golang 的过程中,map 是我们经常使用的一种数据结构,可以用来存储 key-value 对。但是,你是否想过 map 的实现原理是什么呢?在本文中,我们将探究 Golang 中 map 的实现原理。map 实现原理简介map...
      99+
      2023-05-15
    • redis锁实现原理
      redis锁是一种分布式锁机制,通过以下步骤实现:1. 获取锁(setnx);2. 释放锁(del);3. 设置过期时间(expire);4. 锁竞争。它优势在于分布式、简单、高效、可扩...
      99+
      2024-04-19
      redis 并发访问
    • Cookie 实现的原理
      基于响应头set-cookie和请求头cookie实现 第一次访问服务器,响应头会返回 set-Cookie 第二次访问,会带着上次请求返回的 Cookie 访问 也需要注意,...
      99+
      2024-04-02
    • chatgpt的实现原理是什么
      本文小编为大家详细介绍“chatgpt的实现原理是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“chatgpt的实现原理是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
      99+
      2023-02-21
      chatgpt
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作