说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Netflix:使用大数据驱动商业决策

HTML文档下载 WORD文档下载 PDF文档下载
大数据时代改变了消费者的行为模式,企业应该解读来自市场和消费者的海量数据,探索和挖掘这些数据背后隐藏的商业机会,做出重要的商业决策。本文将以Netflix为例,介绍它的技术堆栈以及如何处理重要的商业决策。

Netflix大数据平台架构经理Jeff Magnusson,在2013年旧金山QCon 大会上就他们的数据平台即服务(Data Platform as a Service)做了演讲。跟随这个演讲的线索,我们试图进一步解释技术堆栈是如何存在的以及它是如何帮助Netflix处理重要的商业决策。

Netflix公司在全球拥有超过3000万用户。每个用户在访问Netflix网站时都会提供几个数据点。一系列事件如播放、对视频的搜索和评价都会被捕捉和分析。 此外,用户使用中涉及到的时间、日期、地理位置、设备和页面中的浏览或滚动行为,也将被Netflix用来提供操作事件发生的环境,并将用户划分到不同的类别中。公司使用这些数据来提高其网站的参与度并做出诸如接下来将如何分配资金。

来自第三方的或社交媒体的元数据,也有助于对平台吸引用户参与或新用户订阅。

Netflix公司自2009年以来就开始在云中运行并使用Hadoop平台,他们使用的主要基础设施大数据块有:

 Amazon S3:Amazon S3技术被用来捕获各种各样的使用Ursula设备上数十亿次的事件,Ursula是一个内部数据管道工具。S3被当作运行Hadoop任务的Elastic Map Reduce(EMR)集群的可信来源。

 Hadoop:Apache Hadoop被用作分布式计算基准库。Hadoop被部署在Elastic Map Reduce集群上,另外,每个节点提供的存储中并没有使用HDFS,而是利用S3桶存储。这有点奇怪因为它可能会导致数据从S3到EMR节点违反Hadoop利用的数据本地性原则,但从另一方面来说,这意味着S3可以作为单一的可信来源,而EMR集群被作为消耗品,而且几乎可以被实时调整为合适的大小。

Hive:Hive在Netflix中被用来特定的查询和轻量级的聚集。Pig则用于ETL和更复杂的数据流。其数据迁移方面的特长也被用来在复杂的操作之间进行连接。

Genie:Hadoop PaaS技术产物Genie被用来在EMR提交任务。Genie提供了一个REST-FUL API,在使用它时,开发者无需处理Hadoop集群固有的启动或维护工作。开发者可以从Genie的GitHub代码库中fork它。

Franklin:Franklin是一个元数据API,可以用来从RDS、Redshift、Cassandra、Teradata 或者 S3上提取信息。自从2011年,从基于Oracle数据中心解决方案成功迁移到AWS云后,Netflix就使用 Cassandra收集在线数据。Teradata主要用于数据中心,但这将随着Teradata宣布签约Netflix 来组建他们的Teradata Cloud而改变。

Forklift:Forklift可用于在不同的数据存储区之间传输分析数据。源和目标可以是Hive、RDBMS、S3、R等。

Sting:Sting用于将Genie任务结果用特定的方式进行视觉化处理。通过将数据集保留在内存中,Sting能够以亚秒级响应时间执行常用OLAP操作,例如交叉分析。

Lipstick:Lipstick是用来让用户在Pig工作中可视化数据流和整体工作进度。这种方式可以直观的发现已停顿的任务,错误输出的数据或失败的任务,并将这些问题快速修改以便正确执行。

除了这些工具,Netflix公司已经开发了几个辅助工具例如Curator。Curator是一组Java库,使Apache Zookeeper方便使用。构建健壮客户端对于Curator是一个轻而易举的事,你能成功避免一些不安全的客户端调用和错误的假设陷阱请求。

上述的技术堆栈的所有部分中的一个非常重要的应用程序是Netflix的Recommendation。Netflix全部视频流中,大约有75%是由Recommendation结果驱动的。其中一个系统的Recommendation建议是用Markov链把电影模型化为一个状态然后计算这些状态之间转换的可能性。在RDBMS中,这将作为一个存储过程运行,一个星期一次,不过作为一个昂贵的副本,它并不具有良好的可扩展性。而使用Hadoop,这个问题得到了本质的解决,能够进行扩展而无需复制任何数据,另外使用Pig或Java Map Reduce任务,将比作为存储的规程更易于维护。

马尔科夫链描绘了一种离散时间随机过程,它依据转移概率矩阵在一系列状态间变换。将每部电影作为一个节点建模,并使用双边Map Reduce任务,Netflix能够计算从某个节点转换到另一个的可能性,而这正是Recommendation值。未来的值仅仅依赖于当前值,这决定了它非常适合Map Reduce任务——因为无需在Hadoop节点中存储状态。

转移概率并不是Netflix的Recommendation引擎考虑的唯一参数。周围的环境也是考虑的一个有趣方面。如果他是在家里或者在休假,或是在工作环境,用户也许会根据不同的设备想访问不同内容。这是一个连Netflix公司到目前为止都没有成功地解决的问题,因为要想将使用环境与观看选项关联,还需要克服若干挑战。

