Beam技术

2023-10-27

一、简介

在大数据处理中,流计算技术包括Storm、Spark Streaming和Flink,实际应用中还包括Storm Trident、Samura以及Google MillWhell和亚马逊的Kinesis等技术。离线处理基本上都基于Hadoop和Hive,那么实时流计算技术能否像离线数据处理一样出现Hadoop和Hive这种事实上的技术标准呢?Google给出的答案是:Beam。

Apache Beam被认为是继MapReduce、GFS、Bigtable等之后,Google在大数据处理领域对开源社区的又一大贡献,现已成为Apache顶级项目。当然,Beam也代表了Google对数据处理领域一统江湖的雄心。

官网是这样介绍的,Apache Beam是一个先进的统一处理模型(An advanced unified programming model),运行在任何实现了批和流数据处理任务的执行引擎上(Implement batch and streaming data processing jobs that run on any execution engine)。它是一个开源的、统一的模型,用于定义批处理和流处理数据并行处理的管道,使用一个开源的Beam SDK你可以构建一个定义管道的程序,然后,这个管道由Beam支持的分布式后端去执行,其中包括Apache Apex、Apache Flink、Apache Spark和Google Cloud Dataflow。目前Beam可以支持语言有Java、Python、Go。最新版是2018年10月29号发布的2.8.0版本。

Beam技术的本身就在于大数据处理的编程范式和接口定义,而不在于具体的引擎实现Beam的设计目标就是统一离线批处理和实时流处理的编程范式。它的设计者将数据处理的问题统一抽象为Beam Model,数据处理人员只要将业务需求根据Beam Model的四个维度(即What are you computing、Where in event time、Where in processing time、How do refinements of results relate)开发并调用具体的Beam API,然后选用某种地城的执行引擎,就能实现一套代码,run anywhere的目标(底层引擎必须支持Beam)。

 

二、Beam技术

首先需要了解一下Cloud Dataflow,它是一种原生的谷歌云数据处理服务,是一种构建、管理和优化复杂数据流水线的方法,用于构建移动应用、调试、追踪和监控产品级云应用。它采用了谷歌内部技术Flume和MillWheel,其中Flume用于数据的高效并行化处理,MillWheel则用于互联网级别的处理任务。它提供的数据流管理服务可控数据处理作业的执行,数据处理作业可使用Google Cloud Dataflow SDK创建。

