基于Apache Flink的实时计算引擎Blink在阿里搜索中的应用

  • 时间:
  • 浏览:1
  • 来源:uu快3官方邀请码_uu快3app赚钱_彩神8

Table API

选择Flink应用到搜索基础架构中,我们都我们都 在十个 方面做过评估。 Flink在十个 方面都满足我们都我们都 的要求。

阿里巴巴是世界上最大的电子商务零售商。 我们都我们都 在2015年的年销售额总计3940亿美元,超过eBay和亚马逊之和。阿里巴巴搜索(个性化搜索和推荐平台)是客户的关键入口,并承载了大每项在线收入,我希望搜索基础架构团队都要不断探索新技术来改进产品。

异步I/O

会议的曾经热门话题是流式SQL,我们都我们都 将继续在Flink中加上更多的SQL支持和Table API的支持。阿里巴巴的业务持续增长,这愿因我们都我们都 的job会真难大,确保我们都我们都 都要扩展到更大的集群变得真难重要。

(编辑笔记:data Artisans认为FLIP-12足够强大,都要在不久的将来在某个时间拥有买车人的独立写入。什么都我们都我们都 我希望简单地介绍一下这里的想法,愿因你想了解更多,都要查看FLIP writeup)

(编辑注:FLIP-11暗含了与上述功能相关的一系列Table API和SQL改进,对该主题感兴趣的都要阅读)

在电子商务网站应用场景中,哪些地方能造就十个 强大的搜索引擎?答案我希望尽愿因的为每个用户提供实时相关和准确的结果。同样十个 不容忽视的问题 我希望阿里巴巴的规模,当前真难找到还里能适合我们都我们都 的技术。

为用户提供世界级搜索引擎的第一步是创建可供搜索的文档。在阿里巴巴的应用场景中,文档是由数百万个商品列表和相关的商品数据组成。

本文作者:王庆

Blink的改进主要包括十个 方面:

我们都我们都 的job在生产环境中很大瓶颈在访问组织组织结构存储器上,如HBase。为了解决你这一问题 ,我们都我们都 引入了异步I/O,我们都我们都 将致力于为甚区做出贡献,并在FLIP-12暗含全部描述。

Operator缩放

Flink从曾经角度来解决你这一问题 ,即将流式解决作为基本出发点,在流式解决框架上支持批量解决,将批解决作为流式解决的四种 生活特殊具体情况。使用你这一土方法 ,不想丢掉我们都我们都 在批解决模式(批解决模式下流是有限的)下做出的优化,你仍然都要做或多或少批量解决上的优化。

Part 4: 阿里巴巴的Flink未来计划是哪些地方?

Apache Flink®我希望四种 生活曾经的技术,阿里巴巴正在使用基于Flink的系统Blink来为搜索基础架构的关键模块提供支持,最终为用户提供相关和准确的搜索结果。在这篇文章中,我将介绍Flink在阿里巴巴搜索中的应用,并介绍我们都我们都 选择在搜索基础架构团队中使用Flink的愿因。

在线日志(展示,点击,交易)由解析器和过滤器下发和解决,我希望使用业务逻辑连接在同時 。接下来聚合数据,将聚合结果推送到Druid,在Druid组织组织结构,我们都我们都 都要编写查询语句并对数据执行多样化的OLAP分析,并查看不同算法的效果。

在线机器学习

在这每项中Flink有十个 应用场景。首先,我们都我们都 来讨论它在商品价值形式实时更新中的应用。阿里巴巴搜索排序中使用的或多或少商品价值形式包括商品CTR,商品库存和商品点击总数。哪些地方地方数据随时间而变化,愿因都要使用最新的数据,我们都我们都 就能为用户提供更相关的搜索结果排序。Flink pipeline为我们都我们都 提供在线价值形式更新,并大大提高了转化率。

在生产环境中,我们都我们都 的客户端愿因都要改变Operator的并行性,但同時 我们都我们都 不想选择选择离开当前具体情况。我们都我们都 开始 使用Blink时,Flink不支持在保持具体情况的同時 改变Operator的并行性。Blink引入了“bucket”的概念作为具体情况管理的基本单位。有比任务更多的bucket,我希望每个任务将被分配多个bucket。当并行性改变时,我们都我们都 将重新分配任务的bucket。 使用你这一土方法 ,都要改变Operator的并行性并维持具体情况。

接下来,我们都我们都 将介绍运行时改进,都要分为十个 不同的类别。

来源:51CTO

增量Checkpoint

文档创建

(编者注:Flink社区同時 在Flink 1.2版本中解决了的你这一问题 - 该功能在最新版本的主分支中可用。Flink的“key groups”概念在很大程度上等同于里面提到的“bucket”,我希望实现时使用的数据价值形式略有不同。更多信息,请在Jira查看FLIR-3755)

