课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
对于用户来说,随着互联网的不断发展,获取到的数据类型和大小也就越额来越多,今天我们就一起来了解一下,在对数据信息处理的时候都有哪些缓存功能在发挥作用。
1. 前言
随着移动互联网的发展,越来越多的业务数据和日志数据需要用户处理。从而,用数据去驱动和迭代业务发展。数据处理主要包括:计算和查询。计算主要为离线计算、实时流计算、图计算、迭代计算等;查询主要包括 Ahdoc、OLAP、OLTP、KV、索引等。然而,在数据业务中,我们时常听到数据需求方和数据开发方对性能慢的不满,所以,如何高效响应海量且迫切的数据需求,是大数据平台需要面对的一个关键问题,本文将介绍如何基于 Alluxio 建设分布式多级缓存系统对数据进行计算加速和查询加速。
2. 离线数据计算查询加速问题
对于加速组件,结合生态兼容性和系统成熟性的基础上,我们选择 Alluxio,我们知道,Alluxio 是通过 UF 思想访问底层持久化的分布式数据。通常,我们的数据主要存放在公司私有 HDF 和 MyQL 上。那么,如何通过 UF 思想访问到私有 HDF 数据进行加速是我们面对的主要问题。私有 HDF 由于历史原因,其基于的 HDF 版本较低,加上公司对 HDF 进行了部分改造,使得开源的计算和查询组件访问公司内部的离线数据较为困难。因此,如何打通 Alluxio 访问私有 HDF 成为了系统的关键,后面的章节中,我们会做相关介绍。
3. 基于 Alluxio 的解决方案
整体上,我们当前的多级缓存系统由私有 HDF(PB 级别) + MEM(400G) + D(64T) 共 3 层组成。
4.无法连通的问题
在测试连通公司私有 HDF 集群的过程中,我们遇到了一个表现个比较奇怪的问题,就是启动 mater 后,Alluxio 前端 web 页面菜单 "Browe" 点击无响应,debug 代码发现,某个 reentrantLock 的读计数没有正确降为 0(Mater 启动过程中出现,所以 debug 时候需要设置 upend=y,同时可从 AlluxioMater 的 main 函数开始入手),导致一直处于死锁状态,这个问题排查了很久,近乎把 Alluxio 启动代码逻辑都看完了,代码上没有发现问题,后来无意发现是因为各节点(mater 和 worker)上没有安装 Agent,因为前文提到 JNI 使用的 o 库需要通过类似代理的方式先访问 Agent, 利用本地的 Agent 去访问私有 HDF。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!