Yahoo的流核算引擎基准测验-Java-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝29
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:328回复:0

  Yahoo的流核算引擎基准测验

楼主#
更多 发布于:2016-05-31 16:43

Yahoo的流核算引擎比照测验

(yahooStorm团队排名不分先后) Sanket Chintapalli, Derek

Dagit, Bobby Evans, Reza Farivar, Tom Graves, Mark Holderbaugh, Zhuo Liu, Kyle

Nusbaum, Kishorkumar Patil, Boyang Jerry Peng and Paul Poulosky。

免责声明:2015年12月17日的数据,数据团队现已给咱们指出,咱们不小心在Flink基准测验中留下的一些调试代码。

所以Flink基准测验应当不能直接与Storm和Spark对比。 咱们在从头运转和从头发布陈述时现已处理了这个疑问。

更新:2015年12月18日有一个沟通上的误解,咱们运转的Flink的测验代码不是checked

in的代码。 如今调试代码现已删除。数据团队查看了代码,并证明它和如今的运转的测验是共同的。 咱们仍然会在某个时分从头运转它。

摘要-由于缺少实在国际的流基准测验,咱们1对比了Apache

Flink,Apache Storm和 Apache Spark Streaming。 Storm

0.10.0/0.11.0-SNAPSHOT和 Flink 0.10.1 测验标明具有亚秒级的推迟和相对 较高的吞吐量, Storm 99%状况下具有最低的推迟。 Spark Streaming

1.5.1支撑高吞吐量,可是具有相对 较高的推迟。

在yahoo,咱们现已在一些日常运用中支撑咱们的商业开源的大数据渠道上投入巨资。

关于流作业负载,咱们的首选渠道一直Apache的Storm,它替代了咱们的内部开发的S4渠道。

咱们一直在广泛运用Storm,如今yahoo运转Storm节点的数量如今现已到达了2300个(而且还在不断添加中)。

由于咱们开端运用 Storm是在2012年决议的,但如今的流处理体系现状现已发生了很大的改动。

如今有几个别的值得重视的竞赛对手包含 Apache Flink,Apache Spark(Spark Streaming),Apache

Samza,Apache Apex和谷歌的Cloud Dataflow。 有不断添加的谈论评论哪个体系可以供给最佳的功用集,哪一个在哪些条件下功用十分好(例如见

这儿 , 这儿 , 这儿 ,还有这儿 )。

为了给咱们的内部客户供给最佳的流核算引擎东西,咱们想知道Storm擅长啥和它与别的体系对比哪些还需求前进。

要做到这一点,咱们就开端寻找那些可以为咱们供给流处理基准测验的材料,但如今的材料都在一些根本领域有所短缺。 首要,他们没有任何挨近实在国际的用例测验。

因而,咱们决议写一个并将它开源https://github.com/yahoo/streaming-benchmarks

在咱们的开端评价中,咱们决议在咱们的测验约束在三个最盛行的和有希望的渠道(Storm,Flink和Spark),但对别的体系,也期待来稿,并扩展基准的规划。

基准规划

基准的使命是从Kafka读取各种JSON事情,断定有关的事情,并存储每个campaigns活动有关的事情转换成Redis的时刻窗口计数。

这些进程试着侦测数据流所进行的一些常用的操作。

操作的流程如下(和在下面的图中示出):

读取Kafka事情。

反序列化JSON字符串。

过滤掉不有关的事情(根据EVENT_TYPE字段)

取有关字段的快照(ad_id和EVENT_TIME)

ad_id及其相关的campaign_id参加每个事情。 这个信息被存储在Redis中。

每campaign活动一个窗口计数,每窗口计数存储在Redis中,附带终究更新的时刻戳。

此进程有必要可以处理推迟的事情。

输入数据有以下形式:

USER_ID:UUID

PAGE_ID:UUID

ad_id:UUID

ad_type:字符串在{banner,modal,资助查找,邮件,Mobile}

EVENT_TYPE:字符串在{视图,点击,购买}

EVENT_TIME:事情发生时刻戳

IP地址:字符串

生产者创立带有创立时刻戳符号的事情。

截断此刻刻戳到一个特定的数字,这个特定的数字给出了时刻窗口和事情所属的开端时刻

,在Storm和Flink中,尽管更新Redis是定时的,但常常足以满意选定的SLA。 咱们的SLA为1秒,因而咱们每秒一次往Redis写入更新的窗口。

Spark由于其规划的无穷区别,操作上略有不一样,

有一个关于在Spark有些的更多细节是咱们与数据一同记载时刻,并在Redis中记载每个窗口的终究更新时刻。

每次运转时,程序会读取Redis的Windows和Windows的时刻窗口并对比它们的last_updated_at次数、发生的推迟数据点。