Apache Beam本身不是一个流处理平台,而是一个统一的编程框架,它提供了开源的统一的编程模型,帮助用户床架自己的数据处理流水线,从而可以在任意执行引擎之上运行批处理和流处理任务。Beam对流计算场景中的问题进行了抽象和总结,提炼为Beam Model,而用户只需要结合业务需求,根据Beam Model的四个维度调用具体的API,即可生成分布式数据处理Pipeline,并提交到具体执行引擎上执行,最终这些Beam程序可以运行在任何一个计算平台上,只要相应的平台实现了对Beam的支持。Beam拥有以下三个特点:

  • 统一的(Unified):对批处理和流处理用例使用单一的编程模型;
  • 可移植的(Portable):可以在空中环境中执行Pipelines;
  • 可扩展的(Extensible):编写和共享新的SDK、IO连接和转换库。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Beam技术 的相关文章

  • Apache:“AuthType 未设置!” 500错误

    我已经有一段时间没有使用 Apache httpd Web 服务器了 我正在为一个项目启动本地服务器 当我尝试请求 localhost index html 时 我收到 500 错误 并在错误日志中看到以下内容 Tue Jan 21 09
  • 我怎样才能让我的 nextjs with Express 网站在 ssl 上工作

    我们有一个在 Next js 和 Express 上运行的网站 这是在带有 Aapche 的 cPanel 服务器上 并与用作反向代理的 nginx 一起 我需要在网站上安装 ssl 但我对配置应该如何感到非常困惑 我的 server js
  • 升级到 Yosemite 后 Apache 配置损坏

    昨天我升级到 Yosemite 现在我的 Web 开发本地配置不再起作用 我设法在下面设置了一个 userdir Users user public html我可以通过以下方式访问所有网站localhost user websitename
  • mod_perl 无法看到 /tmp 中的文件

    我有一些 mod perl 代码试图访问 tmp 下的文件 但它抛出 没有这样的文件或目录 错误 我在代码中添加了一个 ls al tmp 来查看 Perl 在目录中看到的内容 它只给了我 和 drwxrwxrwt 2 root root
  • 在 Ubuntu 上通过 Apache Web 服务器和 DAV 启用 Subversion 访问

    我的家庭网络上有一台运行 Ubuntu 20 的 PC 我想将其用作我家本地网络中的 Subversion 服务器 我安装了 Apache Web 服务器并安装了 Subversion 现在我想使用 HTTP DAV 协议通过 Apache
  • 如何在纯 HTML 页面中返回特定的 HTTP 状态代码

    Google 建议当网站暂时不可用时返回 503 HTTP 响应 我有一些纯 HTML 网站 如何在纯 HTML 网站中返回 503 状态 我使用的是带有 Apache 的 Linux 机器 您必须在服务器上而不是在 HTML 文件中设置状
  • Django populate() 不可重入

    当我尝试在生产环境中加载 Django 应用程序时 我不断收到此消息 我尝试了所有的 stackoverflow 答案 但没有任何解决办法 任何其他想法 我使用的是 Django 1 5 2 和 Apache Traceback most
  • AH00124:由于可能的原因,请求超出了 10 个内部重定向的限制

    升级我的 Ubuntu 服务器后 我尝试打开我的 WordPress 网站 我在 error log 中收到此错误 AH00124 由于可能的配置错误 请求超出了 10 个内部重定向的限制 如有必要 请使用 LimitInternalRec
  • 在 CGI 模式下运行时如何覆盖 PHP 配置

    有一些教程告诉我如何在 CGI 模式下运行时覆盖 PHP 配置 但我仍然很困惑 因为很多人都认为服务器运行在 Linux 上 虽然我需要这样做also在 Windows 上 我的主机确实使用 Linux 但我的本地开发计算机使用 Windo
  • 从存储库检出代码时出现 SVN 错误 E175002

    在尝试从在线存储库中签出代码时 我收到以下错误 E175002 repos xxx svn vcc default 的报告 我正在尝试从远程计算机上签出代码 经过长时间的研究 我终于找到了一个解决方案 解决方案是allow from all
  • Cakephp 在 Bluehost 上安装

    如何设置 Cakephp 才能在 Bluehost 上正常工作 我应该将我的应用程序 cake 和供应商文件夹以及 htaccess 和 index php 文件放在 public html 目录中吗 我按照这里的说明进行操作 http b
  • Apache httpd 上的选择性代理端口转发

    我正在尝试将 WordPress 集成到在 Nodejs 服务器上运行的网站中 并启用 Apache Httpd 端口转发 以将所有请求从 80 端口转发到 Nodejs 端口 9000 我已将 WordPress 安装到 Apache h
  • Apache2 重写查询字符串转义两次

    在虚拟主机配置文件中使用此规则会导致查询参数的双重转义 RewriteEngine On RewriteCond HTTPS off RewriteRule https HTTP HOST REQUEST URI 例如 http examp
  • 使用 htaccess 将 http://www、http:// 和 https://www 重定向到 https:

    在我的网站上 我在非 www 版本的域上安装了 SSL 证书 我想使用 htaccess 将 http www http non www 和 https www 重定向到 https 我可以将 www 转换为非 www 但 https ww
  • Apache HtAccess AddHandler 以服务器名或 ip 为条件

    我在 Site5 上托管我的临时和生产服务器 在我看来 Site5 是一个相对较好的托管商 问题不在于它们的质量 而在于与 PHP 版本相关的问题 我们的开发服务器使用的是 PHP 5 3 这是一个很好的版本 5 4 太新了 我们还不想使用
  • PHP、htaccess:在 URL 中应用页面标题

    我想在 URL 中应用页面 HTML 标题 例如 在这里 stackoverflow url 是这样的 http stackoverflow com questions 10000000 get the title of a page ur
  • Avro 消息中的架构

    我看到 Avro 消息嵌入了架构 然后是二进制格式的数据 如果发送多条消息并且为每条消息创建新的 avro 文件 模式嵌入不是一种开销吗 那么 这是否意味着生产者批量处理消息然后写入总是很重要 因此写入一个 avro 文件的多条消息只携带一
  • 使用 Apache 在本地网络上托管网站

    我目前在我的机器上使用 Apache 在本地测试 PHP 网站 我只是想知道如何允许连接到本地网络的计算机访问本地计算机上托管的网站 如果仅通过 IP 本地网络上的计算机应该能够访问您的计算机 假设您没有防火墙阻止端口 80 HTTP 完成
  • 强制 Apache HTTPD 以 32 位运行

    我通过从二进制文件 以及 ppc 部分 中剥离 32 位架构 以 64 位模式运行 Apache HTTPD 我这样做是为了使其与 python 和 mysql 更加兼容 然而 我有另一台机器需要它以 32 位模式运行 它仍然保留所有四种原
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp

