版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
携程大数据平台实践Pus张翼我介绍6龍OPS/IT/CC超过10年的互联网从业经验,超过7年的数据系统相关的经验浙江大学:本科&研究生Ebay:软件开发工程师大众点评:资深软件开发工程师-〉技术经理携程:大数据平台技术总监提纲6龍OPS/IT/CC挑战和未来、大数据平台现状Pus平台规模6龍OPS/IT/CC主集群规模180->1100+台X6数据增量(每天)250T数据表数量正式表60000+调度任务数(每天)50000+运行实例120000+底层任务数(每天)310000+2017z\实时集群规模100+实时作业数290+Jstorm~40+Spark-streaming2015平台架构6龍OPS/IT/CC开发平台Zeus调度主数据传输数据质量查询平台ART报表■/OLAP命析即时查询机器学习算法平台基于Spark图形化AI平台GPU云平台实]吋数据平台分布式存储和计算框架HiveSparkPrestoHadoop实时框架______BBMHSpark.-StrearningHermes(Kafka)资源部鄙运雜监控自动运维系统大数据监控系统团队规模6龍OPS/IT/CCRENSHAOSHIDUO小底层数据架构:9+1开发和查询平台:6+1运维数据分析:4+1*而精干日常维护支持.调研落成长的烦恼〃成长的烦恼"有什么?6龍OPS/IT/CC运维:•系统规模不断扩大-系统繁多,复杂性高开源系统-开源是把“双刃剑”•快速构建起相应的系统-随着系统规模的增大,开源系统的问题不断地暴露出来服务和支持-用户不断增长的“物质文化需求”与“短小精悍”团队之间的矛盾・临时的支持,问题排查工作变多运维-应对策略6龍OPS/IT/CC总体策略:-“自动化”:节省运维成本,保证环境和配置一致•运维自动化・初始安装/变更-覆盖范围尽可能全(特别是客户端)・监控+失败的自动回复・确定的,风险不大的失败点(进程监控/ThriftServer的可用性监控)-多次自动回复失败需要升级•我们的惨痛教训:2015-09Kerberos升级开源系统-应对策略6龍OPS/IT/CC思想上做好长期斗争的准备“深挖洞(加深对现有系统的理解)",“广积粮(基础知识/新系统调研)"总体策略:-建立“代码级”维护能力-招聘时就要选择对技术有浓厚兴趣,能够沉的下心来的同学-在底层团队通过各种层次的分享建立学习,研究的氛围-代码学习小组•全员学习,模糊职位的边界-培养方向:一专多能•模糊开发和运维的边界NodesNOW543DMin5430Avg543DMax543.CPUSNOW15BkMin15BkAvg15BkMax15.FrocsNOW24kMin1IkAvg116kMax20.6龍OPS/IT/CCHadoop调优是一项长期工程从2016年10月开始(CDH4.6->CDH5.7.1升级完成,79个commits)我们几乎每1-2个月会遇至U1个影响集群的稳定性/效率的问题,而且每次问题的RootCause往往并不相同实例一:RM调优在业务高峰的4点-10点,集群的使用率偏低通过YARN的主页面我们发现,集群的Used的Vcores只占VcoresTotal的70%-80%通过一段时间的分析,我们发现瓶颈在YARN的FairScheduler的效率上httDS:〃issues.aD/iira/browse/YARN-5188实例:Hodoop调优DOOM』'npas实例:Hodoop调优6龍OPS/IT/CC实例二:NN优化2017-01底到2017-02初,我们发现在早上6-10点,集群的利用效率有多次较大的下跌我们分析发现,NN的RPC平均处理时间(RpcProcessingTimeAvgTime)较高解决方法:给NN减负,增效HDFS-9198HDFS-7964HADOOP-12483主节点优化的总结1.发现问题:关注集群总体的利用率;关注NN和RM的关键指标(RPCProcessTime/CallQueueLength)和GC指标2.分轿问题:分析NN和RM更加细致的指标(GC问题的话分析GCLog);通过线索在去搜索相应的Jira,筛选Jira,通过Jira查看和分析相关的Code3.在保证稳定性的前提下进行尝试服务和支持-应对策略6龍OPS/IT/CC总体策略:-从使用者的角度去设计产品,关注用户的易用性•控制推广的节奏•EarlyAdopter->1个BU->全面铺开・完善文档,常见问题FAQ-“授人以渔”:增强BU数据开发的工程技术能力-全员客服-短期再谈稳定性Pus平台的稳定性是项系统工程6龍OPS/IT/CC流程-合理的流程能够降低人为事故发生的概率,及时发现问题-流程无法一簇而就,从失败中学习,举一反三很重要・能做“灰度”的一定要做“灰度”•提升团队成员的责任心技术-设计尽量简单,复杂的设计修改容易出错-合适的重试机制帮助很大-木桶效应:关注所有有影响的系统的短板实例:数据开发平台的稳定性提升6龍OPS/IT/CC2015年下半年,数据开发平台几乎每个月都会发生1次全局性延迟的大故障第1阶段:-快速止损:通过发布后轮流值班的方式避免发布后的重大事故第2阶段:・解决核心问题:重构调度系统的核心…简化模型第3阶段:•降低维护成本:监控+自动化恢复策略-确定目标,不断迭代・区分系统错误,用户错误;确定系统错误率0.02%的目标(目前是0.01%)・强化各层的重试机制(调度系统/YARNAPPMaster...)-持续的监控和优化系统"走马观花"Pus数据开发平台"走马观花〃6龍OPS/IT/CC调度和开发6龍OPS/IT/CC调度和开发6龍OPS/IT/CC调度和开发6龍OPS/IT/CC调度和开发6龍OPS/IT/CC拦我的任务:=防有跡id幅称可匹配打=替众福之神①,M叩sapp(6813)l>MDatax2.0(6918),Mapp_analysis(8294),■dw_data_ETL(B295]国l>.报表任务文件实(12356)dw_dIm_ons_app(80628)调度和开发6龍OPS/IT/CC团任务信息。运行日志❽小依赖关系乞上瞅赖#jobidcmrwir今日最近运行版本t協开始时间运行肘长1』Rligthotelpagesppageid_d(1.41783)141783igtbi1.1■0|h_etl_srcjgthotelpage_d(127423)127423igtbi201711010300127423]success[04:47:311分钟55秒国详倩1.1.1■®igtmvwfactpageview(127222)127222igtbi201711010300127222jsuccess[04:40:21■7分钟9秒国详情■區factmbpageview(205)205bimob201711010300000205]jsuccess[03:54:4345分钟1秒国详情.1@factrriibpvlog_hybrid(151)151bimob201711010300000151】jsuccess[03:00:0019分钟29秒咬详情.2@factmbpvlog_sdk(l54)154bimob201711010300000154]jsuccess[03:00:0054分钟39秒国详情土下游依赖#job豆)只查询当前owner(opsapp)idowner今日最近运行版本状态开始时间运行时长务1直igthotelpagesppageid_d(141783)141783igtbi做详情数据传输6龍OPS/IT/CC羔Slffi传输►您建dataxffi^-datax1^®管理-扩展功能-帮助信息蚤主数据嫌数据质量app_monitor_alert_b-没有DataChange_LastTime索引申请添加索引app_monitor_alert_b-任务歹!]表#龄名W5蝗目标类型所有者操作JoblD存主键:目取敬类型:slave目库:自动验证}是醒:发现源表字段名和目标表不一致,请确认-query选项中select全段的顺序和hive目标表学段顺序是否一致数据传输6龍OPS/IT/CC數据开发平台datax2.0就爲调度彘数梔传输!■■削建datax吟►datax^g®■-扩展功能■-帮助信息皇通据-»数据质量#建表工具%HiveR^E定任务列表(说明:从zeus系统创建的datax任务,取数类型为:未知)每页10▼^15录JoblD:用户:海类型i源数据库:源表t取数类型-目标类型$目标库-目标表i创建日期s操作126059bidimysqlzeuszeusjobslavernysqldataqualitydbzeusjobs_priority_high2017-09-15E1DSI3Q124566bidimysqlzeuszeusjob_run_e1apsed_timeslavehivedefaultnr「iTiT「iT「nT」「i~2017-09-11E1DSI3Q124565bidimysqlzeuszeusJob_run_elapsed_timeslavehivedefaultzzzzzz2017-09-11E1DSI3Q124564bidimysqlzeuszeusjob_run_elapsedjimeslavehivedefaultaaaaa2017-09-11ElDSEll123057bidimysqldiportalplusdbhive_accountJnfoslavemysqlzeushive_account_info2017-08-31ran^isin122838bidimysqladvreviewDBbuconfigslavehivedefaultaaaa2017-08-30BQSQQ122692bidimysqlzeus_odsods_etltablogslavehivedefault1112017-08-30ran^ign118885bidimysqlzeusdatax_adminslavehivedefault1112017-08-020QB0Q117739bidimysqldiportalplusdbhive_accountJnfoslavesqlserverARThive_account_info2017-07-240DQ0Q113791bidihbase9:2181,...hive_object_privilegehivehadoopdbhive_object_privilege2017-06-220QQ0Q第1-1。条数据供122条数据)前一页||侣|后」数据传输6龍OPS/IT/CC连接串管理支持标准titan串的登记、支梏用户自定义连凌串设置以保护数据库访问的用户名和密码Enter批量取数支持同一个关系数据庠多张表向hive数据庠批量生或datax取数jobEnter全文搜索支持基于任务脚本内容的全文关謔字搜素Enter多表联合取数支持同一个关系数据庠多张相同结构的子表联合取数到同一个目标hive表中Enter多数据庠sharding取数支持多个关系数据库sharding的相同结构子表向hiv最据喜批量生或datax取数jobEnter主数据6龍OPS/IT/CC魏曲调度言球据►表的齢嫌数据质量&用户组管理%Hive帐号绑走搜索》B^-下游.HIVE▼app_analysis▼dw_a叩HIVE:app_analysisResultsfor'dw_app'歹io<嶼果鳗:I下裁IServerDB名称i表名-生命周表的类wg函
亠期(分区型=表的描述(comment)-保留时间[天]冷表的大小安全等重段级*级U创建时间i操作HIVEapp_analysisdw_app_relations_内SPRdCAT中AP咦用两两关系的明缅数据-165.0M-opsapp2016-12-1517:29:21QHIVEapp_analysisdw_app_relations_last_7_d内部表CAT中AP咦用两两关系的明细数据最近7天的数据-1102.6M-opsapp2016-12-1611:03:02QHIVEapp_analysisdw_app_relations_l内部表ast_monthCAT中APP相关性分忻各瓣数据表以月为单位-181.9M-opsapp2016-12-2017:46:47Q显示第1至3确果,共3项首页卜贞|秘|主数据6龍OPS/IT/CC主数据6龍OPS/IT/CCm字段信息U纹数据预览m分区信息817圏操作历史山使用热度,表大小趋势个上游血综■下游血缘朝7天读取次数人屋近7天写入次数最近1个月读取次数最近1个月写入次数最近3个月读取次数最近3个月写入次数最近6个月读取次数鼬6个月写入次数757307301220832197171朝7天朝1个月朝3个月个月每日使用次数分析12.5107.52.502017-10-222017-10-232017-10-242017-10-252017-10-262017-10-272017-10-28时冋2017-10-28读耽趨:10•写入次数:丨-•後取次数+写入次数过滤器hive用户ods_zeus.Zeus
JoeId:1925zeusJobld:1925username:you5historyld:50253483action:20171028021000192509odszeusdwvoudbods.ibutionpiechart主数据olap_6龍OPS/IT/CCods_zeusolap_zeus^Qperationolap_zeusiobdis£ributionpiechart■§dw_sbu_vadndbrtion_historyflttempdbodszeushistoryptmp_€ardrisk_readtmp_zhx_二b_runtimet«p_htlppdbt«p_hnyin_j^umonitoringoods_zeusOn^historyI__zeusolap_zeus_joto_distributiorm勉数据预览m分区信息8i7冒捏作历史>11使用热度匪表大小趋势t上游血缘■下游心数据质量6龍OPS/IT/CCI-编融则规则名称记录数比对规则对象表▼ffl指标配置指标序号类型名称计耸SQL描述操作1全局记誕count(l)记誕2m前3天的平均数selectround(count(*)/3,0)fromdw_ubtdl前3天的平均数3selectcount(l)from^ablenanmewhere:ptdt>:date-2and:pthour=:hour-2A気討咽分区做d咽分区。増加0«<|Page1of11>'>20▼View1-3of3曲计尊规则表达式#{A1}»=T表达式#{Tl}*0.8关闭数据质量6龍OPS/IT/CC报表平台"走马观花"6龍OPS/IT/CC报表展示首页,,查看报表与仗表盘區仪表盘和报表::aammsf*婀和分享&用户指南s意见反馈Q璧…I-B盹资源]I-&20170925演示II
e聲分布“C卧蠲吩布“c分布…”■有超下毋布I**不同融分布\]L
&AAA定建造年份与价幟关柔fiKingCounty房屋销售报告一”卷TestI:£001*-•DemoiSifffde:-••&报表2。17I,…VDemo2…”HtestOIi-testO3丄.&共享妙丄=网站运营中心#■•&^^bappJSSj1-0Top20国家请求鹹计!-日TopM国家醐用户统计Ie匪Top20国家SSLTIM疇針(滿1-&±S3^¥^KPl\I-LM2一ART茎统指标19001906191219181924193019361942194819541960196619721978198419901996200220082014•出雪平均价掐报表平台"走马观花"6龍OPS/IT/CC选择数据集并设畳报表名4数摇集名称JDBCKingCounty房屋出售数据集▼,QQQ13目就參123地面以上房屋面积1123客厅面积。0层数123旣年份T23整体情况评分123皇否有Review123是否能看到滨水区域0.01浴室数0.01纬度舞123装修年份123评分12S邮編醵字段:123出售价格堪度数值笄选COUNT(出售价格)■]M=[MAX(出售价格),H___________________________________________________出售价格(COUNT)。出售价枇MAX)报表平台"走马观花"6龍OPS/IT/CC仪表盘组件IU1L我的报表丄420170925演示y布■布…e浴^^布y有極下m布IV不同阿对应虞萱年份的分布L哽建造年份湖做1关羣―■Demo#4共i-&网站运营中心-L-&海外app质星|-0Top20国家请求聞计-0Top20国家漫游用户统计'圈Top20国家SSLTIME统计(漫游_非漫游),9林s据平臼KFI-IM2ART^gQSfe…區3.Zeus系统指标…y4.Hadoop4@^JW^…心6.Jobme5gB«fcSmt(壘周I…叱7.Job执行时长統计(最近一周平均耗时-®1.稳走性相关指标A
5.Hadoop15务运行情况…fli5.Hadgp4I^•运行情况_2--■zhouhao_folder014*宮XHedQQP监控Dashboard▼5HadoopftS-iEfjtg%*#Q*-Q-ap|M_running-Q-sppt_p«nding机器学习平台-基TSpark的图形化Al平台6龍OPS/IT/CC/ICtripML训练名:电影推荐-zyHive账号“«/<&0©AllChangesSavedOCtttfi所有模块|TypetosearchALSBinarizerConvertTo<#>Bina^ClassifiN-Gramsv+CountCustom—VectorizerReadDF电影推荐欢DbscanDCT基本信息参教配置DFSplit-2Spark:
|/edit||Crestart运行历史Tip:FilterDecisionTree执行引擎相关参数參教包括:apark资,源申请,程序名称,數据预览最:大的數据条麴以及其他等等.机器学习平台-基TSpark的图形化Al平台6龍OPS/IT/CC机器学习平台-基TSpark的图形化Al平台/II)CtripML6龍OPS/IT/CC«/AA0训练名:电影推荐・zy训练测试分流7:
3-参数信息基本信息参数配置ill练数抿比例测離据比例0.3随机/虾1l>单点也行A缀联拠行[皿取消换行。数据探索▼执行信息开始时间:2016-11-2115:35:23结束时间:2016-11-2115:35:24执行用时1seconds执行输出:customTransformedDF_01:org.apache.spark.sql.DataFrame=[userid:int,movield:int,rating:double,timestamp:int]splits:Arrayforgapache.spark.sql.DataFrame]=Array([userid:int,movield:int,rating:double,timestamp:int],[userid:int,movield:int,rating:double,timestamp:int])trainData_01:org.apache.spark.sql.DataFrame=[userid:int,movield:int,rating:double,timestamp:int]testData_D1:org.apache.spark.sql.DataFrame=[userid:int,movield:int,rating:double,timestamp:intj机器学习平台-基TSpark的图形化Al平台/|CtripML训练名:电影推荐-zy6龍OPS/IT/CC星本信息参数配置参数信息执行信息1▼defcustom_transform(inputDF:DataFrame):DataFrame={2//customcode...5valpDF=inputDF.repartition(阳)6pDF.cache()7pDFuu血"I数据探索,I开始时间2016-11-2115:34:06结束时间:2016-11-2115:35:23执行用时:77seconds扱行输出:importorg.apache.sparK.sql.DataFramecustomjransform:(inputDF:org.apache.spark.sql.DataFrame)org.apache.spark.sql.DataFrameinput_csv_data_01:org.apache.spark.sql.DataFrame=[userid:int,movield:int,rating:double,timestamp:int]customTransformedDF_01:org.apache.spark.sql.DataFrame=[userid:int,movteld:int,rating:double,timestamp:int]机器学习平台-基TSpark的图形化Al平台6龍OPS/IT/CC25000020000015000010000050000014000012000010000080000600004000020000o極Ogin§匸>g0userid执行/取消丨AI間II*Stpyspark#python数据探索主要是将spmrkDataFrame的数据collect到Driver持#然后进行计貫,工具可以使用python的pandas,API可以点击页头的链接importmatplotlibimportpandasaspdmatplotlib.use(1Agg')numpyasnpmatplotlib.mlabasmlabmatplotlib.pyplotaspitStringlOimportimportimportimport-Frompandas.tools,plottingimportscatter_matrix#这是必须的,否则囹表不显示de-Fshow(p):img=StringlO.StringIO()p.savefig(imgjforinat=1
svg')img.seek(0)print"SShtml<div>"+img.bu-F+,'</div>,,pit.close()#从临时表中荻取DataFrame#d-FName=sq1Context.table("'dfName")custom!rans-FormedDF_01=sqIContext.table("customTrans-FormedDF_©1'■),select("userid",'■movieId"j"rating")#printcustomTrans-formedDF_01.countsampleData=custoinTrans-FormedDF_01.sample(FalseQ.&Q&&31
7)#sparkDataFrame转換成PandasDataFramej然后通过pandasapi进行科学統计或可視化pdDF=sampleDa"ta.toPandas()#printpdDF#python计算与画囹code#pdDF[11
rating'"].plot.area(pit.-Figure()#pdDF.dijffC).hi.5t(col<jr=alpha=。.6,t>ins=50)catter_matrix(pdDFjalpha=0.2j-Figsize=(7j7)_,diagonal=1kde1
)show(plt);爺-3+图形聞执行优化的甥韓预第^161-0^ifiI-2p_」a)snp_Q)>oluooogr0000s00000100昌oooo®oooo寸0000«机器学习平台-基TSpark的图形化Al平台6龍OPS/IT/CC信息模块名称ALS述推E归属推荐日共祯《|葬瘡
§--代码鞭1importorg.apache.spark.ml.recommendation.ALS2
valfinputDF$=sqlContext.table("$inputDF$")3valals=newALS()4.setAlpha(falphaS)5.setCheckpointInterval(JcheckpointInterval$)6.setImplicitPrefs($implicitPref$)7.setMaxIter(JmaxIterl)8.setNonnegative($nonnegative$}9.setNumItemBlocks($numIteinBlock:sJ)16.setNuiMJserBlocks(SnumUserBlock£)11.setRank(SrankS)12.setRegParamfJregParaml)13.setSeed($seed$)14.setRatingCol("SratingColS")15.setltemCol)16.setUserCol(,'$userCol$,')17.setPredictionCol("$predictionColS")18valSoutputMDS=als.fit(SinputDF$)配置信息拳数归届Key0Key显示名0描述信息•参数类型默认参数值可选选项alphaAlpha|NUMBER▼1格式:V1,V2—丨球HcheckpointintervalCheckpointInterva|NUMBER▼J°格式:V1,V2—丨岐HImplicitPrefImplicitPref|BOOLEAN』1似臨格式:V1,V2—,机器学习平台-GPU的云平台(开发中)6龍OPS/IT/CC,CtripDiSe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论