在腾讯云 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 ...
随机推荐
- [namespace hdk] Balanced_tree 整合
代码 #include<bits/stdc++.h> using namespace std; namespace hdk{ namespace balanced_tree{ const ...
- 【赵渝强老师】MySQL的闪回
MySQL DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚.传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog来恢复数据.此法费时费力,甚至 ...
- .Net 依赖注入深入探索,做一个DI拓展,实现一个简易灵活的 自动依赖注入框架
一.依赖注入相关知识 1.1.依赖注入的原理和优点 依赖注入(DI),是IOC控制反转思想 的实现.由一个DI容器,去统一管理所有的服务生命周期,服务的创建.销毁.获取,都是由DI容器去处理的. 依赖 ...
- Linux内核中cpu_capacity是什么?
cpu_capacity 在Linux内核中,cpu_capacity 是用于表示每个CPU的处理能力的一个参数,通常用于调度器的负载均衡.它表明不同的CPU核心在计算资源分配中的相对性能,尤其在异构 ...
- UEFI原理与编程(一)
第一章 UEFI概述(Unified Extensible Firmware Interface 统一的可扩展固件接口) 常见缩写及描述: 缩略词 全名 描述 UEFI Unified Extensi ...
- Camera 冷启动阶段分解
目录 一.Camx trace 调试开关设置 1.设置 camxoverridesettings trace开关 2. 重启后设置开启camx trace 开关 二.Camera 冷启动阶段分解分析 ...
- meltdown 安全漏洞原理是怎么样的?
Meltdown是2018年初公开的一种严重的计算机安全漏洞,影响了多种处理器,包括英特尔.ARM和某些AMD处理器.其原理基于利用现代CPU的"推测执行"(speculative ...
- 数据库周刊33丨腾讯Tbase新版本发布;“2020数据技术嘉年华”有奖话题遴选;阿里云技术面试题;APEX 实现数据库自动巡检;MYSQL OCP题库……
摘要:墨天轮数据库周刊第33期发布啦,每周1次推送本周数据库相关热门资讯.精选文章.干货文档. 热门资讯 1.中国移动国产OLTP数据库中标公告:南大金仓阿里,万里开源中兴 分获大单[摘要]近日,中国 ...
- 云原生周刊:Kubernetes v1.30 一瞥 | 2024.3.25
开源项目推荐 Retina Retina 是一个与云无关的开源 Kubernetes 网络可观测平台,它提供了一个用于监控应用程序运行状况.网络运行状况和安全性的集中中心.它为集群网络管理员.集群安全 ...
- 云原生周刊:GitOps 的 4 条核心原则
日前在温哥华举行的 cdCON + GitOpsCon 上,分享内容以 GitOps 原则为特色: GitOps 是声明式的: GitOps 应用程序是版本化的和不可变的: 自动拉取 GitOps 应 ...