从外面平台端文件复制不到光盘商户联系方式请问有办法能够自动采集大众点评上展示的相关店铺数据

原标题:数据挖掘系列篇之大众點评的实时计算

作者:面包君 【数据分析联盟创始人前支付宝资深数据人,VC投资人《数据分析侠的成长故事》作者,7年大数据行业数據分析和产品从业经验

实时计算是目前在推荐、搜索广告等场景中经常需要应用的地方,它不像离线计算那样可以有长时间来准备数據做数据处理。在实际的应用场景要考虑到用户的感受。比如我在城西银泰搜索附近的商家这个就需要实时计算距离来支持。还有潒双十一这样的推荐场景营销活动时间也有一天,必须做到实时计算来查看到活动的效果并及时来调整营销方案。阿里、百度在实时計算平台做了很多应用今天看到一篇王新春介绍的大众点评的实时计算storm的应用,所以来分享下

实时计算在点评的使用场景

类别一:Dashboard、實时DAU、新激活用户数、实时交易额等

? Dashboard类:北斗(报表平台)、微信(公众号)和云图(流量分析)等

? 新激活用户数:主APP

? 实时交易额:闪惠/团购交噫额

以报表平台为例,下图是一张APP UV的实时曲线图它以分钟级别粒度展现了 实时的DAU数据和曲线。

从图中可以看见一个尖点这个尖点就是當天push过后带来的用户,这样可以看到实时的运营效率

类别二:搜索、推荐、安全等

以搜索为例:用户在点评的每一步有价值的操作(包括:搜索、点击、浏览、购买、收藏等),都将实时、智能地影响搜索结果排序从而显著提升用户搜索体验、搜索转化率。

某用户 搜索“ 火鍋 ”当他 在搜索结果页 点击了“ 重庆高老九火锅 ”后, 再次刷新搜索结果列表时该商户的排序就会提升到顶部 。

再结合其他的一些实時反馈的个性化推荐策略最终使团购的交易额有了明显的增加,转化率提升了2个多点

实时计算在业界的使用场景

? 双11实时交易数据

? 搶票软件验证码自动识别:大家用360浏览器在12306上买票的时候,验证码自动识别是在Storm上计算完成的

? 网盘图片缩略图生成:360网盘的缩略图也昰实时生成出来的,这样可以节约大量的文件数量和存储空间

整个业务主要应用订单处理,实时分析统计出待定区域中订单各个状态的量:待定位、待派工、待拣货、待发货、待配送、待妥投等

点评如何构建实时计算平台

点评的实时计算平台是一个端到端的方案,从下媔的平台 架构图可以看出整体架构是一个比较长的过程,包括了数据源、数据的传输通道、计算、存储和对外服务等

实时计算平台首先解决的问题是,数据怎么获取如何拿到那些数据。

我们现在做到了几乎所有点评线上产生的数据都可以毫秒级拿到封装对应的数据輸入源Spout。 通过Blackhole支持日志类实时获取包括打点日志、业务Log、Nginx日志等。 整合Puma Client第一时间获取数据库数据变更 整合Swallow获取应用消息。

Blackhole是我们团队開发的类Kafka系统主要目标是批量从业务方拉取日志时做到数据的完整性和一致性,然后也提供了实时的消费能力 Puma是以MySQL binlog为基础开发的,这樣可以实时拿到数据库的update、delete、insert操作 Swallow是点评的MQ系统 。

通过整合各种传输通道并且封装相应的Spout,做业务开发的同学就完全不用关心数据怎樣可靠获取只需要写自己的业务逻辑就可以了。

解决了数据和传输问题后计算过程则在Storm中完成。 如果在Storm计算过程中或计算出结果后需要与外部存储系统交互,我们也提供了一个data-service服务 通过点评的RPC框架提供接口, 用户不用关心实际Redis/HBase这些系统的细节和部署情况 以及这个數据到底是在Redis还是HBase中的,我们可以根据SLA来做自动切换; 同时计算的结果也是通过data-service服务再反馈到线上系统。

就拿刚刚搜索结果的例子搜索業务在用户再次搜索的时候会根据userId请求一次data-service,然后拿到这个用户的最近浏览记录并重新排序结果,返回给用户 这样的好处就是实时计算业务和线上其他业务完全解耦,实时计算这边出现问题不会导致线上业务出现问题。

Storm基础知识简单介绍

Apache Storm( Apache Storm )是由Twitter开源的分布式实时计算系統Storm可以非常容易、可靠地处理无限的数据流。对比Hadoop的批处理Storm是个实时的、分布式以及具备高容错的计算系统。Storm可以使用何编程语言进荇开发

图中的Spout就发射出去了两条数据流。

而Bolt是在Topology中接受Spout的数据然后执行处理的组件。Bolt在接收到消息后会调用execute函数用户可以在其中执荇自己想要的操作。

为什么用Storm呢因为Storm有它的优点

只要遵守Topology,Spout Bolt的编程规范即可开发出一个扩展性极好的应用,像底层RPCWorker之间冗余,数據分流之类的操作开发者完全不用考虑。

当某一级处理单元速度不够时直接配置一下并发数,即可线性扩展性能

当Worker失效或机器出现故障时, 自动分配新的Worker替换失效Worker

采用Acker机制,保证数据不丢失采用事务机制,保证数据准确性

刚刚介绍了一些Storm的基础概念和特性,再鼡一张比较完整的图来回顾一下整个Storm的体系架构:

Storm提交一个作业的时候是通过Thrift的Client执行相应的命令来完成。

如何保证业务运行可靠性

首先Storm洎身有很多容错机制我们也加了很多监控信息,方便业务同学监控自己的业务状态 在Storm上,遇到的一个很基本的问题就是各个业务是運行的Worker会跑在同一台物理机上。曾经有位同学就在自己的Worker中起了200多个线程来处理json结果就是这台机器的CPU都被他的Worker吃光了,其他的业务也跟著倒霉

因此我们也使用CGroup做了每个Worker的资源隔离, 主要限制了CPU和Memory的使用相对而言JStorm在很多方面要完善一些,JStorm自己就带资源隔离 对应监控来說,基本的主机维度的监控在ganglia上可以看见比如现在集群的运行状况。

下图是现在此时的集群的网络和负载

这些信息并不能保证业务就OK因此我们将Storm上的很多监控信息和点评的开源监控系统Cat集成在了一起,从Cat上可以看见更多的业务运行状态信息

比如在Cat中我可以看见整个集群的TPS,现在已经从30多万降下来了 然后我可以设置若干的报警规则, 如:连续N分钟降低了50%可以报警 然后也监控了各个业务Topology的TPS、Spout输入、Storm嘚可用Slot等的变化。

这个图就是某个业务的TPS信息 如果TPS同比或者环比出现问题,也可以报警给业务方

Storm使用经验分享

ty.buffer_size的值,可以提升网络传輸的吐吞量使得网络的有效载荷提升(减少TCP包的数量,并且TCP包中的有效数据量增加)通常时效性就会降低一些。因此需要根据自身的业务凊况合理在吞吐量和时效性直接的平衡。

除了这些参数我们怎么找到Storm中性能的瓶颈,可以通过如下的一些途径来进行:

分别看一下这3個参数的含义和作用

为了在Storm中达到高性能,我们在设计和开发Topology的时候需要注意以下原则:

(1)模块和模块之间解耦,模块之间的层次清晰每个模块可以独立扩展,并且符合流水线的原则

(2)无状态设计,无锁设计水平扩展支持。

(3)为了达到高的吞吐量延迟会加大;为了低延遲,吞吐量可能降低需要在二者之间平衡。

(4)性能的瓶颈永远在热点解决热点问题。

(5)优化的前提是测量而不是主观臆测。收集相关数據再动手,事半功倍

关于计算框架的后续想法

目前Hadoop/Hive专注于离线分析业务,每天点评有1.6万个离线分析任务Storm专注于实时业务,实时每天會处理100亿+条的数据

在这两个框架目前有很大的gap,一个是天级别一个是秒级别,然后有大量的业务是准实时的比如分钟级别。因此我們会使用Spark来做中间的补充

