首页 技术 正文
技术 2022年11月21日
0 收藏 619 点赞 2,163 浏览 1112 个字

离线?在阿里搜索工程体系中我们把搜索引擎、在线算分、SearchPlanner等ms级响应用户请求的服务称之为“在线”服务;与之相对应的,将各种来源数据转换处理后送入搜索引擎等“在线”服务的系统统称为“离线”系统。

特点:1. 任务模型上区分全量和增量(1)全量是指将搜索业务数据全部重新处理生成,并传送给在线引擎,一般是每天一次。这么做有两个原因:有业务数据是daily更新;引擎需要全量数据来高效的进行索引整理和预处理,提高在线服务效率。(2)增量是指将上游数据源实时发生的数据变化更新到在线引擎中。(3)性能方面有较高要求。全量需要极高吞吐能力,确保数以亿计的数据可以在数小时内完成。增量则需要支持数万TPS秒级的实时性,还需要有极高的可用性。

搜索离线引入Hbase?:1.通过Scan/Get可以批量/单条的获取数据,通过bulkload/put可以批量/单条的导入数据,这与搜索的全量/增量模型完全吻合,天然适合支持搜索离线业务2.底层存储基于HDFS,LSM-Tree的的架构能够确保数据安全性,计算存储分离的架构保证了集群规模水平可扩展,易于提高整体的吞吐。通过单机性能优化(Async、BucketCache、Handler分层、Offheap)和集群的扩容,确保了业务大幅增长时,存储从来没有成为系统的瓶颈。3.Free Schema的特性能够很好的应对业务数据频繁变化的情况,也能够方便支持一些特殊业务场景的数据逻辑。

基于Flink的计算架构明显的优势:1.采用SQL来描述Blink任务业务逻辑非常清晰,可以直接利用Blink提供的各种Operator完成数据处理,方便任务的调试,例如:dim join、groupby,而不是在Datastream时期需要自行编写完成类似Hbase Join的Operator。2.Blink 2.1原生支持Batch,采用Batch模式可以直接完成生成HFile的任务,下线MR任务,彻底统一计算引擎到Blink。Batch模式任务执行时采用分阶段调度可以大幅的节省计算资源,提高集群效率。Blink SQL可以通过修改提交模式,分别转化为Stream或Batch任务,在保持业务逻辑稳定的同时方便任务调试和验证。3.通过Bayes这样的开发平台服务化的方式提交任务到不同集群,彻底解决以前任务通过GateWay提交运维复杂的问题,添加新的Yarn集群只需要简单配置即可完成。另外在Bayes上同样会保存Bahamut自动生成提交的Sql,可以在Bayes上直接进行任务的调试和管理,方便了开发人员。

搜索离线平台从0到1的建设已经走过了两年,还是很不错的。值得各大企业借鉴学习。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,105
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,582
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,429
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,836
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,919