分享:Spark集群技术在美团网站的实战运用
2020-12-30 10:51:31 阅读(158) 评论(0)
美团是一项由数据驱动的互联网服务。用户每天在美团上点击、浏览和下订单会产生大量的日志。这些日志数据将被总结、处理、分析、挖掘和学习,为美团的各种推荐、搜索系统甚至公司的战略目标提供数据支持。大数据处理已经渗透到美团各业务线的各种应用场景中。选择合适高效的数据处理引擎可以大大提高数据生产效率,间接或直接提高相关团队的工作效率。美团最初的数据处理主要是HiveSQL,底层计算引擎是Mapreduce。一些相对复杂的业务将由工程师编写Mapreduce程序来实现。随着业务的发展,简单的HiveSQL查询或Mapreduce程序越来越难以满足数据处理和分析的需要。一方面,Mapreduce计算模型不支持多轮迭代的DAG操作,每轮迭代都需要执行数据,大大影响操作执行效率,只提供Map和Reduce这两个计算因素,使用户实现迭代计算(如机器学习算法)成本高、效率低。另一方面,在数据仓库的日常生产中,由于一些原始日志是半结构化或非结构化数据,需要结合SQL查询和复杂的过程逻辑处理来清洁和转换操作。这部分工作以前是由HiveSQL和Python脚本完成的。这种方法存在效率问题。当数据量较大时,流程运行时间较长。这些ETL流程通常处于上游位置,这将直接影响一系列下游完成时间和各种重要数据报表的生成。基于上述原因,美团于2014年推出了Spark。为了充分利用现有Hadop集群的资源,我们采用了Sparkonyarn模式,所有Sparkapp和Mapreduce操作都将通过Yarn统一调度进行。Spark在美团数据平台架构中的地位如图所示:经过近两年的推广和发展,只有少数团队试图用Spark解决数据处理、机器学习等问题,涵盖了美团主要业务线的各种应用场景。从上游ETL生产到下游SQL查询分析和机器学习,Spark正逐渐取代Mapreduce操作,成为美团大数据处理的主流计算引擎。目前,美团Hadop集群用户每天提交的Spark作业数与Mapreduce作业数的比例为4:1.对于一些上游HiveETL流程,迁移到Spark后,在相同资源的使用下,运营执行速度提高了十倍,大大提高了业务方的生产效率。下面我们将介绍美团Spark的实践,包括基于Spark的平台工作和Spark在生产环境中的应用案例。包括Zeppelin结合的交互式开发平台,以及使用Spark任务完成的ETL数据转换工具。数据挖掘组开发了基于Spark的特征平台和数据挖掘平台,以及基于Spark的交互式用户行为分析系统和SEM交付服务的应用。以下是详细的介绍。在推广如何使用Spark的过程中,我们总结了用户开发应用的主要需求:数据研究:在正式开发程序之前,首先需要了解待处理的业务数据,包括:数据格式、类型(如果存储在表结构中,则对应于字段类型)、存储模式,是否有脏数据,甚至根据业务逻辑分析是否可能有数据倾斜。这一需求非常基本和重要。只有充分控制数据,才能编写高效的Spark代码;代码调试:业务代码难以保证一夜之间实现,可能需要持续调试;如果每次少量修改,测试代码需要在线编译、包装和提交,这将对用户的开发效率产生很大影响;联合开发:对于整个业务的实现,一般会有多种合作,在这个时候,需要有一个方便的方法来共享代码和执行结果来分享他们自己的想法和测试结论。基于这些需求,我们研究了现有的开源系统,最终选择了基于Spark的Apache孵化项目Zeppelin作为交互式开发平台。基于这些需求,我们研究了现有的开源系统,最终选择了基于Spark的Apache孵化项目Zepelin作为交互式开发平台。Zeppelin集成了Spark,Markdown,Shell,Angular等引擎集成了数据分析和可视化功能。我们增加了用户登录认证、用户行为日志审计、权限管理和Spark操作资源隔离,创建了美团Spark交互式开发平台,不同用户可以在平台上调查数据、调试程序、共享代码和结论。Spark集成在Zepelin中,提供了三种解释器:Spark、Pyspark、SQL,分别适用于Scalala的编写、Python、SQL代码。对于上述数据研究需求,当需要检索数据信息时,Zeppelin提供的SQL接口可以很容易地获得分析结果;此外,Zeppelin中Scala和Python解释器的交互特性满足了用户对Spark和Pyspark分步调试的需求,同时,由于Zeppelin可以直接连接到在线集群,因此它可以满足用户对在线数据的读写处理要求;最后,Zeppelin使用Websocket通信,用户只需简单地发送http链接即可共享内容,所有接受者可以同步感知代码修改、操作结果等,实现多个开发者的协同工作。除了提供平台工具外,Spark操作ETL模板还将从其他方面提高用户的开发效率,如包装类似的需求,提供统一的ETL模板,使用户可以轻松地使用Spark来实现业务需求。除了提供平台工具外,Spark操作ETL模板还将从其他方面提高用户的开发效率,如包装类似的需求,提供统一的ETL模板,以便用户可以方便地使用Spark来实现业务需求。美团目前的数据生产主体通过ETL将原始日志加载到Hive表中。然而,许多在线业务需要将Hive表中的数据以一定的规则组成键对,并将其导入Tair,以快速访问上层应用程序。大多数需求逻辑是相同的,即根据一定的规则将Hive表中几个指定字段的值拼接成key值,其他字段的值以json字符串的形式作为value值,最终将得到的对写入tair。由于Hive表中的数据量一般较大,使用单机程序读取数据并写入Tair的效率较低,一些业务方决定使用Spark来实现这一逻辑。最初,业务方的工程师使用Spark程序从Hive读取数据并写入Tair(以下简称Hive2Tair流程)。在这种情况下,存在以下问题:每个业务方都必须实现一套逻辑相似的流程,并产生大量重复的开发工作;由于Spark是一个分布式计算引擎,代码实现和参数设置不当容易对Tair集群造成巨大压力,影响Tair的正常服务。基于上述原因,我们开发了spark版本的hive2tair流程,并将其包装成标准的etl模板,其格式和内容如下:source用于指定hive表源数据,target用于指定目标tair的库和表,这两个参数可用于调度系统分析etl的上下游依赖关系,从而方便地添加到现有的etl生产系统中。有了这个模板,用户只需填写一些基本信息(包括Hive表的来源,组成key的字段列表,组成value的字段列表,目标tair集群),就可以生成hive2tair的ETL流程。整个过程生成过程不需要任何Spark基础或代码开发,大大降低了用户的使用门槛,避免了重复开发,提高了开发效率。整个过程生成过程不需要任何Spark基础或代码开发,大大降低了用户的使用门槛,避免了重复开发,提高了开发效率。Spark操作将在执行过程中自动生成,并以相对保守的参数运行:默认开启动态资源分配,每个Executor核数为2,内存为2GB,最大Executor数为10。若对性能要求较高,且申请的Tair集群较大,则可采用一些调优参数来提高写入性能。目前,我们只向用户暴露了设置Executor数量和每个Executor内存的接口,并设置了相对安全的最大值规定,以避免因参数设置不合理而对Hadoop集群和Tair集群造成异常压力。在没有特征平台之前,基于Spark的用户特征平台根据各自项目的需要提取用户特征数据,主要通过美团ETL调度平台每月/天提取数据。然而,从用户特征的角度来看,实际上会有很多重复的工作。事实上,不同项目所需的许多用户特征是相同的。为了减少冗余提取和节省计算资源,建立特色平台的需求应运而生。特色平台只需收集各开发人员提取的特色数据并提供给他人。Spark的批处理功能主要用于完成数据的提取和聚合。开发人员的提取特征主要是通过ETL完成的,有些数据是通过Spark来处理的,比如用户搜索关键字的统计。开发人员提供的特征数据需要根据平台提供的配置文件格式添加到特征库中。例如,在图片团购的配置文件中,团购业务中有一个用户在24小时内支付的次数特征。输入是一个生成良好的特征表。开发人员通过测试验证后,完成数据在线;此外,对于某些特征,只需从现有表中提取一些特征数据,开发人员只需要简单的配置即可完成。在图中,我们可以看到特征聚合分为两层。第一层是每个业务数据的内部聚合。例如,团购数据配置文件中会有许多分散在不同表中的团购特征、购买和浏览。每个业务都会有独立的Spark任务来完成聚合,形成用户团购特征表;特征聚合是典型的join任务,比Mapreduce性能提高了10倍左右。第二层是再次聚合每个业务表数据,生成最终的用户特征数据表。第二层是再次聚合每个业务表的数据,生成最终的用户特征数据表。特征库中的特征是可视化的。当我们聚合特征时,我们会统计特征覆盖的数量、最大和最小值,然后同步到RDB,使管理者和开发者能够通过可视化直观地理解特征。此外,我们还提供特征监控和报警,使用过去7天的特征统计数据,比较昨天和今天的覆盖率,是增加还是减少,如女性的性别,如果发现今天的覆盖率低于昨天(如昨天6亿用户,女性2亿,那么数量减少了1%*2亿=2万)女性用户解释数据突然减少2万,出现极大异常,此外,网站的用户数量每天都在增加。这些异常将通过电子邮件发送给平台和特征提取的相关人员。这些异常将通过电子邮件发送给平台和特征提取的相关人员。Spark数据挖掘平台数据挖掘平台完全依赖于用户特征库,通过特征库提供用户特征,数据挖掘平台转换特征,统一格式输出,开发人员可以快速完成模型开发和迭代,需要两周开发模型,现在需要几个小时,几天。特征转换包括特征名称的编码,以及特征值的平滑度和集成度。该平台还提供了特征离散和特征选择的功能,这些功能都是通过Spark离线完成的。开发人员获得培训样本后,可以使用Sparkmlib或Pythonsklearn完成模型培训。获得优化模型后,将模型保存为平台定义的模型存储格式,并提供相关配置参数。模型可以通过平台上线,模型可以每天或每周调度一次。当然,如果模型需要重新训练或其他调整,开发者也可以离线模型。不仅如此,该平台还提供了一个模型准确性报警功能。预测完成后,每个模型将计算用户提供的样本中预测的准确性,并比较开发人员提供的准确性报警阈值。如果低于阈值,请发送电子邮件通知开发人员是否需要重新培训模型。在开发和挖掘平台的模型预测功能时,我们走了一些弯路。平台的模型预测功能最初与Spark接口兼容,即使用Spark保存和加载模型文件并进行预测。使用过Sparkmlib的人知道,许多Sparklib应用程序是私人开发人员无法直接使用的,因此,我们的接口被包装并提供给开发人员,然而,它只解决了Spark开发人员的问题。平台还需要与其他平台的模型输出、加载和预测功能兼容,这使得我们面临需要维护一个模型和多个接口的问题。开发和维护成本高。最后,我们放弃了与Spark接口兼容的实现模式,我们定义了模型的保存格式,以及模型加载和模型预测的功能。以上内容介绍了美团基于Spark的平台工作。这些平台和工具服务于公司的所有业务线,旨在避免团队做无意义的重复工作,提高公司的整体数据生产效率。以上内容介绍了美团基于Spark的平台工作。这些平台和工具服务于整个公司的所有业务线,旨在避免每个团队做毫无意义的重复工作,提高公司的整体数据生产效率。目前,效果似乎相对较好。这些平台和工具得到了公司的广泛认可和应用。当然,有很多建议可以促进我们的持续优化。随着Spark的发展和推广,越来越多的业务线开始尝试使用Spark进行各种复杂的数据处理和分析,从上游ETL到下游的日常数据统计分析、推荐和搜索系统。以Spark在交互式用户行为分析系统和SEM交付服务为例,介绍Spark在美团实际业务生产环境中的应用。Spark在交互式用户行为分析系统中实践美团的交互式用户行为分析系统,提供交互式分析大量流量数据的功能。该系统的主要用户是公司内部的PM和运营商。一般的BI报表系统,只能提供聚合后的指标查询,例如P类报表系统
推荐阅读
- 免费修复老照片软件
其实每一个人都是怀旧的,在平时的时候也会存储一些老照片。但是老照片很有可能会出现发黄或者是人物图像不清晰的现象,这种情况下很多人就想要选择一些软件来进行修复。有些软件在修复照片的时候可能需要收费,但是也有些免费的软件。那么免费修…查看详情
- 天猫旗舰店保证金是多少?
天猫的保证金和年费是按产品来的,不同产品的保证金和年费都不一样。保证金和年费都是开店的时候缴纳,保证金退店时会退还,年费是每年缴纳,天猫有激励政策,达到一定的年销售额会退还一半或者全退。下面万商云集小编就给大家来详细介绍一下天猫旗舰店保…查看详情
- 小程序怎么推广
如何推广小程序?1、推广之前的准备 自己一定要用心去体验,花点时间去测试使用,要很清楚的知道这个小程序的功能和特色。你才能给你推荐的人答疑解惑。 2、推广之前的准备 分析这款软件的目标人群,定位好推广对象,这就避免了逢人便推,最后…查看详情
- 热门完本玄幻小说排行榜,排名不分先后
小说作为现在社会中地位比较高的存在,我们应该如何区分这个东西呢,周所周知,在小说的世界中,有很多分类,在各种分类里面有不同的小说等待着你去解锁,那我们今天就来盘点一下完本玄幻小说排行榜,排名不分先后。1、牧神记是一部神仙一般的玄幻小说,在太…查看详情
- 有哪些可以制作视频特效的软件app
现在最受欢迎的就是抖音快手,很多人都通过这两个平台赚到了许多钱,那么,你要想也在这些平台上赚钱,首先必须要学会做吸引人的视频,有了粉丝才可以赚钱,特效视频制作软件app有哪些? 1、秒拍手机版 秒拍手机版是拍摄视频手机软件,…查看详情
- 企业网站关键词没选对,怎么可能上首页
域名是企业网站的“门牌号”,当用户首次搜索或记不住企业网站“门牌号”时,大多会选择通过关键词搜索来查找相关企业网站,因此,企业网站关键词十分重要。选择正确的符合用户搜索习惯的关键词,能够让企业网站通过关键词优化排在搜索相关企业结果中的首页,…查看详情
- 编程是学些什么东西
猿辅导编程讲的什么?猿编程课程主要面向4-12岁的学生,走的是Python语言的程序设计路线。主要是帮助孩子掌握编程语言和编程思维,来到达开发设计程序的目。智能制造专业学什么课程?主干课程:机床电气控制与PLC、工业机器人技术、数控加工工艺…查看详情
- 有哪些比较好的微分销系统推荐
以下是几个比较好的微分销系统推荐:1. 京东微分销:是中国最大的电商平台之一,提供了强大的微分销系统。它具有丰富的商品资源,可为分销商提供广泛的选择。该系统还提供了多种推广工具和营销支持,帮助分销商轻松推广产品并获取佣金收益。2. 微易分销…查看详情
- 天猫、京东、拼多多等主流电商平台双11玩法曝光
双11销售业绩一年比一年创新高,每一年的电商玩法也在持续更新。随着双11的临近,相关促销话题预热了大半月,那么天猫、京东、拼多多等主流电商平台到底推出了哪些玩法呢?小万汇总了不同平台的玩法,一起来看看吧!天猫:打造最省钱的双11省钱是相对用…查看详情
- 2021国内常用图书管理软件排行榜
图书管理系统是建立在先进的计算机技术、条码识别技术及非接触式IC卡技术之上,为图书借阅提供方便、高效的管理,想知道一般图书管理都用哪些软件吗?且看这份整理的2021国内常用图书管理软件排行榜。 1.晴川图书管理软件 晴川图书管理软件采用大型…查看详情
- 如何为企业选购一款合适的CRM客户管理系统?
CRM系统主要是一款以人为中心的管理系统,几乎接近于客户管理中心,可以全面的了解客户的需求,来帮助客户管理,可以进行一切管理活动,现在的人工智能视频并不断发展,他用科技和全面服务相结合,让大家更加喜欢他,可能降低科技成本。 …查看详情
- 怎样利用企业固定资产管理系统对企业的固定资产进行管理
企业的固定资产一般都比较庞大,占用企业大量的资金,对于固定资产的管理很多企业也比较重视,但是很多企业却管理得不好。固定资产一般种类多、数量大、地点也比较分散,如果企业的固定资产管理不善,容易给企业造成资产与账面不符,设备设施、物品等的重复购…查看详情
- 万商云集董事长王飞受邀出席新瑞学院潜龙二期开学典礼
近日,以“教育+资本”联合打造世界级企业的创业教育项目“寻龙项目”之潜龙二期班开学典礼在北京举行。万商云集董事长王飞作为学员之一,与来自全国的30余名优秀企业家学员切磋交流,共谋中国经济发展新未来。据悉,新瑞学院致力于搭建一个汇聚基石投资人…查看详情
- 企业网站建设,哪些地方该花钱?
一说到企业网站建设,不少企业主首要条件就是高端大气上档次,必须充分展现公司实力。确实,网站建设是每个企业必须要做的事,是企业线上展示的窗口,装扮得越好看越能吸引用户关注。然而,企业网站建设不仅要吸睛,更要吸金,一个好的企业网站,是能够为企业…查看详情
- 如何经营好书店? 书店经营技巧有哪些?
在过去的一段时间里面,关于实体书店运营模式的文章看了很多,有的侧重颜值,通过高水平的设计来打造网红打卡地;有的侧重活动,联合作者与出版社,用丰富的文化内容来吸引读者;有的侧重融合,以餐饮或文创商品的高附加值弥补图书方面的盈利能力不足;还…查看详情
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121

关注微信公众号
和10万中小企业共同成长

扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有
蜀ICP备12001963号-2
川公网安备 51010402000322号

快速找产品

找一找哪款产品适合您?
咨询热线:400-0033-166
-


-
电话沟通
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达

关注万商云集
和10万中小企共成长

TOP

企业首选的数字选用平台

400-0033-166
8:30-18:00
















































注册有好礼