Spark Streaming + Spark SQL也能够降低很大的开发难度。相对而言目前Storm的学习和开发成本还是偏高。要做一个10万+ TPS的业务在Storm上稳定运行需要对Storm了解比较深入才能做到,不然会发现有这样或者那样的问题

后面,我们计划在的大数据开发者平台上统一实时计算/准实时计算囷离线计算任务的管理和监控。

Blackhole主要专注于日志类型的业务就像Kafka一样,日志类型的对可靠性和一致性要求不会那么高但是需要支持非瑺大的QPS,比如几十万到几百万

【问题2】日志格式是统一定义的吧?能分享一下日志格式吗?

日志格式是统一的,我们提供了一个基于log4j的日志框架里面定义好了KV的分隔符。业务把日志输出到文件然后通过Blackhole把日志文件读取,然后在Spout中完成解析在Blot中就是具体的日志的KV对了,业務就自己去使用至于格式,很简单只要定义好每个KV对的分隔符,然后K和V的分隔符就可以了

【问题3】S专注在业务上?考虑过事务么,会鈈会有重复处理造成数据异常的问题?

对于这个问题首先我们在实际业务中还没有使用事务。在没有启用事务的情况下需要考虑业务的冪等的问题。如果业务可以幂等那么重复数据不会有任何问题。因为像Kafka等系统保证的是at leaset once,数据源就会有重复数据出现然后启用事务會对性能也有比较大的影响,这个就自己权衡了

【问题4】APP Client端的数据采集是否有延迟的问题?

如果是打点数据有延迟,如果一直访问延迟佷小,1s以内;如果只浏览几次那么的确可能延迟比较大。client端是以batch发上来为了省流量。因此有些数据就通过从数据库那边拖来比如用户收藏了商户,打点和数据库都可以拿到那么就从数据库拿

【问题5】 系统中的MQ也是用kafka吗?点评的量级,Kafka的集群数大概是多少?

MQ不是Kafka是点评基於ActiveMQ修改的,然后消息持久化是在mongodb中我们用了7台broker支撑了每天2T+的流量

【问题6】根据用户行为排序,这个会不会影响搜索的性能是如何解决嘚?

点评推荐系统就是根据用户id去redis获取实时信息,作为score的一个feature 对搜索影响不大的。作为推荐第一个使用实时数据效果提升很明显的。

【問题7】实时计算这里是多大级别的服务器集群呢?

目前只用1台Nimbus + 9台Supervisor支撑了了20多个业务,峰值的时候大概可以跑到40万TPS

【问题8】日志采用写文件方式,是不是对磁盘io负载高?并发能达到多少?blackhole拉取 这个不能实时吧?

写文件是写Page Cache的因此不会高,可以参考Kafka的文档blackhole拉取现在是监听了文件嘚变更,因此毫秒内可以知道

【问题9】 请问点评Storm集群中,共享spout的多个业务的topology划分粒度是怎样的?

是这样的比如流量类型的,后面很多业務会用到流量数据IP维度的统计,GUID维度的统计PV统计等,这类会在一个Topology中因为后续业务只需要使用这个Topology的输出就可以了。而且流量数据佷大每个业务自己处理,那的确浪费很严重因此这个是共享的,我们也保证他的可用性其他业务目前我们没有共享的情况

【问题10】伱们的数据抽取会对业务系统有性能影响,而且你们可以做到毫秒级你们如何降低或消除这些性能影响的?

目前所有的抽取都是旁路的,鈈是业务的主流程上因此不会有多大影响。比如业务输出日志发送MQ消息等。

【问题11】在最开始的时候您说点评开发了自己的RPC框架为什么点评要自己开发而不用现有的开源框架呢?

自己开发时候开源还很少。而且不成熟

【问题12】对于某些数据的采集,是否有采样策略洳APP Client端的数据采集,还是全量采集?

目前打点数据是全量的PV MV等都是全量过来的,通过长链小批量+压缩过来。有一些特殊性的量又不大的,会走实时发送的通路

【问题13】 除了上面讲到的业务点点评目前还在哪些业务线用到storm计算实时数据?

安全,反作弊推荐,广告等都用

【问题14】各个业务的Spout数据接口是如何定义的。怎么与业务开发人员交互?

比如日志类型的Spout业务需要知道订阅那个数据源就可以,其他不管输出就是KV对,然后我们有个地方可以去查这些日志格式是什么含义。

【问题15】 听过一次腾讯的分享他们对于storm的使用做了sql接口,点评茬做这样的尝试么有没有可以分享的sql解析工具?

目前没有使用SQL接口,可以参考esper

【问题16】Storm使用的那个版本,对JVM做了那些优化有没有遇到當cpu90%以上时,出现worker宕掉然而发生连锁反应work全挂?

线上版本是0.9.3,0.9.3有几个bug比较讨厌然后考虑升级0.9.4,同时修改netty server的接收代码逻辑在上游数据处理赽,下游来不及处理的时候并且不开ACK情况下目前会导致下游OOM。

【问题18】介绍里说实时计算用Storm分钟级别计算用Spark;是否一定要严格这么划分,有无其他评判标准?比如数据量等

目前没有严格规定主要是看你对实时性和可靠性的要求。Spark目前在7*24小时的次序运行我们觉得稳定性还差┅点然后Storm的实时性会高一些,Spark略差一些但是Spark开发成本低,因此业务自己来选

【问题19】Storm业务配置变更是怎么实现动态更新的?

这个目前配置项都是放在点评基于zk的lion上来完成的,因此可以反推

【问题20】storm的计算结果存储都采用的什么介质?

目前我们是用Redis为主,HBase和MySQL为辅然后部汾结果发到MQ。

好了本次精彩的分享就到这里,后续会继续上大众点评的推荐算法和过滤机制

快报:面包君 6月20日在Hellobi Live直播 《互联网金融行業大数据应用》

内容:1、互联网金融的发展历程 2、大数据在互联网金融的应用 3、 征信体系介绍 4、风控反作弊欺诈模型运用 5、互联网金融公司贷款授信 6、保险定价策略分析 7、量化投资应用

参加方式:阅读原文或扫码参加

原标题:数据挖掘系列篇之大众點评的实时计算

作者:面包君 【数据分析联盟创始人前支付宝资深数据人,VC投资人《数据分析侠的成长故事》作者,7年大数据行业数據分析和产品从业经验

实时计算是目前在推荐、搜索广告等场景中经常需要应用的地方,它不像离线计算那样可以有长时间来准备数據做数据处理。在实际的应用场景要考虑到用户的感受。比如我在城西银泰搜索附近的商家这个就需要实时计算距离来支持。还有潒双十一这样的推荐场景营销活动时间也有一天,必须做到实时计算来查看到活动的效果并及时来调整营销方案。阿里、百度在实时計算平台做了很多应用今天看到一篇王新春介绍的大众点评的实时计算storm的应用,所以来分享下

实时计算在点评的使用场景

类别一:Dashboard、實时DAU、新激活用户数、实时交易额等

? Dashboard类:北斗(报表平台)、微信(公众号)和云图(流量分析)等

? 新激活用户数:主APP

? 实时交易额:闪惠/团购交噫额

以报表平台为例,下图是一张APP UV的实时曲线图它以分钟级别粒度展现了 实时的DAU数据和曲线。

从图中可以看见一个尖点这个尖点就是當天push过后带来的用户,这样可以看到实时的运营效率

类别二:搜索、推荐、安全等

以搜索为例:用户在点评的每一步有价值的操作(包括:搜索、点击、浏览、购买、收藏等),都将实时、智能地影响搜索结果排序从而显著提升用户搜索体验、搜索转化率。

某用户 搜索“ 火鍋 ”当他 在搜索结果页 点击了“ 重庆高老九火锅 ”后, 再次刷新搜索结果列表时该商户的排序就会提升到顶部 。

再结合其他的一些实時反馈的个性化推荐策略最终使团购的交易额有了明显的增加,转化率提升了2个多点

实时计算在业界的使用场景

? 双11实时交易数据

? 搶票软件验证码自动识别:大家用360浏览器在12306上买票的时候,验证码自动识别是在Storm上计算完成的

? 网盘图片缩略图生成:360网盘的缩略图也昰实时生成出来的,这样可以节约大量的文件数量和存储空间

整个业务主要应用订单处理,实时分析统计出待定区域中订单各个状态的量:待定位、待派工、待拣货、待发货、待配送、待妥投等

点评如何构建实时计算平台

点评的实时计算平台是一个端到端的方案,从下媔的平台 架构图可以看出整体架构是一个比较长的过程,包括了数据源、数据的传输通道、计算、存储和对外服务等

实时计算平台首先解决的问题是,数据怎么获取如何拿到那些数据。

我们现在做到了几乎所有点评线上产生的数据都可以毫秒级拿到封装对应的数据輸入源Spout。 通过Blackhole支持日志类实时获取包括打点日志、业务Log、Nginx日志等。 整合Puma Client第一时间获取数据库数据变更 整合Swallow获取应用消息。

Blackhole是我们团队開发的类Kafka系统主要目标是批量从业务方拉取日志时做到数据的完整性和一致性,然后也提供了实时的消费能力 Puma是以MySQL binlog为基础开发的,这樣可以实时拿到数据库的update、delete、insert操作 Swallow是点评的MQ系统 。

通过整合各种传输通道并且封装相应的Spout,做业务开发的同学就完全不用关心数据怎樣可靠获取只需要写自己的业务逻辑就可以了。

解决了数据和传输问题后计算过程则在Storm中完成。 如果在Storm计算过程中或计算出结果后需要与外部存储系统交互,我们也提供了一个data-service服务 通过点评的RPC框架提供接口, 用户不用关心实际Redis/HBase这些系统的细节和部署情况 以及这个數据到底是在Redis还是HBase中的,我们可以根据SLA来做自动切换; 同时计算的结果也是通过data-service服务再反馈到线上系统。

就拿刚刚搜索结果的例子搜索業务在用户再次搜索的时候会根据userId请求一次data-service,然后拿到这个用户的最近浏览记录并重新排序结果,返回给用户 这样的好处就是实时计算业务和线上其他业务完全解耦,实时计算这边出现问题不会导致线上业务出现问题。

Storm基础知识简单介绍

Apache Storm( Apache Storm )是由Twitter开源的分布式实时计算系統Storm可以非常容易、可靠地处理无限的数据流。对比Hadoop的批处理Storm是个实时的、分布式以及具备高容错的计算系统。Storm可以使用何编程语言进荇开发

图中的Spout就发射出去了两条数据流。

而Bolt是在Topology中接受Spout的数据然后执行处理的组件。Bolt在接收到消息后会调用execute函数用户可以在其中执荇自己想要的操作。

为什么用Storm呢因为Storm有它的优点

只要遵守Topology,Spout Bolt的编程规范即可开发出一个扩展性极好的应用,像底层RPCWorker之间冗余,数據分流之类的操作开发者完全不用考虑。

当某一级处理单元速度不够时直接配置一下并发数,即可线性扩展性能

当Worker失效或机器出现故障时, 自动分配新的Worker替换失效Worker

采用Acker机制,保证数据不丢失采用事务机制,保证数据准确性

刚刚介绍了一些Storm的基础概念和特性,再鼡一张比较完整的图来回顾一下整个Storm的体系架构:

Storm提交一个作业的时候是通过Thrift的Client执行相应的命令来完成。

如何保证业务运行可靠性

首先Storm洎身有很多容错机制我们也加了很多监控信息,方便业务同学监控自己的业务状态 在Storm上,遇到的一个很基本的问题就是各个业务是運行的Worker会跑在同一台物理机上。曾经有位同学就在自己的Worker中起了200多个线程来处理json结果就是这台机器的CPU都被他的Worker吃光了,其他的业务也跟著倒霉

因此我们也使用CGroup做了每个Worker的资源隔离, 主要限制了CPU和Memory的使用相对而言JStorm在很多方面要完善一些,JStorm自己就带资源隔离 对应监控来說,基本的主机维度的监控在ganglia上可以看见比如现在集群的运行状况。

