| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 2021SC@SDUSC hadoop源码分析(九) -> 正文阅读 |
|
[大数据]2021SC@SDUSC hadoop源码分析(九) |
2021SC@SDUSC 本篇我将对hadoop-tools中的Resource Estimator Service进行分析 Resource Estimator Service概念:原因:对企业集群来说,估算工作资源需求仍然是一个重要且具有挑战性的问题。不断增加的工作负载复杂性放大了这一点,即从传统的批处理作业到交互式查询,再到流式传输和最近的机器学习作业。这导致作业依赖于多个计算框架,如Tez、MapReduce、Spark等。,集群的共享特性进一步加剧了这个问题。当前最先进的解决方案依赖于用户专业知识来估计作业的资源需求(例如:减压器数量或容器内存大小等)。),既繁琐又低效。 集群工作负载中,很大一部分是重复作业,所以该方法就是提出的一个框架不可知的黑盒解决方案,自动对重复作业进行资源需求估计。 目的:
体系架构:? Hadoop-resourceestimator主要由三个模块组成:Translator, SkylineStore and Estimator. 1.ResourceSkyline用于描述作业在其生命周期内的资源利用率。更具体地说,它使用RLESparseResourceAllocation来记录容器分配信息。RecurrenceId用于标识循环管道的特定运行。管道可以由多个作业组成,每个作业都有一个资源麒麟以表征其资源利用。 2.Translator 分析作业日志,提取他们的?ResourceSkylines 并且存储到SkylineStore.SingleLineParser解析日志流中的一行,并提取?ResourceSkyline.由于作业日志可能有各种格式,因此需要不同的单线分析器实现方式,日志分析器启动单线分析器基于用户配置。目前Hadoop-resourceestimator提供了两种实现单线分析器:NativeSingleLineParser支持优化的本机格式,并且RMSingleLineParser解析Hadoop系统中生成的YARN ResourceManager logs。 3.SkylineStore作为Hadoop-resourceestimator的存储层,由两部分组成。HistorySkylineStore由提取翻译者存储ResourceSkylines。它支持四个操作:添加历史、删除历史、更新历史和获取历史。添加历史记录追加?new?ResourceSkylines ,而更新历史记录会删除所有?ResourceSkylines,并重新插入新的?ResourceSkylinesPredictionSkylineStore存储预测的RLESparseResourceAllocation由估计器生成。它支持两个操作:添加估计和获取估计。 4.Estimator根据循环管道的历史运行预测其资源需求,将预测存储到the?SkylineStore 并对YARN (YARN-5326)进行循环资源预留。Solver阅读所有历史ResourceSkylines并预测其新的资源需求RLESparseResourceAllocation。目前Hadoop-resourceestimator提供了LPSOLVER进行预测(线性规划模型的细节可以在论文中找到)。还有一个基本解算器将预测的资源需求转化为ReservationSubmissionRequest它被不同的求解器实现用来在纱上进行循环资源预留。 5.ResourceEstimationServiceHadoop-resourceestimator包装成一个微服务,可以很容易地部署在集群中。它提供了一组REST APIs,允许用户解析指定的作业日志,查询pipeline的历史ResourceSkylines,查询管道的预测资源需求,并运行?SOLVER如果预测不存在,删除ResourceSkylines?in the?SkylineStore. userge这里让$HADOOP_ROOT表示Hadoop安装目录。如果你自己构建Hadoop,$HADOOP_ROOT存在Hadoop-dist/target/Hadoop-$ VERSION。资源估计器服务的位置,$ ResourceEstimatorServiceHome,是$ HADOOP _ ROOT/share/HADOOP/tools/resource estimator。它包含3个文件夹:容器,主配置文件和数据。请注意,用户可以使用默认配置的资源估算器服务。
启动估算器首先,复制配置文件(位于$ resourcestimatservicehome/conf/)到$HADOOP_ROOT/etc/hadoop。 启动估算器的脚本是起始估计量。
启动web服务器,用户可以通过REST APIs使用资源估算服务。 运行估算器资源估计器服务的URI是http://0.0.0.0,默认服务端口为9998(在中配置$ resourcestimaltervicehome/conf/resource estimator-config . XML).在…里$ resourcestimatservicehome/data,有一个示例日志文件resourceEstimatorService.txt其中包含两次运行的tpch_q12查询作业的日志。
发送POST http://0 . 0 . 0 . 0:9998/resource estimator/translator/data/resource estimator service . txt。底层估计器将从日志文件中提取资源线,并将它们存储在作业历史数据库中。
发送GET http://0 . 0 . 0 . 0:9998/resource estimator/sky linestore/history/*/*,底层估计器将返回历史上所有的记录。您应该能够看到两次运行tpch_q12的history ResourceSkylines:tpch_q12_0和tpch_q12_1。请注意,两者都有pipelineId和runId字段支持通配符操作。
发送http://0 . 0 . 0 . 0:9998/resource estimator/estimator/tpch _ q12,底层估算器将根据作业的历史资源线预测新运行的作业资源需求,并将预测的资源需求存储到作业估算天际线存储。
发送http://0 . 0 . 0 . 0:9998/resource estimator/sky linestore/estimation/tpch _ q12,底层估计器将返回tpch_q12作业的历史资源需求估计。请注意,对于jobEstimation SkylineStore,它不支持通配符操作。
发送http://0 . 0 . 0 . 0:9998/resource estimator/sky linestore/history/tpch _ q12/tpch _ q12 _ 0,底层估计器将删除tpch_q12_0的ResourceSkyline记录。重新发送GET http://0 . 0 . 0 . 0:9998/resource estimator/sky linestore/history/*/*,基础估计器将只返回tpch_q12_1的ResourceSkyline。 运行估算器:停止估算器的脚本是停止估计量。
? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:26:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |