如何借力Alluxio推动大数据产品性能提升与成本优化?

内容简介
随着数字化不断发展,各行各业数据呈现海量增长的趋势。存算分离将存储系统和计算框架拆分为独立的模块,Alluxio作为如今主流云数据编排软件之一,为计算型应用(如 Apache Spark、Presto)和存储系统(如 Amazon S3、Alibaba OSS)的数据访问构建了桥梁。
本文使用亚马逊云、阿里云服务商产品,对Presto、Hive等计算框架与不同UFS直连时的关键性能指标进行测评,同时给出集成Alluxio组件后的性能评估,得出以下结论:
√ Alluxio 可减少任务运行时间(低带宽情况下甚至可以减少一个数量级)和 CPU时间;这表明 Alluxio 一定程度上可以节省带宽并减轻服务器运算压力。
√ Alluxio 可更好地兼容众多底层存储系统,这表明在不损失性能的前提下,选择价格更为低廉的对象存储系统(如Alibaba OSS, Amazon S3)。
简而言之,集成数据驱动软件 Alluxio 既能提升性能,又能降低运营成本。
实验设计
本实验采用 TPC-DS 生成的 1GB 数据集,选择19条SQL作为该实验工作负载。[1]

我们将原始数据存到底层存储系统中,使用Hive管理原始数据和元数据,将Presto作为计算应用,形成 Presto → Hive → (Alluxio →) HDFS/OSS/S3 的连接模式,并进行Presto直接读UFS和Presto通过Alluxio缓存读UFS两种对比测试。我们采用挂钟时间(WallTime,执行查询花费的总时间)和CPU时间(ProcessCpuTime,处理查询所花费的总CPU时间)两组测量指标进行对比测试。
实验结果与意义
实验结果分析
通过TPC-DS测试的对比后,可得出以下几点结论:
(1)Alluxio 可减少挂钟时间,在低带宽下尤为明显。
√ 图1-1是在AWS上,使用HDFS作为存储系统,统计挂钟时间均值(AWS实例带宽最高可达10G/s,性能小幅度提升):

√ 图1-2是在阿里云上,使用HDFS作为存储系统,统计挂钟时间均值(选择阿里云按量付费最高带宽200M/s):

√ 图1-3是在阿里云上,使用HDFS作为存储系统,统计挂钟时间均值(低带宽模式,带宽15M/s),可以看到性能提升一个数量级。

(2)Alluxio 可节省带宽。由图1-2和图1-3可知,若想在无Alluxio的情况下达到有Alluxio的效果,需要设法进一步提升公网带宽。
(3)Alluxio 一定程度上可减轻服务器运算压力,CPU时间较短。
图2-1是在阿里云上使用HDFS作为存储系统,统计CPU时间。

图2-2是在AWS上使用S3作为存储系统,统计CPU时间。

(4)Alluxio 为计算框架和存储系统的数据访问搭建桥梁,大大降低运行环境配置难度。目前 Presto 对 S3 兼容性较好,但对 OSS 和 COS 兼容性较差,目前尚无Presto直接访问OSS数据的方案。但用Alluxio则无需考虑计算框架和底层存储系统的兼容性问题,因为Presto对Alluxio、Alluxio对OSS兼容性很好,配置环境很容易。
(5)由于无需考虑计算框架与底层存储系统兼容性,则可使用价格更为低廉的对象存储系统,其带宽成本与维护成本均比 Hadoop 低。并且由图3-1和图3-2得知Alluxio缓存读情况下性能差别并不明显,但对象存储系统价格更为低廉,因此对象存储可作为存储系统更好的选择。
图3-1为使用AWS服务器,分别对 HDFS 和 S3 进行测试,统计挂钟时间。

图3-2为使用阿里云服务器,分别对 HDFS 和 OSS 进行测试,统计挂钟时间。

对象存储与HDFS存储成本对比
由于云服务产品种类繁杂、使用相同产品不同的应用场景下开销差异较大。以本实验为例,云服务主要开销由存储、数据传输和云服务器三个部分构成,故我们仅对本实验使用云服务产品及其他常用云服务产品进行上述指标的定量分析(忽略诸如数据请求、对象清单等极低成本服务的指标),扩展服务及其详细价格详情请参考云服务产品价格页面。
亚马逊云
亚马逊服务器使用 S3 和 HDFS 作为存储系统时(HDFS 使用 EBS 存储,因此以美国东部俄亥俄2023年1月6日 S3 Standard 和 EBS 为例),价格对比如下(数据来源:Amazon S3 价格、Amazon EC2 实例价格、Amazon EBS 定价 ):
(1)存储

