抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

Netflix 展示大数据分析基础架构

2017 年 3 月 26 日

Netflix 资深软件工程师 Tom Gianos 和 Netflix 大数据计算工程经理 Dan Weeks 在 2016 年度 QCon 旧金山活动中介绍了 Netflix 的大数据策略和分析基础架构,此外还概括介绍了他们的数据规模、S3 数据仓库,以及他们的大数据大数据联合编排系统(Federated orchestration system) Genie

为了介绍具体的需求,Weeks 解释称,“规模”是 Netflix 在大数据领域面临的最大挑战。该公司在全球范围内有超过 8600 万会员,每天通过流播的方式播放总时长超过 1.25 亿小时的内容。这样的规模导致他们的数据仓库容量已经超过 60PB。

尽管很多人可能觉得视频流播数据是 Netflix 数据分析工作的主要数据源,但 Weeks 解释说,他们分析的主要是其他类型的数据,例如公司内部各种微服务和营销活动产生的事件,尤其是 Weeks 专门提到:

Netflix 是一家彻头彻尾的数据驱动型公司。我们喜欢根据真凭实据作出不同的决策。对于整个平台的某些变更,如果无法切实证明有助于改善用户体验,我们宁愿不进行这样的变更。

Weeks 列举了一个此类数据类型的用例: A/B 测试。数据科学家可以分析用户的交互,进而决定向用户永久推送哪些类型的功能。

Weeks 还概括介绍了 Netflix 的数据流程架构。他们共使用了两个数据流,一个用于事件数据,一个用于维度数据。事件数据通过他们的 Kafka 数据管道传递,维度数据则使用开源工具 Aegisthus 从他们的 Cassandra 群集拉取。最终,所有类型的数据汇总至 S3。

虽然传统数据仓库可以使用 HDFS ,但 Weeks 提到使用 S3 可以获得其他一些优势。例如 99.99% 可用性、版本控制,以及将计算负载从存储系统中剥离的能力。最后一点非常关键,尽管数据未能本地保存会导致延迟增高,但通过这样的剥离可以很轻松地在无须移动数据的前提下对计算群集进行缩放或执行升级任务。

在数据仓库方面,为了获得所需数据,Weeks 介绍说他们使用了一种名为 Metacat 的元数据系统。具体来说,该系统提供了有关确定如何处理数据所需的信息,此外还可以从中了解数据具体是什么,保存在哪里。由于这是一种联合(Federated)系统,因此可在 Hive、RDS、S3 等存储的基础之上运行的技术。

Weeks 还介绍说,数据本身存储为 Parquet 文件格式。这是一种列式存储格式,借此可获得更高压缩率。Parquet 文件还可以存储额外的元数据,例如有关列最大 / 最小长度及其体积的信息。这样诸如计数或跳过之类的操作就可以非常快速地执行完毕。

有关 Parquet 调优地详细信息已由 Netflix 资深软件工程师 Ryan Blue 公开发布至这里

在Weeks 从底层介绍他们的大数据环境后,Gianos 从较高层面进行了介绍。他介绍的内容主要围绕Genie,这是一种联合编排引擎,可用于管理诸如Hadoop、Pig、Hive 等不同类型的大数据作业。

为了介绍他们针对Genie 的具体需求,Gianos 用一个简单的用例作为例子:少量用户同时访问同一个群集。虽然这种情况非常易于管理,但随着组织规模的增大,可能会面临不同的情况,导致对客户端资源和群集资源的需求激增,进而导致部署变得愈加复杂。这就导致了导致数据科学家经常遇到的问题,例如作业速度变慢,数据处理库过时等,这也使得系统管理员难以轻松地对这些问题作出响应。

按照Gianos 的介绍,Genie 可以帮助系统管理员执行群集的启动和管理、库文件的安装等任务,这一切都不会影响到最终用户。从用户的角度来看,用户可以通过这样的抽象直接访问群集,而无须考虑如何连接到群集,也不需要了解群集上到底运行了什么。

在群集的更新方面,Gianos 介绍说,只要成功通过测试,只需要添加对应的标签即可顺利迁移至新群集。Genie 可以对所有工作进行编排,并让原本的作业继续在老群集上运行,同时新提交的作业可以在新群集上运行。这样即可实现不停机更新。

Genios 还介绍说,Genie 的标签机制可以应用于负载均衡,为此只需跨越群集对标签进行复制即可拆分负载。从客户端的角度来看,这一过程是完全透明的。

另外 Genios 也介绍了 Genie 的二进制更新机制。新的二进制文件可以移动到一个集中的下载位置,随后在下一次调用时自动替换老的文件。