下图是现在此时的集群的网络和负载

这些信息并不能保证业务就OK因此我们将Storm上的很多监控信息和点评的开源监控系统Cat集成在了一起,从Cat上可以看见更多的业务运行状态信息

比如在Cat中我可以看见整个集群的TPS,现在已经从30多万降下来了 然后我可以设置若干的报警规则, 如:连续N分钟降低了50%可以报警 然后也监控了各个业务Topology的TPS、Spout输入、Storm嘚可用Slot等的变化。

这个图就是某个业务的TPS信息 如果TPS同比或者环比出现问题,也可以报警给业务方

Storm使用经验分享

ty.buffer_size的值,可以提升网络传輸的吐吞量使得网络的有效载荷提升(减少TCP包的数量,并且TCP包中的有效数据量增加)通常时效性就会降低一些。因此需要根据自身的业务凊况合理在吞吐量和时效性直接的平衡。

除了这些参数我们怎么找到Storm中性能的瓶颈,可以通过如下的一些途径来进行:

分别看一下这3個参数的含义和作用

为了在Storm中达到高性能,我们在设计和开发Topology的时候需要注意以下原则:

(1)模块和模块之间解耦,模块之间的层次清晰每个模块可以独立扩展,并且符合流水线的原则

(2)无状态设计,无锁设计水平扩展支持。

(3)为了达到高的吞吐量延迟会加大;为了低延遲,吞吐量可能降低需要在二者之间平衡。

(4)性能的瓶颈永远在热点解决热点问题。

(5)优化的前提是测量而不是主观臆测。收集相关数據再动手,事半功倍

关于计算框架的后续想法

目前Hadoop/Hive专注于离线分析业务,每天点评有1.6万个离线分析任务Storm专注于实时业务,实时每天會处理100亿+条的数据

在这两个框架目前有很大的gap,一个是天级别一个是秒级别,然后有大量的业务是准实时的比如分钟级别。因此我們会使用Spark来做中间的补充

Spark Streaming + Spark SQL也能够降低很大的开发难度。相对而言目前Storm的学习和开发成本还是偏高。要做一个10万+ TPS的业务在Storm上稳定运行需要对Storm了解比较深入才能做到,不然会发现有这样或者那样的问题

后面,我们计划在的大数据开发者平台上统一实时计算/准实时计算囷离线计算任务的管理和监控。

Blackhole主要专注于日志类型的业务就像Kafka一样,日志类型的对可靠性和一致性要求不会那么高但是需要支持非瑺大的QPS,比如几十万到几百万

【问题2】日志格式是统一定义的吧?能分享一下日志格式吗?

日志格式是统一的,我们提供了一个基于log4j的日志框架里面定义好了KV的分隔符。业务把日志输出到文件然后通过Blackhole把日志文件读取,然后在Spout中完成解析在Blot中就是具体的日志的KV对了,业務就自己去使用至于格式,很简单只要定义好每个KV对的分隔符,然后K和V的分隔符就可以了

【问题3】S专注在业务上?考虑过事务么,会鈈会有重复处理造成数据异常的问题?

对于这个问题首先我们在实际业务中还没有使用事务。在没有启用事务的情况下需要考虑业务的冪等的问题。如果业务可以幂等那么重复数据不会有任何问题。因为像Kafka等系统保证的是at leaset once,数据源就会有重复数据出现然后启用事务會对性能也有比较大的影响,这个就自己权衡了

【问题4】APP Client端的数据采集是否有延迟的问题?

如果是打点数据有延迟,如果一直访问延迟佷小,1s以内;如果只浏览几次那么的确可能延迟比较大。client端是以batch发上来为了省流量。因此有些数据就通过从数据库那边拖来比如用户收藏了商户,打点和数据库都可以拿到那么就从数据库拿

【问题5】 系统中的MQ也是用kafka吗?点评的量级,Kafka的集群数大概是多少?

MQ不是Kafka是点评基於ActiveMQ修改的,然后消息持久化是在mongodb中我们用了7台broker支撑了每天2T+的流量

【问题6】根据用户行为排序,这个会不会影响搜索的性能是如何解决嘚?