由于假如前次事情窗口不能被发送(emit),该窗口将封闭,一个窗口的时刻,其last_updated_at时刻减去其持续时刻之差标明是在窗口从给Kafka到Redis时期通过应用程序的时刻。

window.final_event_latency

=(window.last_updated_at – window.timestamp) – window.duration

这一个有点粗糙,但这个基准测验并没有对这些引擎界说窗口数据粒度的粗细,而是供给了他们行为的更高级视图。

基准设置

10秒时刻窗口

1秒SLA

100 个 campaigns 活动

每次campaigns 活动有10个事情

5 个 Kafka与5个分区节点

1 个 Redis节点

10个作业节点(不包含像Storm的Nimbus和谐节点)

5-10 个Kafka生产者节点

3 个ZooKeeper节点

由于在咱们的架构中,Redis的节点运用一个精心优化的散列计划,仅履行内存查找,它并不会变成瓶颈。

节点被均匀装备,每一个节点有两个英特尔E5530 2.4GHz处理器,总共16个中心(8物理中心,16超线程)每节点。

每个节点具有24GB的内存,机器都坐落同一机架内,通过千兆以太网交换机相连。 集群共具有40个节点。

由于单个生产者最大每秒发生约一万七千事情,咱们跑了Kafka生产者的多个实例,以创立所需的负载。咱们运用在这个基准测验中利用了20到25个节点(作为生产者实例)。

每个topology运用10个worker,挨近咱们看到的yahoo内部正在运用的topology的均匀数目。

当然,yahoo内部的Storm集群更大,可是它们是多租户并运转着很多的topology。

Kafka开端基准测验时会被清空数据,Redis填充了初始数据(ad_id到campaign_id映射),流作业开端后会等候一段时刻,让作业完结发动,让生产者的生产活动稳定在一个特定的速率,并取得所需的总吞吐量。

该体系在生产者被封闭之前会运转30分钟。中止前允许有几秒钟的滞后以让流作业引擎处理完一切,

有 t1ta在下

由于单个生产者最大每瀻 t1ta 2em;">秒发rkgy的均2estam数捰。

这秒>保孥为咱仆测验个引擎的吞吐里-用单>这测骃陈迾中的2emy。

诪基准测验丷, Flink运>Jav Dat StreaAPI完经。

评Flink Dat Strea中APIStormAPI有很多似之。 关亨这种Flink和Storm+数据流可仚被标>为一个向图。

每极点是一个用户界说的算,向边标明数据">活劾。StormAPI运spout bolts

咱们跨这个基准测骵旌Flink/默踫封闟查眀炽。在Flin中值留愺皀装ta 2em如下:

评Flink别的基准测骨运甄Flin>KafkConsumer从Kafka读友数捰。

反序列匷并析。一>反序列m+数捌通自界说的过滆噄过滰。

在>Kafka布s的数捚事情Flink基凄速从50,0010个事/秒17丏/秄改。

关于每>Kafka发射(emi ?率EFlink底处理组的0刹比推迟时刻的基示亥下图。

Kafk a发射(emi ?玹昉相寯共同的。

等借时刻性上华＀直大第990位数时1%s的数捥处理时刻),推迟现一s的添劶1%s的数捥处理推远远夳 99%的数据)。

由>Spark的特处理法Storm纯流核算引擎质不一样>咱付需汆从思考基凚完%的有亰。䇺了满SLA,

Storm和Flin每秶更斒一欐Redi,并圈本缓孥>保孥中忭値。>此规刻>Spark Streaming

基凸用的是型>Spar怤D Streas。

愺>,随 后的评讷中,咱运术语“RDD”而不“DSTREAM”标明s时活micro batch中RDD。处琽直运>Kafk Consumer

Spar1.5。>由于在咱们的基凕Kafka输%的数捯被存储圎5个分匭.Kafk消费者创立具朎5个分匘D TREAM>。

圭今后H一些换>加D Streas,包mams filters。

劔Redis交互数据">蔹换是一牀%状冮$由于咱仁不>每次记轌Redis创端一个自衔掭,咱运甯一mamPartsitios操佧,任RDD代全部分匘皌控权。

相同皆法在䊈同咱们往Redis写兄终究果s的时运甾。

应彬指凨的昽,咱们s写児Redi;">诖泯被完A丨DD蔹p以持基准测验简练,尽箨这䉍伃与好一欎的义兼宂。

Spar没能持主超皑高吞吐釹。每秒到100000音讫旌推迟大添加。

咱们A丘需沿着两诖面进调整p以助>Spar敷衍添加的吞吐釾。

等借时划H这s量调纮#开并因耟添加最夘吞吐釹。战昽,在处理吞吐釄推迟最匷和优牀持续时刻间调整是一耗时皤进稉。

二个幥行w。 添劌幥行似简略,但>Spar束做起束際。

关亯一个实的流核算引擎体系像Stor,一bolt 实侁可仚运随机牌reshufflming诖泫发它s的果s其僉任何数sbolt 实供。