无论是在其他行业,还是竞争对手,Netflix的大数据架构都不容易被轻易复制。然而一些行为模块是开源的,而且被放在其GitHub账户上供人们下载。对于任何一个愿意开发大数据架构的组织,这些可以作为起点。Netflix公司已经表明,大数据战略不是一个事后的规划,而是需要预先计划和多年的不折不扣执行的。

原文链接: Big Data at Netflix Drives Business Decisions (编译/魏伟 审校/仲浩)

CSDN推荐:欢迎免费订阅《Hadoop与大数据周刊》获取更多Hadoop技术文献、生态圈趋势。

自动选择 Text 的内容-VB资料 VB 调用 IMAGE 控件实现图像缩放的一种方法 VB5 实 现 窗 口 图 像 缩 放、 滚 动 技 巧 VB编程之提速攻略(一) VB开发通讯软件 VB实现图形动画的三种方法 VB随机图像的魅力 VB中不规则图形热点的实现 VB中任意旋转位图的实现 VB中实现图像特技 VB中随机图像的魅力 VB中位图旋转的实现 Visual Basic设计图形浏览器示例 捕捉屏幕图象 -VB资料 放置“透明”的图片-VB资料 分割图像的方法-VB资料 如何将整个画面暗下来,如同关机前一般-VB资料 VB获取桌面图象 简单介绍透明位图的实现方法 -VB资料 将图片「非重叠显示」填满整个表格视窗 -VB资料 将英文字母及阿拉伯数字旋转任意角度 -VB资料 将真彩色图像变为256色灰度(BIG5码):-VB资料 VB利用Image控件实现图形浏览程序 利用VB捕捉并保存屏幕图象 切割一个Container中的图片 -VB资料 VB如何改变桌面的图片? VB如何实现“百叶窗”的图形特效? VB如何实现霓虹灯效果 VB如何在VB中用API获得EXE文件图标并显示在Picture控件里 VB如何在VB中直接显示无格式256灰度级图像 VB如何在窗体中平铺图片? 关于接口 请大家提供方案 同志们我想问的是高程中考的是标准C还是C++ SQL查询结果问题 在Delphi中我如何得到,打印机任务个数? 刚上来散分了 安装softice后,机器不能启动了!!!!!! datawindow的edit有editchanged事件,即一改变内容就触发,我想将这个事件加在multilineedit控件里,自定义事件要选择哪个EventID? 在存储过程中如何使用表名变量? 一点小问题,请帮帮忙 菜鸟求助 用VC对WORD文档进行一些操作,高分求救 Suspicious pointer conversion 是什么警告啊? 有哪位高手知道微软提供的的简繁互转的组件是哪个,在线等待,高分送 紧急求助!!既可以选择还可以接受用户输入的下拉选框!!万分感谢!! 在jsp页面中如何实现显示一行文字消息后再更改该文字的内容?? 高分求Excel基本操作代码,如打开关闭文件、取单元格数据之类的 关于MSHFLexGrid与ADODC的几个问题 什么是内建数据库? 请问Delphi 6怎么样才能激活Invokable向导? 安装softice后,不能启动机器了!!!!!!!! 听听StringGrid 隐藏行的好建议,别讲RowHeight[i]=0阿 关于VB调用Excel打印报表的问题 哪有电脑知识问答题? 我有项目,有谁参加??? 请问哪儿能下载模块 ming? 这样的情况还能用StringGrid吗???如果不可以那用什么?DBgrid? 致JAVAMAIL配置不成功者--即编译通过但运行不了的朋友 请问asp.net 项目开发中,页面设计与代码编写如何分工 这个地方怎么回事?(代码) 不能上网??为什么?我想不明白?? ASP包含文件问题,给分50,在线等候ING。。。。 怎樣在applet中控制button的大小和具體位置? 从Microsoft操作系统的发展中,我们可以看到操作系统最终目标是OFS,它基于一种内建数据库技术,最终什么样的数据库,也就是何为内建数据 鼠标左键按下拖动是对应的windows消息是哪个?(像WM_LBUTTONDOWE) 与市场上通过网站的web发送短信相反,web能接受短信吗?如何完成? 与市场上通过网站的web发送短信相反,web能接受短信吗?如何完成? 我有项目,有谁参加??? 要用jdbc连接两个用户怎么办? 怎样取出字符串? 请问哪里有支持代理服务器的telnet客户端? 用vbscript将list框里的多选的值读出来,急!在线等待 想在北京找个JAVA或XML及相关技术开发方面的工作(大学毕业后工作三年,然后读了统招的研究生) 用VBscript 取当前页form 中项目的值。 请问在JBuilder7中,如何引入javax.xml.parsers.*;org.xml.sax.*;org.w3c.dom.*; 急需要原代码 如何在delphi 6中的 采单加入图片背景? tomcat 问题 请指教:Wrf文件用什么软件打开呢? 请大家帮忙,谢谢 这个问题如何解决!特来请教!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