随机推荐

  • Vue+Element-ui+SpringBoot搭建后端汽车租赁管理系统

    最近在做项目 花了一周的时间搭建了一个十分完备的汽车租赁后端管理系统 页面采用纯Vue2 Element ui搭建 后端采用Springboot Mybatis搭建 数据库采用Mysql 包括了登录验证 根据不同权限进入不同界面 数据增删改
  • Qt标准对话框

    标准对话框 新建桌面应用程序 项目名testStandardDialogs 类名Dialog 基类QDialog 不勾选创建界面文件 1 文件 颜色 字体 对话框 dialog h ifndef DIALOG H define DIALOG
  • java -version 时出现 could not open D:\java\lib\i386\jvm.cfg是什么意思

    简单分几步 删除之前的jdk 删除注册表中相关项 重新安装 注意安装路径不要改变 跟之前可以用的时候一样 配置环境变量 应该是文件缺失导致的问题 JDK在安装的过程当中将会生成如下3个项目 HKEY LOCAL MACHINE SOFTWA
  • what引导的宾语从句

    what引导宾语从句时在从句中作主语 宾语或表语 表示 所 的 1 表示 的东西或事情 相当于 the thing that all that everything that They ve done what they can to he
  • wifi一键配网smartconfig原理及应用

    https blog csdn net flyingcys article details 49283273 智能家居 家电现阶段还处于普及阶段 由于家庭wifi网络的普及 目前普遍采用wifi与路由器完成连接 与手机 云端进行数据交互 智
  • 数据结构与算法 -- 子序列问题

    一 子序列问题 子数组问题是连续的 而子序列问题是不连续的 比如说字符串 I wanna keep a giraffe in my backyard 的一种子序列就可以是 Igbackd 子序列不再要求答案是一个连续的串 一个字符串的子序列
  • 第58步 深度学习图像识别:Transformer可视化(Pytorch)

    一 写在前面 1 pytorch grad cam库 这一期补上基于基于Transformer框架可视化的教程和代码 使用的是pytorch grad cam库 以Bottleneck Transformer模型为例 2 算法分类 pyto
  • Julia概率分布和统计推理

    贷款审批预测数据示例 贝叶斯理论 P Y X P X P XY P X Y P Y 如果 X 是我们的数据 也称为证据 Y 是我们的模型假设 则 P Y 是我们看到任何证据之前的概率 称为先验概率 在实践中 我们通常假设服从均匀分布或正态分
  • 恢复硬盘U盘数据好帮手-finaldata

    FinalData可以很容易地从格式化后的文件和被病毒破坏的文件恢复 甚至在极端的情况下 如果目录结构被部分破坏也可以恢复 只要数据仍然保存在硬盘上 点击下载finaldata企业版
  • 数字图像处理笔记(十):形态学图像处理

    1 引言 数学形态学的语言是集合论 利用集合论知识我们可以实现图像 腐蚀 膨胀 开操作 笔操作 下面就让我们学习一下这些基于形态学的图像处理 2 腐蚀和膨胀 膨胀与腐蚀能实现多种多样的功能 主要如下 消除噪声 分割 isolate 出独立的
  • linux对一个文件夹中的所有文件重命名

    在Linux中 你可以使用mv命令对一个文件夹下的所有文件进行重命名 下面是几种常见的用法 方法1 批量添加前缀或后缀 cd 目标文件夹路径 for file in do mv file 前缀 file done 添加前缀 for file
  • python绘制风向玫瑰图

    一 风向 流向角度和数学角关系 1 数学角和风向角相互转换 数学角向东为0 按照逆时针旋转 北风为0 即指向南为0 顺时针增加 数学角转风向角 1 根据u v获得数学角 2 根据数学角换算风向 360 360是对360取余 数学角向东为0
  • Python核心编程——第4章 多线程编程 笔记

    Python核心编程 第4章 多线程编程 笔记 引言 通用概念 python相关概念 多线程的实现方式 两大模块 三种替代方案 使用Thread类主要的三种创建线程的方法 相关模块 代码实现部分 python3 最简单的线程 定时等待 使用
  • Kubernetes踩坑(一): 部署问题记录

    一 etcd服务启动后报错etcd cluster ID mismatch 检车service配置cluster选项有无问题 若无问题 则可能是此前的etcd bootstrap加速启动缓存残留导致 坑爹的是rm rf var lib et
  • MyBatis中的reflection包(一)ObjectFactory,PropertyTokenizer, Invoker, Reflector

    内容概要 reflection是MyBatis关于反射的工具包 是实现其它功能的基石之一 这里我不准备贴上源码然而逐行解释 而是从需求分析的角度来复现 ObjectFactory 现在有这样的需求 给你一个Class对象 要求你创建它的实例
  • 嵌入式数据结构(查找)(哈希表)

    嵌入式自学第十二天 1 2 代码实现 list c define CRT SECURE NO WARNINGS include list h include stdlib h include string h include stdio h
  • 2023版ChatGPT 能用来帮助谈恋爱吗,如果用 ChatGPT 来谈恋爱会发生什么?

    大家好啊 有没有和ChatGPT聊过天的 5G高手 们呢 ChatGPT是美国AI公司OpenAI开发出来的一款人工智能聊天机器 会通过学习和理解自然语言来跟我们聊天 不管你想聊啥 从诗歌到哲学 它都可以让你感觉像在跟一个超水平牛逼闪耀的老
  • 静态Web服务器-返回固定页面数据

    学习目标 能够写出组装固定页面数据的响应报文 1 开发自己的静态Web服务器 实现步骤 编写一个TCP服务端程序 获取浏览器发送的http请求报文数据 读取固定页面数据 把页面数据组装成HTTP响应报文数据发送给浏览器 HTTP响应报文数据
  • RISC-V IDE MRS使用笔记(九):使用WCH-LinkW实现无线下载、调试

    RISC V IDE MRS使用笔记 九 使用WCH LinkW实现无线下载 调试 1 硬件环境 WCH LinkW无线仿真调试器2块 CH32V307开发板1块 2 软件环境 MRS V185版本 3 无线仿真调试器配对与连接 通过WCH
  • Beam技术

    一 简介 在大数据处理中 流计算技术包括Storm Spark Streaming和Flink 实际应用中还包括Storm Trident Samura以及Google MillWhell和亚马逊的Kinesis等技术 离线处理基本上都基于