如何借力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负载均衡 负载均衡概述 早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也跟着越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
