创业公司的大数据平台选型和进化.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《创业公司的大数据平台选型和进化.pptx》由用户(无敌的果实)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 创业 公司 数据 平台 选型 进化
- 资源描述:
-
1、创业公司的大数据平台选型和演进充分了解业务需求和产品所处阶段创业公司面临的一些挑战和优势:1.资源不足2.时间压力大3.没有技术上的历史包袱,选型相对自由前两点是搭建大数据平台的挑战,最后一点是优势。对于大部分创业公司而言,这三点挑战和优势始终存在,但是业务特点随着公司的发展会有相应的变化创业公司的发展阶段产品验证阶段产品成熟阶段业务增长阶段魔窗的大数据平台监测报告业务需求1.计算由魔窗的移动端SDK采集过来的包括,日活,应用打开次数,流失用户,回流用户等移动端监测的常用指标2.因为魔窗是提供基于DeepLink的一系列应用唤醒服务,所以我们还需要监测,从投放在各个渠道的基于DeepLink生
2、成的短链的曝光,安装转化率3.魔窗还提供各种营销活动的制作和投放,所以还需要监测营销活动的曝光率业务特点1.数据量很小,用户最多只有几十个种子用户,整个监测采集到的数据规模根本不能称作大数据。2.魔窗所计算的统计指标也无法确定对用户是否有真正的帮助,很可能整个功能会根据市场反馈最后被砍掉。这种情况下,魔窗首先考虑的是要尽量缩小产品验证的成本,所以技术选型的原则很简单,端到端跑通功能,设计和实现上越简单粗暴越好,不需要存在技术积累,被砍了也不可惜。所以这个时候架构的总的原则是保证能够最快速迭代,推倒重来也没关系。我们的整个计算平台的架构是这样的架构架构缺点:不能称作是大数据计算平台,只是一个包含
3、了数据采集,数据计算脚本和数据展示的Java应用,拿目前流行的microservice化来说,这个就是一个micro service 的反例,一个monolithic的应用。事实上的效果:非常适合验证产品,利用一些一站式开发框架,修改业务非常简单,MySQL的结构化特点使得计算脚本非常容易。这个架构大约支撑了我们3个月的时间业务特点1.计算指标相对稳定,及时加指标也是基于原有的采集点的计算2.有一些流量大一点的种子用户进来了,数量也越来越多3.计算上分为了实时计算和离线计算这两种需求除了MySQL的计算性能问题,这个时候光是采集数据就会经常造成MySQL连接失效,于是我们在不断优化MySQL服
4、务器端和客户端连接参数的同时,开始了真正的大数据平台的架构。这个时期的架构有一个总的原则就是可持续迭代,因为产品一旦稳定成熟,技术上就承受不了推到重来的代价了架构1.采集端保证大吞吐量2.再存储和计算节点处问题的情况下,保证在一段时间内采集到的数据不会丢失3.性能可以通过Scale Out解决,并且易于做Scale Out4.DevOps简单,能够方便的监测和预警架构数据采集采用Nginx没有什么太大的争议,异步非阻塞,保证大吞吐量,需要进行参数调优,比如worker,keep_alive等数据暂存区这里和一些传统的监测架构有所区别,魔窗并买有采用把Nginx的日志当数据暂存区的办法,而是直接
5、用了Kafka,好处在于:1.比起磁盘IO,Kafka的吞吐量更大,并且提供了异步写入的方法,保证Nginx采集到的数据能够最及时的进入数据暂存区2.消息队列本身就具有分布式的一些特性,比如支持Failover保证高可用,数据可以存放多份,Partition机制是数据的写入和加载更高效,3.消息队列队列天生能解决不同种类监测数据区分的业务问题(比如Topic)4.比起日志,利用Kafka的API能够方便的处理一些数据续传的问题,比如如果存储节点崩溃了,仅仅利用日志是很难知道下次应该从那条记录开始续传的,Kafka就可以利用客户端保存的Offset(实际上我们每个Kafka客户端的Offset是
6、保存在Zookeeper中的)做到数据传输当时在两种方案里摇摆,一个是Flume 还有一个是Spring XD,最终选择Flume的原因在于1.使用简单,有大量的source和sink可以用2.能被CDH托管(Spring XD不能被CDH托管,但是可以被Yarn托管)离线计算Spark+HDFS的模式相信已经被大家所熟悉,下面之谈一下魔窗对于Spark的优化心得:1.了解应用中的RDD的partition,执行中的stage情况,避免过多小任务2.尽可能程序中复用RDD,如果多次使用,考虑做cache,根据实际情况选择合适的持久化策略3.必要时候使用broadcast 和 accumulat
7、or4.根据自己的作业具体情况结合系统资源监控调整主要资源类参 数,例 如num-executors,executor-memory,executor-cores和spark.default.parallelism等5.如果允许,建议尝试官方推荐的Kryo6.对于jvm,通过打印GC信息了解内存使用情况,调整相应参数流式计算对于像用户留存这样的指标,根据回溯历史数据去做计算是相当困难的,采用流失计算的话会简单很多,根据魔窗的业务特点也并没有引入Storm或者Spark Stream这样的流失框架,而仅仅是在Flume传输数据的过程中,简单地利用HBase做了流式计算。留存用户举例Unique
展开阅读全文