首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >GooseFS透明加速能力,助力加速 CosN 访问 COS 的性能

GooseFS透明加速能力,助力加速 CosN 访问 COS 的性能

作者头像
云存储
发布于 2021-08-11 11:12:58
发布于 2021-08-11 11:12:58
43100
代码可运行
举报
文章被收录于专栏:腾讯云存储腾讯云存储
运行总次数:0
代码可运行

01 前言

原生的对象存储接口协议并不兼容HDFS文件语义,因此对象存储COS提供了COSN工具这一的标准的 Hadoop 文件系统实现,可以为 Hadoop、Spark 以及 Tez 等大数据计算框架集成 COS 提供支持。

用户可使用实现了 Hadoop 文件系统接口的 CosN 插件,读写存储在 COS 上的数据。但原生的对象存储服务的架构设计原因,在List和Rename性能表现并不理想,因此腾讯云对象存储服务推出了GooseFS这一分布式缓存方案,主要针对包括需要缓存加速的数据湖业务场景,提供基于对象存储COS服务的近计算端数据加速层。

透明加速能力是GooseFS的特色功能,用于加速 CosN 访问 COS 的性能。对于已经使用 CosN 工具访问 COS 的用户,GooseFS 提供了一种客户端路径映射方式,让用户可以在不修改当前 Hive table 定义的前提下,仍然能够使用 CosN scheme 访问 GooseFS,该特性方便用户在不修改已有表定义的前提下,对 GooseFS 的功能和性能进行对比测试。

对于云 HDFS 的用户(CHDFS),也可以通过修改配置,实现使用 OFS 客户端的Scheme 访问 GooseFS 的目的。

CosN Schema 和 GooseFS Schema 的之间的路径是如何进行映射的呢?下面以一个例子进行说明。

假设COS上有一个examplebucket-1250000000,用户将数仓中的数据存储在data/warehouse/的路径下,里边有/folder/test.txt,/folder/test2.txt等文件,那么按照CosN的访问路径格式,对应的路径为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cosn://examplebucket-1250000000/data/warehouse/

则 CosN 到 GooseFS 的路径映射关系如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cosn://examplebucket-1250000000/data/warehouse -> /warehouse/
cosn://examplebucket-1250000000/data/warehouse/folder/test.txt ->/warehouse/folder/test.txt

GooseFS 到 CosN 的路径映射关系如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/warehouse ->cosn://examplebucket-1250000000/data/warehouse/
/warehouse/ -> cosn://examplebucket-1250000000/data/warehouse/
/warehouse/folder/test.txt -> cosn://examplebucket-1250000000/data/warehouse/folder/test.txt

注意:如果访问的 CosN 路径无法转换为 GooseFS 路径,对应的 Hadoop API 调用会抛出异常。

02 操作示例

下边进行透明加速的演示。该示例演示了 Hadoop 命令行以及 Hive 中,如何使用 gfs://、 cosn://、ofs:// 三种 Schema 访问 GooseFS。操作流程如下:

1. 准备数据和计算集群

  • 参考 创建存储桶 文档,创建一个测试用途的存储桶;
  • 参考 创建文件夹 文档,在存储桶根路径下创建一个名为 ml-100k 的文件夹;

从 Grouplens 下载 ml-100k 数据集,并将文件 u.user 上传到 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<存储桶根路径>/ml-100k
  • 参考 EMR 指引文档,购买一个 EMR 集群并配置 HIVE 组件。

2. 环境配置

i. 将 GooseFS 的客户端 jar 包(goosefs-1.0.0-client.jar)放入 share/hadoop/common/lib/ 目录下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp goosefs-1.0.0-client.jar  hadoop/share/hadoop/common/lib/

注意:配置变更和添加 jar 包,需同步到集群上所有节点。

ii. 修改 Hadoop 配置文件 etc/hadoop/core-site.xml,指定 GooseFS 的实现类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
 <name>fs.AbstractFileSystem.gfs.impl</name>
 <value>com.qcloud.cos.goosefs.hadoop.GooseFileSystem</value>
