[转载出处:www.11jj.com]
阿里妹导读:本文将为大家展示饿了么大数据..在实时计算方面所做的工作,以及计算引擎的演变之路,你可以借此了解Storm、Spark、Flink的优缺点。如何选择一个合适的实时计算引擎?Flink凭借何种优势成为饿了么首选?本文将带你一一解开谜题。
[原创文章:www.11jj.com]
本文作者:易伟平
整理:姬平&郑宁
..现状
下面是目前饿了么..现状架构图:
来源于多个数据源的数据写到kafka里,计算引擎主要是Storm,Spark和Flink,计算引擎出来的结果数据再落地到各种存储上。
目前Storm任务大概有100多个,Spark任务有50个左右,Flink暂时还比较少。
目前我们集群规模每天数据量有60TB,计算次数有1000000000,节点有400个。这里要提一下,Spark和Flink都是on yarn的,其中Flink onyarn主要是用作任务间jobmanager隔离, Storm是standalone模式。
应用场景
1.一致性语义
在讲述我们应用场景之前,先强调实时计算一个重要概念, 一致性语义:
1) at-most-once:即fire and forget,我们通常写一个java的应用,不去考虑源头的offset管理,也不去考虑下游的幂等性的话,就是简单的at-most-once,数据来了,不管中间状态怎样,写数据的状态怎样,也没有ack机制。
2) at-least-once: 重发机制,重发数据保证每条数据至少处理一次。
4) at-least-one + idempotent = exactly-one:如果我们能保证说下游有幂等性的操作,比如基于mysql实现 update on duplicate key;或者你用es, cassandra之类的话,可以通过主键key去实现upset的语义, 保证at-least-once的同时,再加上幂等性就是exactly-once。
2. Storm
饿了么早期都是使用Storm,16年之前还是Storm,17年才开始有Sparkstreaming, Structed-streaming。Storm用的比较早,主要有下面几个概念:
1) 数据是tuple-based
2) 毫秒级延迟
3) 主要支持java, 现在利用apache beam也支持python和go。
4) Sql的功能还不完备,我们自己内部封装了typhon,用户只需要扩展我们的一些接口,就可以使用很多主要的功能;flux是Storm的一个比较好的工具,只需要写一个yaml文件,就可以描述一个Storm任务,某种程度上说满足了一些需求,但还是要求用户是会写java的工程师,数据分析师就使用不了。
大家好,小美今天来为大家解答本市换工作社保怎么转以下问题,本市换工作社保转移要多久很多人还不知道,现在让我们一起来看看吧!1、劳动者
大家好,小美今天来为大家解答大卫科波菲尔人物赏析以下问题,大卫科波菲尔中人物分析很多人还不知道,现在让我们一起来看看吧!1、作者描写
「安谧内陆优质独身男女的真实相亲平台 」网站注册会员冲破40000+人线下注册用户6000+人免费注册| 实名认证 | 搜寻意中人线上线下相亲运动 | 托
大家好,小伟今天来为大家解答水瓶座女和什么座最配男生以下问题,水瓶女生和什么座最配男生很多人还不知道,现在让我们一起来看看吧!1、水
大家好,小豪今天来为大家解答十二星座精灵图片以下问题,十二星座天命精灵很多人还不知道,现在让我们一起来看看吧!1、这个是个动画片来着
重磅来袭《没有一顿暖锅解决不了的事》Hi!列位客官看这里没什么是一顿暖锅不克解决的若是有 就两顿!!!运动预告 北京片子学院将于2024年
点击蓝色字免费订阅,天天收到如许的好信息爱情分手,在现在的社会已是常态,要想本身的恋情长长久久,在还没有爱情之前,你就必需得领略这
大家好,小乐今天来为大家解答肆意以下问题,肆意沦陷全文免费阅读笔趣阁小说很多人还不知道,现在让我们一起来看看吧!1、意思是:纵情任意
Copyright 2024.依依自媒体,让大家了解更多图文资讯!