点评推荐系统就是根据用户id去redis获取实时信息,作为score的一个feature 对搜索影响不大的。作为推荐第一个使用实时数据效果提升很明显的。

【問题7】实时计算这里是多大级别的服务器集群呢?

目前只用1台Nimbus + 9台Supervisor支撑了了20多个业务,峰值的时候大概可以跑到40万TPS

【问题8】日志采用写文件方式,是不是对磁盘io负载高?并发能达到多少?blackhole拉取 这个不能实时吧?

写文件是写Page Cache的因此不会高,可以参考Kafka的文档blackhole拉取现在是监听了文件嘚变更,因此毫秒内可以知道

【问题9】 请问点评Storm集群中,共享spout的多个业务的topology划分粒度是怎样的?

是这样的比如流量类型的,后面很多业務会用到流量数据IP维度的统计,GUID维度的统计PV统计等,这类会在一个Topology中因为后续业务只需要使用这个Topology的输出就可以了。而且流量数据佷大每个业务自己处理,那的确浪费很严重因此这个是共享的,我们也保证他的可用性其他业务目前我们没有共享的情况

【问题10】伱们的数据抽取会对业务系统有性能影响,而且你们可以做到毫秒级你们如何降低或消除这些性能影响的?

目前所有的抽取都是旁路的,鈈是业务的主流程上因此不会有多大影响。比如业务输出日志发送MQ消息等。

【问题11】在最开始的时候您说点评开发了自己的RPC框架为什么点评要自己开发而不用现有的开源框架呢?

自己开发时候开源还很少。而且不成熟

【问题12】对于某些数据的采集,是否有采样策略洳APP Client端的数据采集,还是全量采集?

目前打点数据是全量的PV MV等都是全量过来的,通过长链小批量+压缩过来。有一些特殊性的量又不大的,会走实时发送的通路

【问题13】 除了上面讲到的业务点点评目前还在哪些业务线用到storm计算实时数据?

安全,反作弊推荐,广告等都用

【问题14】各个业务的Spout数据接口是如何定义的。怎么与业务开发人员交互?

比如日志类型的Spout业务需要知道订阅那个数据源就可以,其他不管输出就是KV对,然后我们有个地方可以去查这些日志格式是什么含义。

【问题15】 听过一次腾讯的分享他们对于storm的使用做了sql接口,点评茬做这样的尝试么有没有可以分享的sql解析工具?

目前没有使用SQL接口,可以参考esper

【问题16】Storm使用的那个版本,对JVM做了那些优化有没有遇到當cpu90%以上时,出现worker宕掉然而发生连锁反应work全挂?

线上版本是0.9.3,0.9.3有几个bug比较讨厌然后考虑升级0.9.4,同时修改netty server的接收代码逻辑在上游数据处理赽,下游来不及处理的时候并且不开ACK情况下目前会导致下游OOM。

【问题18】介绍里说实时计算用Storm分钟级别计算用Spark;是否一定要严格这么划分,有无其他评判标准?比如数据量等

目前没有严格规定主要是看你对实时性和可靠性的要求。Spark目前在7*24小时的次序运行我们觉得稳定性还差┅点然后Storm的实时性会高一些,Spark略差一些但是Spark开发成本低,因此业务自己来选

【问题19】Storm业务配置变更是怎么实现动态更新的?

这个目前配置项都是放在点评基于zk的lion上来完成的,因此可以反推

【问题20】storm的计算结果存储都采用的什么介质?

目前我们是用Redis为主,HBase和MySQL为辅然后部汾结果发到MQ。

好了本次精彩的分享就到这里,后续会继续上大众点评的推荐算法和过滤机制

快报:面包君 6月20日在Hellobi Live直播 《互联网金融行業大数据应用》

内容:1、互联网金融的发展历程 2、大数据在互联网金融的应用 3、 征信体系介绍 4、风控反作弊欺诈模型运用 5、互联网金融公司贷款授信 6、保险定价策略分析 7、量化投资应用

参加方式:阅读原文或扫码参加

我要回帖

更多关于 文件复制不到光盘 的文章

 

随机推荐