</property>
<property>
 <name>fs.gfs.impl</name>
 <value>com.qcloud.cos.goosefs.hadoop.FileSystem</value>
</property>

iii. 执行如下 Hadoop 命令,检查是否能够通过 gfs:// Scheme 访问 GooseFS,其中 <MASTER_IP> 为 Master 节点的 IP:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hadoop fs -ls gfs://<MASTER_IP>:9200/

iv. 将 GooseFS 的客户端 jar 包放到 Hive 的 auxlib 目录下,使得 Hive 能加载到 GooseFS Client 包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp goosefs-1.0.0-client.jar  hive/auxlib/

v. 执行如下命令,创建 UFS Scheme 为 CosN 的Namespace,并列出 Namespace。您可将该命令中的 examplebucket-1250000000 替换为你的 COS 存储桶,SecretId 和 SecretKey 替换为您的密钥信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
goosefs ns create ml-100k cosn://examplebucket-1250000000/ml-100k  --secret fs.cosn.userinfo.secretId=SecretId --secret fs.cosn.userinfo.secretKey=SecretKey--attribute fs.cosn.bucket.region=ap-guangzhou --attribute fs.cosn.credentials.provider=org.apache.hadoop.fs.auth.SimpleCredentialProvider
goosefs ns ls

vi. 执行命令,创建 UFS Scheme 为 OFS 的 Namespace,并列出 Namespace。您可将该命令中的 instance-id 替换为您的 CHDFS 实例,1250000000 替换为您的 APPID:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
goosefs ns create ofs-test  ofs://instance-id.chdfs.ap-guangzhou.myqcloud.com/ofs-test --attribute fs.ofs.userinfo.appid=1250000000
goosefs ns ls

3. 创建 GooseFS Schema 表和查询数据

