H2O平台架构概述

2023-10-09 15:30
文章标签 平台 概述 架构 h2o

本文主要是介绍H2O平台架构概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

    • 1.API 与 REST API
    • 2.框架总体概述
    • 3.Memory Management(存储管理)
    • 4.CPU Management(CPU管理)

1.API 与 REST API

这里可以参考这篇文章什么是REST API
这里我做一个简单的总结:

  • API:Application Programming Interface(应用程序接口)。在我们进行编程的时候我们经常会用到一些其他开发人员已经编写好的类库,也会有对应的“API文档”。从这个层面上来讲,API就是我们调用他们类库时使用的接口。
  • 从本地API到网络API:一些厂商可能带有目的性地将类库开发为经过网络进行请求的API,举一个可能不那么贴切的例子:我们在使用Linux 的时候通常会使用yum或者其他的程序进行文件的下载或者应用的安装,一个如此庞大的“资源库”是不可能保存在本地的,因此我们的请求是通过网络进行发送并有对应的服务器返回我们所需要的资源的,这就是一个网络API的案例。可以认为REST是一种网络API的“格式”。
  • REST API:Representational State Transfer(表示层状态转移)是一个用以描述HTTP API的标准方法。所有依据此方法定义的HTTP API都可以称之为REST API。构建REST API的好处在于:规范了人们进行网络API调用的方式。

注意:REST API并不一样是调用其他服务器的服务,同样可以是本机应用提供的服务。“网络”的概念很宽泛,谨记!!

2.框架总体概述

在这里插入图片描述

  • REST API Client: REST API客户端层,即可以与H2O进行交互和调用的客户实体。包括WebUI Flow,Python,R语言程序等。
  • JVM层: 是H2O的执行主体。
    • language layer: 即语言支持层。该层包括一个R语言引擎以及一个Scale语言的支持模块。“The R evaluation layer is a slave to the R REST client front-end.”根据官方文档的表述,该组件服务于R语言 REST API Client;Scale层支持直接在H2O中编写简单的Scale脚本并执行。
    • algorithm layer: 即H2O内置的算法层。其中包括Parse,用于数据解析;以及一系列的内置机器学习算法。
    • manager layer: 调度与管理层。
      • Task manager: 即CPU管理层。
      • Storage(Memory)manager: 用于内存管理。
  • 其他组件: 可以与H2O配合执行。

3.Memory Management(存储管理)

  • Fluid Vector Frame:

"Frame"是H2O对用户可见的最基本的存储单元。“Fluid Vector(流动向量)”是一个概述性词,H2O能够轻易地对Frame进行增删改操作,相对于一些更为严格存储系统(如HDFS)是“Fluid”。Frame->Vector->Chunk->Element。

  • Distributed K/V store

以K-V键值对方式实现的,原子性的,分布式的基于内存的存储模式。“Atomic and distributed in-memory storage spread across the cluster.”

  • Non-blocking Hash Map

是实现Distributed K/V store的具体方式

4.CPU Management(CPU管理)

  • Job

Job是具有进度条的,可以通过WebUI进行管理大型工作。例如:机器学习模型构建。

  • MRTask

基于MapReduced的任务实现。注意,这里的MapReduce并不是Hadoop中的MapReduce。

  • Fork/Join

任务执行框架。可以简单地理解为:Fork阶段进行任务分配,各节点分别执行对应任务;Join阶段收束工作结束的节点。

这篇关于H2O平台架构概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/173827

相关文章

Maven 插件配置分层架构深度解析

《Maven插件配置分层架构深度解析》:本文主要介绍Maven插件配置分层架构深度解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Maven 插件配置分层架构深度解析引言:当构建逻辑遇上复杂配置第一章 Maven插件配置的三重境界1.1 插件配置的拓扑

Python datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

关于最长递增子序列问题概述

《关于最长递增子序列问题概述》本文详细介绍了最长递增子序列问题的定义及两种优化解法:贪心+二分查找和动态规划+状态压缩,贪心+二分查找时间复杂度为O(nlogn),通过维护一个有序的“尾巴”数组来高效... 一、最长递增子序列问题概述1. 问题定义给定一个整数序列,例如 nums = [10, 9, 2

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。