本实验采用S3 Standard 、通用型SSD (gp2) 和一张普通快照,S3 每 GB 存储价格仅为 gp2 的 1/7~1/6。即使数据量增大,使得运行环境占用存储忽略不计,在不考虑快照的情况下,S3 Standard 数据存储价格仅为 gp2 的1/4~1/3。
(2)数据传输

AWS两者公网流出流量价格一致,公网流入流量均免费。
(3)服务器成本

服务器成本请参考 Amazon EC2 实例价格,S3 并无此项成本,而 EC2 成本很高,以本实验存储系统用到的实例为例(美国东部俄亥俄2023年1月6日 r5a.large 价格)。
阿里云
以2023年1月12日华北1(青岛)区域的 OSS 标准型存储和块存储 (EBS) 为例(数据来源:对象存储OSS 定价详情、块存储定价详情)。
(1)存储

本实验采用 OSS 标准存储(本地冗余)、ESSD 云盘 PL0 和一个普通快照,可见在 Alluxio 缓存读性能相近情况下,OSS 每 GB 存储价格仅为 EBS 的 1/6~1/5。
(2)数据传输

本实验采用按量付费带宽。可见 OSS 带宽成本比 HDFS 带宽成本要低一些。倘若OSS开启CDN加速,理论上可进一步提升带宽速度并降低带宽成本。
(3)服务器成本

服务器成本请参考 云服务器 ECS,OSS 并无此项成本,而 ECS 成本很高,以本实验存储系统用到的实例为例(华北1青岛2023年1月12日 ecs.r6.large 价格)。
总结
综合亚马逊云、阿里云的存储、数据传输和服务器成本,使用对象存储系统的开销要比HDFS低很多,而使用 Alluxio 可十分方便地接入各种存储系统,这无疑意味着可大大降低企业运营成本。

想要了解更多关于Alluxio的干货文章、热门活动、专家分享,可点击进入【Alluxio智库】:

参考
^我们选择和《SQL-on-Hadoop: Full Circle Back to Shared-Nothing Database Architectures》(Proceedings of the VLDB Endowment, Vol. 7, No. 12)相同的20条SQL作为该实验工作负载。Q59 由于过于复杂,运行时间过长,内存消耗过大,测试难度较大,故该实验仅对其他19个SQL进行测试。
相关文章:
如何借力Alluxio推动大数据产品性能提升与成本优化?
内容简介 随着数字化不断发展,各行各业数据呈现海量增长的趋势。存算分离将存储系统和计算框架拆分为独立的模块,Alluxio作为如今主流云数据编排软件之一,为计算型应用(如 Apache Spark、Presto)和存储系统࿰…...
linux shell脚本被包含是什么意思?.命令和source命令(在脚本中运行脚本,脚本中调用脚本)(脚本包含,父子脚本)
在 shell 编程中,当一个 shell 脚本被另一个 shell 脚本包含,即用 . 或 source 命令包含,则被包含的脚本在当前 shell 进程内执行,并且可以访问当前 shell 进程的环境变量和函数。 此时,$0 代表的是主脚本的名称&#…...
MySQL进阶篇之锁(lock)
05、锁 5.1、概述 1、介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据…...
TMDSEVM6657LS评估板恢复出厂默认状态
TMDSEVM6657LS评估板恢复出厂默认状态 前言 TMDSEVM6657LS评估板特别适用于DSP开发的初学者,但有时候拿到手的开发板几经流转,被别人修改过,也可能自己烧录过程出错,导致开发板的状态未知等原因,需要恢复到出厂默认状…...
聊一聊,我对DDD的关键理解
作者:闵大为 阿里业务平台解决方案团队 当我们在学习DDD的过程中,感觉学而不得的时候,可能会问:我们还要学么?这的确引人深思。本文基于工作经验,尝试谈谈对DDD的一些理解。 一、序 《阿甘正传》中…...
算法笔记(一)—— 认识复杂度和简单排序算法
时间复杂度是在一个算法流程中,常数操作的数量级指标。(最差情况下的算法表现) 比较两个算法的优劣,在足够的空间下,看时间复杂度指标,若相同,需要在大数据运行下来判断两个算法的“常数项指标…...
MQ消息中间件常见题及解决办法
目录儿常见MQRocketMQ2、RocketMQ测试可用MQ常见问题1、幂等性问题2、如何保证消息不丢失3、消息积压问题4、事务消息设计分析常见MQ RocketMQ RocketMQ又四部分组成 NameServer 同步Broker服务信息,给消费者和生产者提供可用Broker的服务信息。Broker 消息存储业…...
网关服务限流熔断降级分布式事务
目录一、网关服务限流熔断降级二、Seata--分布式事务1、分布式事务基础①事务②本地事物③分布式事务④分布式事务的场景2、分布式事务解决方案①全局事务②最大努力通知③TCC事务3、Seata介绍4、Seata实现分布式事务控制①案例基本代码(异常模拟)②启动…...
JVM——7JVM调优实战及常量池详解
Arthas工具的使用 阿里巴巴开源的java诊断工具 下载插件 上传至linux环境 在linux跑起来的java项目,可以用Arthas进行查看 项目上线前的时候没问题,上线了就出问题 ,用来查看线上代码 jad 项目名 :反编译线上正在运行的代码 用…...
子串分值【第十一届】【省赛】【A组】
问题描述 对于一个字符串 s,我们定义 s 的分值 f(s) 为 s 中恰好出现一次的字符个数。例如 f("aba")1,f("abc")3, f("aaa")0。 现在给定一个字符串 s[0..n−1](长度为 n),请你计算对于…...
SpringCloud 中 Config、Bus、Stream、Sleuth
文章目录🚏 第十三章 分布式配置中心🚬 一、Config 概述🚬 二、Config 快速入门🚭 config-server:🛹 1、使用gitee创建远程仓库,上传配置文件🛹 2、导入 config-server 依赖…...
Quantum 构建工具使用新的 TTP 投递 Agent Tesla
Zscaler 的研究人员发现暗网上正在出售名为 Quantum Builder 的构建工具,该工具可以投递 .NET 远控木马 Agent Tesla。与过去的攻击行动相比,本次攻击转向使用 LNK 文件。 Quantum Builder 能够创建恶意文件,如 LNK、HTA 与 PowerShell&…...
浏览器中的 JavaScript 执行机制
思维导图 本文为反复学习极客时间-《浏览器的工作原理与实践》-浏览器中的 JavaScript 执行机制章节中的一些思考与记录。 一些重要概念 变量提升 所谓的变量提升,是指在 JavaScript 代码执行过程中,JavaScript 引擎把变量的声明部分和函数的声明部分…...
kafka集群搭建及问题
一、zookeeper集群搭建 1、创建文件夹 cd /home mkdir zookeeper 2、下载 cd zookeeper wget https://downloads.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz 解压到当前文件夹 tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz 文件夹重命…...
不要忽视web渗透测试在项目中起到的重要性
在当前数字化环境中,IT的一个里程碑式增长便是公司组织和企业数字化。为了扩大市场范围和方便业务,许多组织都在转向互联网。这导致了一股新的商业浪潮,它创造了网络空间中的商业环境。通过这种方式,公司和客户的官方或机密文件都…...
Early Stopping中基于测试集(而非验证集)上的表现选取模型的讨论
论文中一般都是用在验证集上效果最好的模型去预测测试集,多次预测的结果取平均计算准确率或者mAP值,而不是单纯的取一次验证集最好的结果作为论文的结果。如果你在写论文的过程中,把测试集当做验证集去验证的话,这其实是作假的&am…...
appium ios真机自动化环境搭建运行(送源码)
appium ios真机自动化环境搭建&运行(送源码) 目录:导读 (1)安装JDK,并配置环境变量,方法如下: (2)安装Xcode、Xcode commandline tools和iOS模拟器 &…...
米尔基于ARM嵌入式核心板的电池管理系统(BMS)
BMS全称是Battery Management System,电池管理系统。它是配合监控储能电池状态的设备,主要就是为了智能化管理及维护各个电池单元,防止电池出现过充电和过放电,延长电池的使用寿命,监控电池的状态。 图片摘自网络 电池…...
Java后端项目IDEA配置代码规范检查,使用checkStyle实现
最近的Java后端项目想实现代码的规范检查,调研了一圈,终于找到了简单的方式实现:以下是常见的几种方案: 1、在客户端做 git hook,主要是用 pre-commit 这个钩子。前端项目中常见的 husky 就是基于此实现的。但缺点也很…...
Nginx_4
Nginx负载均衡 负载均衡概述 早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也跟着越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