通过如下指令执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database goosefs_test;
use goosefs_test;
CREATE TABLE u_user_gfs (
userid INT,
age INT,
gender CHAR(1),
occupation STRING,
zipcode STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
LOCATION 'gfs://<MASTER_IP>:<MASTER_PORT>/ml-100k';
select sum(age) from u_user_gfs;

4. 创建 CosN Schema 表和查询数据

通过如下指令执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE TABLE u_user_cosn (
userid INT,
age INT,
gender CHAR(1),
occupation STRING,
zipcode STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
LOCATION 'cosn://examplebucket-1250000000/ml-100k';
select sum(age) from u_user_cosn;

5. 修改 CosN 的实现为 GooseFS 的兼容实现

修改 hadoop/etc/hadoop/core-site.xml:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
   <name>fs.AbstractFileSystem.cosn.impl</name>
   <value>com.qcloud.cos.goosefs.hadoop.CosN</value>
</property>
<property>
   <name>fs.cosn.impl</name>
   <value>com.qcloud.cos.goosefs.hadoop.CosNFileSystem</value>
</property>

执行 Hadoop 命令,如果路径无法转换为 GooseFS 中的路径,命令的输出中会包含报错信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hadoop fs -ls  cosn://examplebucket-1250000000/ml-100k/
Found 1 items
-rw-rw-rw-   0 hadoop hadoop      22628 2021-07-02 15:27 cosn://examplebucket-1250000000/ml-100k/u.user
hadoop fs -ls cosn://examplebucket-1250000000/unknow-path
ls: Failed to convert ufs path cosn://examplebucket-1250000000/unknow-path to GooseFs path, check if namespace mounted 

重新执行 Hive 查询语句:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select sum(age) from u_user_cosn;

6. 创建 OFS Schema 表和查询数据

通过如下命令执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE TABLE u_user_ofs (
userid INT,
age INT,
gender CHAR(1),
occupation STRING,
zipcode STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
LOCATION 'ofs://instance-id.chdfs.ap-guangzhou.myqcloud.com/ofs-test/';
select sum(age) from u_user_ofs;

7. 修改 OFS 的实现为 GooseFS 的兼容实现

修改 hadoop/etc/hadoop/core-site.xml:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
   <name>fs.AbstractFileSystem.ofs.impl</name>
   <value>com.qcloud.cos.goosefs.hadoop.CHDFSDelegateFS</value>
</property>
<property>
   <name>fs.ofs.impl</name>
   <value>com.qcloud.cos.goosefs.hadoop.CHDFSHadoopFileSystem</value>
</property>

执行 Hadoop 命令,如果路径无法转换为 GooseFS 中的路径,则输出结果中会包含报错信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hadoop fs -ls  ofs://instance-id.chdfs.ap-guangzhou.myqcloud.com/ofs-test/
Found 1 items
-rw-r--r--   0 hadoop hadoop      22628 2021-07-15 15:56 ofs://instance-id.chdfs.ap-guangzhou.myqcloud.com/ofs-test/u.user
hadoop fs -ls  ofs://instance-id.chdfs.ap-guangzhou.myqcloud.com/unknown-path
ls: Failed to convert ufs path ofs://instance-id.chdfs.ap-guangzhou.myqcloud.com/unknown-path to GooseFs path, check if namespace mounted

重新执行 Hive 查询语句:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select sum(age) from u_user_ofs;

03 结语

GooseFS 旨在提供一站式的数据湖缓存加速及分布式缓存解决方案,解决需要缓存加速的数据业务场景,提供基于对象存储COS服务的近计算端数据加速层,助力加速CosN访问COS的性能。关于更多GooseFS请前往:https://cloud.tencent.com/document/product/436/56412

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
GooseFS 统一命名空间 | 加速存储业务访问
GooseFS是 腾讯云存储团队推出的分布式缓存方案,主要针对需要缓存加速的数据湖业务场景,提供基于对象存储COS服务的近计算端数据加速层。
云存储
2021/08/17
4690
数据加速器 GooseFS 1.3.0 版本正式发布
为了满足云上数据湖存储对安全、高性能的要求,腾讯云存储团队正式发布数据加速器 GooseFS 1.3.0 版本。该版本总结并收敛了 GooseFS 在过往大规模生产环境实践中遇到的性能、稳定性和安全问题,全面提升产品稳定性。 更新点一:支持Kerberos 认证 Kerberos 用来在非安全网络中,对个人通信以安全的手段进行身份认证。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制
云存储
2022/08/26
4010
数据加速器 GooseFS 1.3.0 版本正式发布
Seafile Server 对接 COS 对象存储服务
Seafile 是一套强大优秀的云盘/云同步软件和解决方案,有免费开源版和收费企业版。
Jinqn
2020/04/30
3.7K2
Seafile Server 对接 COS 对象存储服务
GooseFS 在云端数据湖存储上的降本增效实践
GooseFS 是腾讯云对象存储团队面向下一代云原生数据湖场景推出的存储加速利器,提供与 HDFS 对标的 Hadoop Compatible FileSystem 接口实现,旨在解决存算分离架构下的云端大数据/数据湖平台所面临的查询性能瓶颈和网络读写带宽成本等问题。使得基于腾讯云 COS/CHDFS 的大数据/数据湖平台在现有生产集群上获得等同甚至超越本地 HDFS 性能的计算体验。其设计应用场景如下:
云存储
2022/06/14
3.6K5
GooseFS 在云端数据湖存储上的降本增效实践
腾讯云发布新品数据编排平台(dop)-与大数据生态紧密结合,提供通用数据编排服务
作者介绍 毛宝龙 腾讯高级工程师,Alluxio PMC & Maintainer,Apache Ozone committer,腾讯 Alluxio OTeam 开源协同团队负责人。主要负责腾讯 Alluxio 的研发和落地工作和 Apache Ozone 的文件系统方向的研发工作。 DOP(Data Orchestration Platform) 是腾讯推出的数据编排平台服务。定位通用数据编排。无论是大数据和AI,无论公有云、私有云和腾讯内网都在使用统一的数据编排平台 DOP,如腾讯云DLC、EMR等产
腾讯云大数据
2022/09/27
1.8K0
腾讯云发布新品数据编排平台(dop)-与大数据生态紧密结合,提供通用数据编排服务
数据加速器 GooseFS 1.2.0 版本正式发布
新春已来临,腾讯云存储团队正式在官方网站上架数据加速器 GooseFS 产品,同时数据加速器 GooseFS 1.2.0 版本正式发布。该版本总结并收敛了 GooseFS 在过往大规模生产环境实践中遇到的性能、稳定性和安全问题,全面提升产品稳定性。   重要更新点 1、透明加速热开关 透明加速热开关可以让大数据用户能够使用 CosN scheme 访问 GooseFS,该特性方便用户在不修改已有表定义的前提下,使用 GooseFS 的功能,提升业务访问性能。 透明加速热开关主要用于提升系统的可运维性。在生
云存储
2022/02/17
5360
Liunx 系统如何挂载COSFS
安装 nginx 服务器工具 —— 挂载 COSFS —— 修改网站路径 —— 完成 Wordpress 扩充
用户1685462
2021/07/17
1.2K0
使用腾讯云CVM挂载COS作为Emby媒体服务器
多款腾讯云产品免费体验:https://cloud.tencent.com/act/free?from=20863 最近收集了一些4k杜比视界的资源,于是想搭建自己的媒体服务器,考虑到NAS维护麻烦、
4O4
2023/07/05
1.5K0
使用腾讯云CVM挂载COS作为Emby媒体服务器
在腾讯云 EMR 上使用 GooseFS 加速大数据计算服务
GooseFS 是腾讯云对象存储团队近期面向下一代云原生数据湖场景推出的存储加速利器,提供与 HDFS 对标的 Hadoop Compatible FileSystem 接口实现,可为云上的大数据计算任务提供:
云存储
2021/08/25
1.3K0
COS助力HADOOP轻松实现数据存储
1.2 如何在hadoop集群上实现简单的数据处理,通过 wordcount 实现测试。
Hunter
2020/03/01
2K0
基于 Flume 和 EMR 构建低成本大数据应用
Flume 是一个分布式的日志收集系统,它可以将应用服务器产生的日志、消息中间件 (比如 kafka) 的消息等其他数 据串联起来发送到指定的存储以供数据分析使用。EMR 是腾讯云提供的托管 Hadoop 服务,相比自建 hadoop 集群 EMR 提供了完善的集群管理、服务监控、安全管理、以及存储分离等特性,区别于自建 EMR 在计算存储分离方便 做了大量优化工作以降低在使用 Hadoop 相关服务时候的成本,本文核心介绍如何使用 Flume、EMR、对象存储
liubang01
2018/08/20
4.6K5
COS 音视频实践|播放多场景下的 COS 视频文件
上回 (COS音视频实践|多种姿势让你的视频“跑”起来)说道,基于您的实际场景,可以选择不同的方式,在 Web 浏览器端播放您的 COS 视频文件。本文将基于腾讯云超级播放器,带您体验播放多场景下的 COS 视频文件。
云存储
2021/12/15
2.6K0
COS 音视频实践|播放多场景下的 COS 视频文件
腾讯云 CHDFS 助力微信秒级异常检测
微信全景监控平台介绍 微信全景监控平台,是微信的多维指标 OLAP 监控以及数据分析平台。支持自定义多维度指标上报,海量数据实时上卷下钻分析,提供了秒级异常检测告警能力。 项目高效支撑了视频号、微信支付、搜一搜等等业务快速迭代,已覆盖微信各产品线,峰值数据达到 30+亿条/min,3万亿+条/天。微信全景监控平台架构如下图所示: 全景监控平台的指标数据使用 Druid 引擎,Druid 引擎通将 CHDFS 作为其 DeepStorage 来进行数据存储和查询。 什么是 Druid Druid 是一个分
云存储
2022/02/15
2.9K0
COS JavaSDK V4升级到V5版本
如果您细心对比过 JSON Java SDK 和 XML Java SDK 的文档,您会发现并不是一个简单的增量更新。XML Java SDK 在架构、可用性和安全性上有了非常大的提升,而且在易用性、健壮性和性能上也做了非常大的改进。如果您想要升级到 XML Java SDK,请参考下面的指引,完成 Java SDK 的升级工作。
卓恒
2020/12/29
1.9K0
数据湖加速器GooseFS,加速湖上数据分析性能
数据湖加速器 GooseFS 是由腾讯云推出的高性能、高可用、弹性的分布式缓存方案。依靠对象存储(Cloud Object Storage,COS)作为数据湖存储底座的成本优势,为数据湖生态中的计算应用提供统一的数据湖入口,加速海量数据分析、机器学习、人工智能等业务访问存储的性能。
云存储
2021/07/16
1.1K0
数据湖加速器GooseFS,加速湖上数据分析性能
如何使用 S3CMD 访问 COS 服务
S3cmd 是免费的命令行工具和客户端,用于在 Amazon S3 和其他兼容 S3 协议的对象存储中上传、下载和管理数据。本文主要介绍如何使用 S3cmd 访问 COS 上的文件。
吴硕卫
2020/04/13
2.7K0
Hadoop 文件系统与 COS 之间的数据迁移
Hadoop Distcp(Distributed copy)主要是用于 Hadoop 文件系统内部或之间进行大规模数据复制的工具,它基于 Map/Reduce 实现文件分发、错误处理以及最终的报告生成。由于利用了 Map/Reduce 的并行处理能力,每个 Map 任务负责完成源路径中部分文件的复制,因此它可以充分利用集群资源来快速完成集群或 Hadoop 文件系统之间的大规模数据迁移。
云存储
2020/10/23
1.3K0
Hadoop 文件系统与 COS 之间的数据迁移
Alluxio集群搭建并整合MapReduce/Hive/Spark
Alluxio是世界上第一个虚拟的分布式存储系统,以内存速度统一了数据访问。它为计算框架和存储系统构建了桥梁,使应用程序能够通过一个公共接口连接到许多存储系统。Alluxio以内存为中心的架构使得数据的访问速度能比现有方案快几个数量级。
岳涛
2021/03/25
1.9K3
Alluxio集群搭建并整合MapReduce/Hive/Spark
拥抱云原生!COS数据湖加速器GooseFS存算分离实践及性能优化
导语 | GooseFS是一个分布式缓存系统。是存算分离架构中的一个重要角色,为上层计算框架和底层存储系统构建了桥梁。本文先对GooseFS的基础概念进行介绍,再对其架构及实践运用场景进行阐述,最后结合实践进行性能优化的呈现。 一、GooseFS简介 GooseFS是一个分布式缓存系统。是存算分离架构中的一个重要角色,为上层计算框架和底层存储系统构建了桥梁。 在腾讯云的大数据生态系统中,GooseFS介于计算框架和云存储(如COS,CHDFS,COSN)之间。GooseFS兼容Hadoop生态及同时支持F
腾讯云开发者
2022/03/03
8780
对象存储COS访问日志场景体验
COS访问日志记录了用户对COS资源的访问信息,包括上传对象(PUT),删除对象(DELETE),访问对象(GET)等。通过分析访问日志,用户可以完成审计回溯,如删除资源记录,同时也可以完成资源热门相关的资源统计等能力。本次我们就介绍下COS访问日志常见玩法。
日志服务CLS小助手
2021/11/29
8960
推荐阅读
相关推荐
GooseFS 统一命名空间 | 加速存储业务访问
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验