Genios 从数据科学家的角度演示了 Genie 的完整工作流。基本上,他们只需要将作业提交至 Genie,其中可包含群集标签等元数据,以及自己希望使用的大数据处理引擎。随后 Genie 可以查找最适合运行该作业的群集。Genie 的界面会通过用户反馈告诉用户作业的运行进度。

详细信息请在线查看完整演示文稿

阅读英文原文 Netflix Demonstrates Big Data Analytics Infrastructure

2017 年 3 月 26 日 19:004078
用户头像

发布了 283 篇内容, 共 88.3 次阅读, 收获喜欢 42 次。

关注

评论

发布
暂无评论
发现更多内容

海量数据架构下如何保证Mycat的高可用?

冰河

分布式事务 分布式数据库 分布式存储 mycat 数据库集群

仅凭这份Java大纲笔记,我如愿拿到了阿里offer。

Java架构之路

Java 程序员 架构 面试 编程语言

阿里架构师经验分享!啃完999页Android面试高频宝典,面试心得体会

欢喜学安卓

android 程序员 面试 移动开发

滴滴开源小桔棱镜:一款专注移动端操作行为的利器

滴滴技术

开源 滴滴 移动端

刚入职,就被各种 Code Review,真的有必要吗?

xcbeyond

方法论 研发管理 编程习惯

Github 2020 年度报告:你以为新冠击溃了开发者?不!他们创造了更多代码...

阿里巴巴云原生

开源 Serverless 程序员 代码 开源代码

智慧警务开发,二维码定位报警系统搭建

t13823115967

智慧公安 智慧公安扫码

iOS面试基础知识 (一)

iOSer

ios 面试 runtime 编程开发 iOS Developer

还有谁比阿里人更懂SpringCloud Alibaba 呢?P8大牛纯手打笔记免费分享!

Java架构之路

Java 程序员 架构 面试 编程语言

用60行代码实现一个高性能的圣诞抽抽乐H5小游戏(含源码)

徐小夕

Java 前端 H5游戏 H5

EPBC环保生态链系统开发案例丨环保生态链EPBC源码平台

系统开发咨询1357O98O718

环保链APP系统开发案例

挖矿矿池系统开发详情丨挖矿矿池源码案例

系统开发咨询1357O98O718

挖矿矿池系统开发案例 旷工系统开发功能

Mybatis动态映射,so easy啦

田维常

架构师训练营第三周作业

Geek_xq

新思科技最新报告显示开源安全是首要考虑因素

InfoQ_434670063458

DeFi流动性挖矿系统开发(案例源码开发)

系统开发咨询1357O98O718

defi流动性挖矿系统开发

四币连发平台系统开发详解丨四币连发源码(案例)

系统开发咨询1357O98O718

四币连发系统开发案例详解

DeFi借贷质押系统APP开发|DeFi借贷质押软件开发

开發I852946OIIO

系统开发

架构师训练营第八周作业

李日盛

算法

《数据结构与抽象:Java语言描述》.pdf

田维常

数据结构

某美女的程序员老公半夜都还不回家,原来是偷偷在公司看Redis+JVM+Spring cloud+MySQL技术文档

Java架构之路

Java 程序员 架构 面试 编程语言

四面腾讯pcg后端开发岗,一个星期面完成功拿到20K的offer。分享面经

Java架构之路

Java 程序员 架构 面试 编程语言

区分Protobuf 3中缺失值和默认值

Gopher指北

golang protobuf

恕我直言!有了这份MySQL学习文档,你收藏夹里的其他MySQL学习资料都可以扔了

Java架构之路

Java 程序员 架构 面试 编程语言

超详细讲解!Android面试真题解析火爆全网,搞懂这些直接来阿里入职

欢喜学安卓

android 编程 程序员 面试 移动开发

SGY奇点交易所系统软件开发|SGY奇点交易所APP开发

开發I852946OIIO

系统开发

区块链BaaS应用平台开发

13828808769

区块链信息共享应用落地搭建解决方案

t13823115967

区块链+ 区块链应用 信息共享

Scala中String和Int隐式转换的问题分析

木子李G

scala 大数据 编程 隐式转换

20分钟带你掌握JavaScript Promise和 Async/Await

Geek_Willie

Java

DeFi流动性挖矿系统开发详解方案

系统开发咨询1357O98O718

defi流动性挖矿系统开发

Study Go: From Zero to Hero

Study Go: From Zero to Hero

Netflix展示大数据分析基础架构-InfoQ