非常重要的是,我们都我们都 期待与社区继续合作,以便将我们都我们都 的工作贡献回开源社区,以便所有Flink用户都能从我们都我们都 加入Blink的工作中受益。我们都我们都 期待着在2017年Flink Forward大会上向您介绍我们都我们都 的进展具体情况。

Blink是Flink的十个 分支版本,我们都我们都 做了一定的改进以满足阿里巴巴的或多或少特定需求。我希望,Blink在有几个不同的集群上运行,每个集群有合适2000台机器,大规模集群的性能对我们都我们都 来说非常重要。

愿因商品数据存储在或多或少不同的地方,什么都搜索文档创建也是十个 很大的挑战,搜索基础架构团队将商品相关的所有信息汇总在同時 并创建全部的搜索文档。一般来说,整个过程分为十个 阶段:

Part 2: 选择十个 框架来解决问题

这十个 阶段实际上是在经典的“lambda架构”中的十个 不同的pipeline上运行:全量构建pipeline和增量构建pipeline。

其次,每年的特定日子(如光棍节),或多或少商品折扣力度很大,有时甚至高达200%。我希望,用户行为也会处在很大的变化。交易量巨大,通常比我们都我们都 在平时看得人的高出什么都倍。已经 训练的模型在你这一场景作用有限,我希望我们都我们都 使用日志和Flink流式作业构建了在线机器学习模型,你这一模型会将实时用户行为数据反馈到系统中。结果在哪些地方地方不常见但非常重要的营销节日的转换率有了很大的提升。

Blink中每个作业全是买车人的JobMaster,以根据作业都要请求和释放资源。我希望不同的作业必须在同十个 Java多多多线程 中运行,这将在作业和任务之间得到最佳隔离。阿里巴巴团队目前正在与Flink社区合作,将这项工作贡献给开放源代码,改进工作在FLIP-6(除了YARN之外还扩展到或多或少集群管理器)中得到了体现。

Part 1: Flink在阿里巴巴搜索中的应用

Table API更全部,我希望我们都我们都 都要使用相同的SQL进行批解决和流式解决。

我们都我们都 将继续优化我们都我们都 的流式job,有点是更好处在理临时倾斜(temporary skew)和慢节点(slow machines),同時 不想对反压机制(backpressure)和故障快速恢复造成影响。正如在Flink Forward大会上我们都我们都 讨论的,我们都我们都 认为Flink作为批解决框架以及流式解决框架有着巨大潜力。我们都我们都 正在努力利用Flink的批解决能力,希望在有几个月内在生产环境中使用Flink批解决模式。

更强大的YARN模式,但仍然200%兼容Flink的API和更广泛的生态系统。

我们都我们都 首先加上了对用户自定义函数UDF的支持,方便在Flink中实现独特的业务逻辑。我们都我们都 还加上了十个 流对流的join的功能,愿因Flink对于具体情况比较好的支持,什么都实现起来比较容易。我们都我们都 加上了有几个聚合函数以及滑动窗口的支持,最有趣的十个 是distinct_count。

在Flink中,Checkpoint操作分为十个 阶段:在本地获取具体情况快照,我希望将具体情况快照保存到HDFS(或曾经存储系统),我希望每个快照的整个具体情况存储在HDFS中。我们都我们都 的具体情况数据太久了,你这一土方法 是不可行的,什么都Blink只存储修改的具体情况在HDFS中,这还里能大大提高Checkpoint的传输强度。你这一修改使我们都我们都 还里能在生产环境中使用很大的具体情况数据。

一般来说,有四种 生活土方法 来将批解决和流式解决统同時 来。四种 生活土方法 是将批解决作为基本出发点,在批解决框架上支持流式解决。这愿因不符合真正意义上低延迟,愿因用微批量解决(micro-batching)模拟流式解决都要或多或少固定的开销。我希望,当试图减少延迟时,开销的比例也会相应增加。在我们都我们都 的规模上,为每个微批量解决器调度2000个任务,都要重新建立连接并重新加载具体情况。我希望在四种 生活程度上,微批解决土方法 代价太高将变得真难意义。

Yarn上的Blink

我还将讨论如何改进Flink以满足我们都我们都 对Blink的独特需求,以及我们都我们都 如何与data Artisans和Flink社区合作,将哪些地方地方更改贡献给Flink社区。一旦成功地将我们都我们都 的修改合并到开源项目中,我们都我们都 会将现有系统从Blink转移到Apache Flink。

我们都我们都 开始 项目时,Flink支持2种集群模式:standalone模式和YARN上的Flink。在YARN模式中,作业必须动态请求和释放资源,我希望都要预先分配所有都要的资源。不同的作业愿因共享相同的JVM多多多线程 ,这有助资源利用和资源隔离。

我们都我们都 的工程师会定期测试不同的搜索算法,我希望都要尽愿因快地评估出效果。现在你这一评估每天运行一次,愿因想实八时 析效果,什么都我们都我们都 使用Blink构建了十个 实时A/B测试框架。

Part 3: Blink是哪些地方?

搜索算法实时A/B测试