覍扩層规刻M添加二bolt 的幥行s可仾。Spar在一栌状况丷>咱付需汅履衚似HadoopMapReduce程庬决议 集群弌并牌操佧"

初,咱认A丨咱们的操佄昄核算 型CPU-broun ?的,较多分做reshufflmin相reshufflmin

身的开夳弊,但际上瓶预在调纮>所reshufflmin 只 添劌开。咱们疑高吞吟玬的操佋(sSpar束 都昄核算 型的。

终s的果s风趣。䍨一栌窗口持续时刻䋨Spark有䍨一栌的果。

到0刹毻劌图100K事/>10窗口持续时刮)。

这束>二个疑闇,毻s的持续时内无泫处理完一组到时刻窗叉中皌事情,仸昌可的D更皪特处琌窗口持续时则束曀低的推迟〆迀状示亥下图100K事/30窗口持续时刮)。

终穮$三丑象昌>Spark Streaming

输入数捘需汅行-等几0分钎以>Spark完结处琌一的事情。迀状示亥下>。

圆迀不的作世方法HSpark出很多的数捥到盘䊽,极状况丷>咱>终穄讟现盘空缺乏状冄。

终要明的昽,咱传囎在Spar1.5中弤;">诰背压/bac pressure#功>。

假妎体糎是圧首作业埒背压没有>。在二操佚埒背压使更的推迟 丄操佚埒果显背压了>。

改加s皅长纮>此刏Spar处速纬仍跟䍨䊧"示亥下>。咱们的测验标2如今的压功用并没有助咱们的基凒,因而咱禁用京它。

背压上图的功p以与压p下图。 愺>H这种s的果s流处理体>是䍌可受的$由亄数捥处速纂输入数捚的逌w。

Jav API编s冹。咱仆测骔了Apach的Stork 0.100

0.11.0-napshotk刾。napshot /comit -has>a8d253aw。 每个机配一个作业进稇,每个worke给16 tasks

泫处超越每1350010事情的吞吐釾。

相遇删>瓶颇＀直咱禁ACKING>。

在基准测Ttopolog中ACKING用于浐釄控而不昹处琟>。 0.100中HStorm添加一个略的压控,俌咱们可避免ACKING的开。

ACKINGp 0.100k圂150,001/s的吞吐釆测验 / 0.100-稍好,仸 糟糕。

ACKING禁甭HStor圑高吞吐上毄Flink的推迄功要奰。过留愺的昽>ACKING禁甭#陈迈和处琌皆组毛病的功甄禁甄。

瓄论作>

迹昉由亨这䤪个体糹是一丯一个的处理兄事情。叺诖面>,在Spark Streaming 根捄特处琤规刻"处琹逐渐;">诖>刄果〚

A了咱们研究果。

等借时划,但可以处理更高的吞吐釾。

越每135001的事惥>不包吂

Stor 0.100 0.100ACKING甚时皌果$由了他以处速>跟䊘吞吐釹。>此发生皁囎>Stor 0.100

45001m0秒时毕测验 topolog 跑的时越长>越高的推>H迌标明功用在下。

一>这些范#非叺朖明"

需每欃优化p以分挥其势;">计刹。

由虀六进都是一个自bolt或spout。Flink和Sparaggregratio弌并操佄临动的,住Stor非trindeng没期、

迹味着Storm 事惌通过更多皤进稽,对比与别的体系具朆更高的开

扩展功诖面的测骻,并圈测验中包含像Samzk Ape

等别的流处理体糌,会把容错性,处琟s和本利生作丆测验皨基凹。

覍w。 扑构造写起束简略 简略取低推>"

和Flin对毨>刄更高的吞吐釾『假妪没ACKINGHStor甚至十刴高的吞吐釯旌败 Flink,咱们希朤迅譥优bolts组合D智能tuples跘男和改ACKINGE>Storm

期实旌流核算引擥体s间的竞日趋白热匽,但并没朌赢宗" 每渠都各自长缺陷>。

功甄仅s久k,别的安兔下素w。 跃"社匌这些别的大数捥处项盽进衉不斫的新不斆从对皂前迥丯益。

咱仟期徑扩層这个基准测验并测骨这亪体糬的k刾

䇺提供此文。

Jav教程视频E等,包jJav基础教程#级进阶教程等等m+程视频涵盖传智播客>极客学院>达内,大鸿>猎豹网校等等IT业训机皨训学视频价值大。迎点凈诖链接查眾。

> >

> >
>
>table .width"103%">>tr>>td">(www.itziyuan.top)>br" />丙个费>自由,开,享,等m互助的质IT0享"站。>br" />注费0享吚IT训机最新训学视频䇺IT习助!>br" />>>br" />>>br" />>br" />——“质IT0享"社”管理员>䓩生名~>/tdv>
> >
>
发 帖>