在腾讯云 EMR 上使用 GooseFS 加速大数据计算服务
GooseFS 是腾讯云对象存储团队最新推出的高性能、高可用以及可弹性伸缩的分布式缓存系统,依靠对象存储(Cloud Object Storage,COS)作为数据湖存储底座的成本优势,为数据湖生态中的计算应用提供统一的数据湖入口,可加速基于腾讯云对象存储的各类海量数据分析以及机器学习等任务。本文将介绍如何在腾讯云 EMR 上使用 GooseFS 加速大数据计算任务。
GooseFS 是腾讯云对象存储团队近期面向下一代云原生数据湖场景推出的存储加速利器,提供与 HDFS 对标的 Hadoop Compatible FileSystem 接口实现,可为云上的大数据计算任务提供:
- 高可靠、可弹性伸缩的分布式读写缓存服务;
- 内存级的数据本地化(Data Locality)访问性能;
- 基于 Namespace 粒度的读写缓存策略以及 Hive Table 级别预热;
- 与 HDFS 一致的 Ranger 鉴权机制;
- 对象存储 AZ 级别的加速访问与高 QPS 的元数据访问能力;以及快速部署和开箱即用等特性。
本文将基于腾讯云 EMR 介绍如何快速部署 GooseFS 用于加速云上大数据分析任务。
1 加速腾讯云 EMR 大数据计算任务
为了在腾讯云 EMR 中使用 GooseFS 加速大数据计算任务,可参考官网文档腾讯云 EMR 环境中部署和配置GooseFS(https://cloud.tencent.com/document/product/436/58513),即可开启 GooseFS 的缓存加速能力。下文将以数据仓库业务以及迭代计算场景展示 GooseFS 的加速访问能力。
2 加速基于Hive、Spark SQL和Presto数据仓库查询业务
很多大数据客户的数据仓库类业务具备明显的冷热周期特征,例如:某大数据客户每天会定时基于数仓生成日报报表,Hive 表的分区是日期维度。
GooseFS 集成了 Hive Table 的元数据管理能力,并且提供了 Hive table & partition 粒度的数据预热特性,用户可以通过配置工作流任务来每天在闲时预热加载 table & partition 以降低峰值查询的带宽消耗,然后在数据访问高峰期提供内存级的缓存加速能力。
在热表或分区变冷以后,使用 Free 命令将其从缓存中释放掉。
| 下面,将会详细地介绍 GooseFS Table 管理能力以及预热方法。
3 GooseFS Table & Partition 管理与预热
GooseFS Table & Partition 管理与预热能力都是通过 GooseFS 的 table 命令行来实现:
$ goosefs table
Usage: goosefs table [generic options]
[attachdb [-o|--option <key=value>] [--db <goosefs db name>] [--ignore-sync-errors] <udb type> <udb connection uri> <udb db name>]
[detachdb <db name>]
[free <dbName> <tableName> [-p|--partition <partitionSpec>]]
[help [<command>]]
[load <dbName> <tableName> [-g|--greedy] [--replication <num>] [-p|--partition <partitionSpec>]]
[ls [<db name> [<table name>]]]
[stat <dbName> <tableName>]
[sync <db name>]
[transform <db name> <table name> [-d <definition>]]
[transformStatus [<job ID>]]
其中,提供 Hive DB 绑定和解绑,预热加载DB下的指定 Table & Partition。
- 在预热 Hive DB 中的指定 Table & Partition 到 GooseFS 之前,需要先将 DB 挂载到 GooseFS 中:
$ goosefs table attachdb --db test_db hive thrift://metastore_host:port goosefs_db_demoresponse of attachdb
- 挂载完后,可使用 GooseFS 的命令行查看 DB 中的 Table 信息:
$ goosefs table ls test_db web_page
OWNER: hadoop
DBNAME.TABLENAME: testdb.web_page (
wp_web_page_sk bigint,
wp_web_page_id string,
wp_rec_start_date string,
wp_rec_end_date string,
wp_creation_date_sk bigint,
wp_access_date_sk bigint,
wp_autogen_flag string,
wp_customer_sk bigint,
wp_url string,
wp_type string,
wp_char_count int,
wp_link_count int,
wp_image_count int,
wp_max_ad_count int,
)
PARTITIONED BY (
)
LOCATION (
gfs://metastore_host:port/myiNamespace/3000/web_page
)
PARTITION LIST (
{
partitionName: web_page
location: gfs://metastore_host:port/myNamespace/3000/web_page
}
)
- 然后,可预热指定 Table 到 GooseFS中,同时还可以查看 Table 预热情况:
$ goosefs table load test_db web_pageAsynchronous job submitted successfully, jobId: 1615966078836
- 预热完成后,就可以正常的执行查询任务,获得 GooseFS 的本地缓存加速性能。
GooseFS 加速性能对比
这里,我们基于标准的 TPCDS benchmark 在腾讯云 EMR 环境中对比测试了本地 HDFS 得到整个测试过程总时延。其中,GooseFS 挂载 COSN 作为其UFS,并且提前预热了测试数据集。
在相同的测试数据集本地化的程度下,GooseFS 读数据访问性能上相对 HDFS 更好。具体分 SQL case 的时延数据可参考附录。
同时,COSN 和 CHDFS 作为腾讯云上两个比较常用的大数据文件系统实现,也可作为 GooseFS 的 Under File System 使用。这里也对比测试这三个文件系统,其中 GooseFS 挂载 COSN 作为其UFS,同样提前预热的测试数据集。
从该项测试结果,也可以看出,GooseFS 在预热数据的条件下,可以显著加速腾讯云上大数据存储系统的访问性能。具体分 SQL case 的时延数据可参考附录。
4 总结
GooseFS 作为腾讯云对象存储新推出的云原生大数据存储加速器,解决了基于 COSN 以及 CHDFS 等云上存储的 Data Locality 的缺陷,提供了本地近内存级的访问性能。
同时,GooseFS 提供了 Hive Table & Partition 级别的预热能力以及缓存策略管理,能够极大地方便用户完成数据预热和访问加速。在未来,GooseFS 会元数据访问性能、本地短路读性能以及智能 Cache 方向上做更深层次的优化开发,旨在进一步加速海量数据湖应用性能。关于了解更多请前往:https://cloud.tencent.com/document/product/436/56412
5 附件
case100_D3_本地SATA_HDFS 和 case100_D3_本地SATA_GOOSEFS 的 TPCDS 测试结果:
SQL case | case100_D3_本地SATA-HDFS | case101_D3_本地SATA-GooseFS |
---|---|---|
29618 | 28230 | |
query1.sql | 150 | 167 |
query2.sql | 1392 | 1213 |
query3.sql | 402 | 329 |
query8.sql | 338 | 255 |
query12.sql | 280 | 252 |
query13.sql | 367 | 293 |
query15.sql | 767 | 706 |
query19.sql | 368 | 297 |
query20.sql | 503 | 441 |
query21.sql | 170 | 182 |
query22.sql | 96 | 94 |
query26.sql | 582 | 583 |
query31.sql | 1211 | 854 |
query32.sql | 929 | 670 |
query33.sql | 673 | 450 |
query34.sql | 345 | 253 |
query36.sql | 444 | 404 |
query37.sql | 473 | 396 |
query38.sql | 811 | 603 |
query39.sql | 498 | 510 |
query40.sql | 953 | 905 |
query43.sql | 328 | 252 |
query45.sql | 453 | 426 |
query46.sql | 361 | 332 |
query48.sql | 431 | 382 |
query52.sql | 345 | 239 |
query53.sql | 806 | 777 |
query55.sql | 341 | 237 |
query56.sql | 675 | 459 |
query57.sql | 2627 | 2559 |
query59.sql | 1711 | 1618 |
query60.sql | 687 | 465 |
query63.sql | 805 | 776 |
query66.sql | 433 | 430 |
query68.sql | 352 | 320 |
query70.sql | 1261 | 3961 |
query71.sql | 677 | 475 |
query73.sql | 339 | 237 |
query76.sql | 662 | 378 |
query82.sql | 758 | 688 |
query83.sql | 309 | 320 |
query86.sql | 186 | 152 |
query87.sql | 792 | 613 |
query89.sql | 809 | 776 |
query97.sql | 880 | 712 |
query98.sql | 838 | 789 |
SSD 云盘环境的 GooseFS、CHDFS 以及 COSN 的对比测试结果:
SQL case | case200_S5_SSD云盘-GooseFS | case201_S5_SSD云盘-CHDFS | case204_S5_SSD云盘-COSN |
---|---|---|---|
30353 | 36820 | 41803 | |
query1.sql | 194 | 212 | 205 |
query2.sql | 1377 | 1558 | 1921 |
query3.sql | 463 | 457 | 570 |
query8.sql | 294 | 394 | 509 |
query12.sql | 287 | 307 | 347 |
query13.sql | 307 | 668 | 814 |
query15.sql | 837 | 867 | 1074 |
query19.sql | 354 | 512 | 586 |
query20.sql | 576 | 554 | 680 |
query21.sql | 213 | 196 | 210 |
query22.sql | 111 | 109 | 107 |
query26.sql | 806 | 882 | 973 |
query31.sql | 972 | 1328 | 1817 |
query32.sql | 778 | 949 | 1453 |
query33.sql | 524 | 779 | 1049 |
query34.sql | 292 | 428 | 526 |
query36.sql | 479 | 545 | 688 |
query37.sql | 449 | 500 | 679 |
query38.sql | 691 | 868 | 1210 |
query39.sql | 695 | 565 | 654 |
query40.sql | 1098 | 1082 | 1251 |
query43.sql | 304 | 378 | 514 |
query45.sql | 506 | 568 | 628 |
query46.sql | 412 | 557 | 610 |
query48.sql | 437 | 697 | 847 |
query52.sql | 242 | 328 | 501 |
query53.sql | 946 | 899 | 1058 |
query55.sql | 244 | 351 | 485 |
query56.sql | 520 | 704 | 925 |
query57.sql | 3223 | 2914 | 3469 |
query59.sql | 1965 | 1930 | 2302 |
query60.sql | 539 | 696 | 905 |
query63.sql | 935 | 934 | 1025 |
query66.sql | 543 | 593 | 584 |
query68.sql | 380 | 570 | 578 |
query70.sql | 1430 | 4173 | 1608 |
query71.sql | 536 | 780 | 951 |
query73.sql | 282 | 384 | 547 |
query76.sql | 368 | 648 | 981 |
query82.sql | 796 | 828 | 972 |
query83.sql | 369 | 353 | 378 |
query86.sql | 163 | 184 | 219 |
query87.sql | 712 | 896 | 1038 |
query89.sql | 951 | 924 | 1050 |
query97.sql | 801 | 871 | 1213 |
query98.sql | 952 | 900 | 1092 |
在腾讯云 EMR 上使用 GooseFS 加速大数据计算服务的更多相关文章
- 腾讯云EMR大数据实时OLAP分析案例解析
OLAP(On-Line Analytical Processing),是数据仓库系统的主要应用形式,帮助分析人员多角度分析数据,挖掘数据价值.本文基于QQ音乐海量大数据实时分析场景,通过QQ音乐与腾 ...
- 怎样将本地web数据库项目部署到腾讯云服务器上?
怎样将本地web数据库项目 部署到腾讯云服务器上? 1.本地计算机的工作: 1.1用eclipse或者myeclipse做好一个web项目,可以只做一个数据库的增删改查,本地部署到Tomcat服务器, ...
- 怎样将本地web项目部署到腾讯云服务器上?
怎样将本地web项目部署到腾讯云服务器上? 1.本地计算机的工作: (1).用eclipse新建一个web项目,然后在webcontent下新建一个index.html,然后在本地部署到Tomcat服 ...
- 在腾讯云服务器上体验Docker
版权声明:本文由姚俊刚原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/85 来源:腾云阁 https://www.qclou ...
- Navicat连接腾讯云服务器上的数据库
下面介绍Navicat连接腾讯云服务器上的数据库的两种方法: 方法一:[不需要修改相关远程客户端连接权限] 点击安装好的桌面navicat图标,进入后如下图: 连接方法:ssh中输入自己服务器的外网i ...
- GooseFS助力大数据业务数倍提升计算能力
前言 GooseFS是由腾讯云推出的一款分布式缓存方案,主要针对包括需要缓存加速的数据湖业务场景,提供基于对象存储COS服务的近计算端数据加速层. GooseFS 基于开源大数据缓存方案 Alluxi ...
- 揭秘阿里云EB级大数据计算引擎MaxCompute
日前,全球权威咨询与服务机构Forrester发布了<The Forrester WaveTM: Cloud Data Warehouse, Q4 2018>报告.这是Forrester ...
- 奇点云数据中台技术汇(一) | DataSimba——企业级一站式大数据智能服务平台
在这个“数据即资产”的时代,大数据技术和体量都有了前所未有的进步,若企业能有效使用数据,让数据赚钱,这必将成为企业数字化转型升级的有力武器. 奇点云自研的一站式大数据智能服务平台——DataSimba ...
- 史上最易懂的大数据 OTO
史上最易懂的大数据 OTO http://network.51cto.com/art/201503/467068.htm 终于有人把O2O.C2C.B2B.B2C的区别讲透了 http://tech. ...
- 将禅道部署到腾讯云linux 上
部署环境 :linux(腾讯云),用到了 xshell FileZilla 使用禅道集成环境lampp直接部署 1.首先下载 lampp j集成环境包.https://sourceforge.ne ...
随机推荐
- dfs 【XR-2】奇迹——洛谷5440
问题描述: 现有一个八位数,从左往右分别代表年月日,例如20240919,代表2024年9月19日,现将该八位数蒙住几位数,问填入数字之后有几种情况是的日为质数,月+日为质数,年+月+日为质数 输入: ...
- [快速阅读八] HDR->LDR:Matlab中tonemapfarbman函数的解析和自我实现。
最近受朋友的委托,想自己实现Matlab里的一个HDR转LDR的函数,函数名是tonemapfarbman,乘着十一假期,稍微浏览下这个函数,并做了一点C++的实现和优化. 为了看到这个函数的效果,需 ...
- 高通dump ftrace & kernelshark使用
简介 高通 ramdump 可以解析出 ftrace,方便用于追踪 快省稳 问题. kernelshark 是一个可以查看 trace event 的图形化工具,方便梳理和观察内核微观行为. trac ...
- Blinn-Phong
为什么出现Blinn-Phong 虽然Phong性能较高,但是在某些镜面反射条件下就会失效.比如下图,我们明显发现了一条明显的亮暗边界线,这在实际场景中是不应该发生的(实际场景中不会出现这种明显的过渡 ...
- PostgreSQL 15新版本特性解读(含直播问答、PPT资料汇总)
2022年6月23日,墨天轮技术社区联合PostgreSQL中文社区共同举办[PostgreSQL 15 新特性解读]直播活动. 小编在这里整理了直播间的代表性问题,请老师为大家解答.并在文末附上视频 ...
- C#查漏补缺----对象内存结构与布局
环境变量 .Net Core 8.0 Windows 11 64位 内存布局 引用类型 在.NET中,数据会按照类型分为不同的对象,对于引用类型的实例,由一个对象标头(Object Header)和方 ...
- C++ 简易消息循环
前言 本文将向大家介绍如何使用 C++ 的标准库实现一个异步和并发编程中都非常重要的编程模式:消息循环(Event Loop).尽管市面上存在不少库也提供了同样的功能,但有时候出于一些原因,我们并不想 ...
- Windows系统密钥(实测可用)
Windows Server 2003 R2 sp2 standard edition 文件名:cn_win_srv_2003_r2_standard_with_sp2_cd1_X13-13927.i ...
- C++学习——类当中static关键字的作用
一.类和对象 我们知道类是"行为"和"属性"的集合,我们可以通过类来实例化对象,从而定义对象的"行为"和"属性".比如: ...
- Mysql数据类型面试题15连问
整数类型的 UNSIGNED 属性有什么用? MySQL 中的整数类型可以使用可选的 UNSIGNED 属性来表示不允许负值的无符号整数.使用 UNSIGNED 属性可以将正整数的上限提高一倍,因为它 ...