- 数据湖加速器(Data Lake Accelerator Goose FileSystem,GooseFS),是由腾讯云推出的高可靠、高可用、弹性的数据湖加速服务。依靠对象存储(Cloud Object Storage,COS)作为数据湖存储底座的成本优势,为数据湖生态中的计算应用提供统一的数据湖入口,加速海量数据分析、机器学习、人工智能等业务访问存储的性能;采用了分布式集群架构,具备弹性、高可靠、高可用等特性,为上层计算应用提供统一的命名空间和访问协议,方便用户在不同的存储系统管理和流转数据。
GooseFS 旨在提供一站式的缓存解决方案,在利用数据本地性和高速缓存,统一存储访问语义等方面具有天然的优势;GooseFS 在腾讯云数据湖生态中扮演着“上承计算,下启存储”的核心角色,如下图所示。
GooseFS 提供了以下功能:
- 缓存加速和数据本地化(Locality):GooseFS 可以与计算节点混合部署提高数据本地性,利用高速缓存功能解决存储性能问题,提高写入 COS 的带宽。
- 融合存储语义:GooseFS 提供 UFS(Unified FileSystem)的语义,可以支持 COS、Hadoop、S3、K8S CSI、 FUSE 等多个存储语义,使用于多种生态和应用场景。
- 统一的腾讯云相关生态服务:包括日志、鉴权、监控,实现了与 COS 操作统一。
- 提供 Namespace 管理能力,针对不同业务、不同的Under File System,提供不同的读写缓存策略以及生命周期(TTL)管理。
- 感知 Table 元数据功能:对于大数据场景下数据 Table,提供 GooseFS Catalog 用于感知元数据 Table ,提供 Table 级别的 Cache 预热。
GooseFS 在数据湖场景中具有如下几点明显的优势:
数据 I/O 性能
GooseFS 部署提供近计算端的分布式共享缓存,上层计算应用可以透明地、高效地从远端存储将需要频繁访问的热数据缓存到近计算端,加速数据 I/O 性能。GooseFS 提供了元数据缓存功能,可以加速大数据场景下查询文件数据以及列出文件列表等元数据操作的性能。配合大数据存储桶使用,还可进一步加速重命名文件的操作性能。此外,业务可以按需选择 MEM、SSD、NVME 以及 HDD 盘等不同的存储介质,平衡业务成本和数据访问性能。
存储一体化
GooseFS 提供了统一的命名空间,不仅支持了对象存储 COS 存储语义,也支持 HDFS、K8S CSI 以及 FUSE 等语义,为上层业务提供了一体化的融合存储方案,简化业务侧运维配置。存储一体化能够打通不同数据底座的壁垒,方便上层应用管理和流转数据,提升数据利用的效率。
生态亲和性
GooseFS 全兼容腾讯云大数据平台框架,也支持客户侧自定义的本地部署,具备优秀的生态亲和性。业务侧不仅可以在腾讯云弹性 MapReduce 产品中使用 GooseFS 加速大数据业务,也可以便捷地将 GooseFS 本地化部署在公有云 CVM 或者自建 IDC 内。此外,GooseFS 支持透明加速能力,对于已经使用腾讯云 COSN 和 CHDFS 的用户,只需做简单的配置修改,即可实现不修改任何业务代码和访问路径的前提下,自动使用GooseFS 加速 COSN 和 CHDFS 的业务访问。
本部分主要提供 GooseFS 快速部署、调试的相关指引,提供在本地机器上部署 GooseFS,并将对象存储(Cloud Object Storage,COS)作为远端存储的步骤指引,具体步骤如下:
前提条件
在使用 GooseFS 之前,您还需要准备以下工作:
下载并配置 GooseFS
1.新建本地目录并进入该目录下(您也可以按需选择其他目录),从官方仓库下载 GooseFS 安装包到本地。安装包 Github 地址:goosefs-1.4.2-bin.tar.gz。
2.执行如下命令,对安装包进行解压,解压后进入安装包目录下。
解压后,得到 goosefs-1.4.2,即 GooseFS 的主目录。下文将以 ${GOOSEFS_HOME} 代指该目录的绝对路径。
3.在 ${GOOSEFS_HOME}/conf 的目录下,创建 conf/goosefs-site.properties 的配置文件。GooseFS 提供 AI 和大数据两个场景的配置模板,可以使用任意上述内置模板,然后进入编辑模式修改配置:
(1)使用 AI 场景模板
(2)使用大数据场景模板。
4.在配置文件 conf/goosefs-site.properties 中,调整如下配置项:
注意:
配置 goosefs.worker.tieredstore.level0.dirs.path 该路径参数前,需要先新建这一路径。
启用 GooseFS
1.启用 GooseFS 前,需要进入到 GooseFS 目录下执行启动指令:
执行该指令后,可以看到如下页面:
该命令执行完毕后,可以访问 http://localhost:9201 和 http://localhost:9204,分别查看 Master 和 Worker 的运行状态。
使用 GooseFS 挂载 COS(COSN) 或腾讯云 HDFS(CHDFS)
如果 GooseFS 需要挂载 COS(COSN)或腾讯云 HDFS(CHDFS)到 GooseFS 的根路径上,则需要先在 conf/core-site.xml 配置中指定 COSN 或 CHDFS 的必需配置项,其中包括但不限于:fs.cosn.impl 、 fs.AbstractFileSystem.cosn.impl 以及 fs.cosn.userinfo.secretId 和 fs.cosn.userinfo.secretKey 等,如下所示:
下面将介绍一下如何通过创建 Namespace 来挂载 COS 或 CHDFS 的方法和步骤。
1.创建一个命名空间 namespace 并挂载 COS:
注意:
创建挂载 COSN 的 namespace 时,必须使用 –-secret 参数指定访问密钥,并且使用 --attribute 指定 Hadoop-COS(COSN)所有必选参数,具体的必选参数可参考 Hadoop 工具。
创建 Namespace 时,如果没有指定读写策略(rPolicy/wPolicy),默认会使用配置文件中指定的 read/write type,或使用默认值(CACHE/CACHE_THROUGH)。
同理,也可以创建一个命名空间 namespace 用于挂载腾讯云 HDFS:
2.创建成功后,可以通过 ls 命令列出集群中创建的所有 namespace:
3.执行如下命令,指定 namespace 的详细信息。
1.GooseFS 支持将 Hive Table 中的数据预热到 GooseFS 中,在预热之前需要先将相关的 DB 关联到 GooseFS 上,相关命令如下:
注意:命令中的 thrift 需要填写实际的 Hive metastore 的地址。
2.添加完 DB 后,可以通过 ls 命令查看当前关联的 DB 和 Table 的信息:
3.通过 load 命令预热 Table 中的数据:
预热 Table 中的数据是一个异步任务,因此会返回一个任务 ID。可以通过 goosefs job stat <Job Id> 命令查看预热作业的执行进度。当状态为 “COMPLETED” 后,则整个预热过程完成。
1.GooseFS 支持绝大部分文件系统操作命令,可以通过以下命令来查询当前支持的命令列表:
2.可以通过 ls 命令列出 GooseFS 中的文件,以下示例展示如何列出根目录下的所有文件:
3.可以通过 copyFromLocal 命令将数据从本地拷贝到 GooseFS 中:
4.可以通过 cat 命令查看文件内容:
5.GooseFS 默认使用本地磁盘作为底层文件系统,默认文件系统路径为 ./underFSStorage,可以通过 persist 命令将文件持久化存储到本地文件系统中:
1.检查文件存储状态,确认文件是否已被缓存。文件状态 PERSISTED 代表文件已在内存中,文件状态 NOT_PERSISTED 则代表文件不在内存中:
2.统计文件中有多少单词 “tencent”,并计算操作耗时:
3.将该数据缓存到内存中可以有效提升查询速度,详细示例如下:
可见,系统处理延迟从1.181s减少到了0.243s,得到了10倍的提升。
通过如下命令可以关闭 GooseFS:
创建 CHDFS 及挂载点后,可以通过挂载点挂载 CHDFS,本部分详细介绍如何挂载 CHDFS。
前提条件
- 确保挂载的机器或者容器内安装了 Java 1.8。
- 确保挂载的机器或者容器其 VPC,与挂载点指定 VPC 相同。
- 确保挂载的机器或者容器其 VPC IP,与挂载点指定权限组中有一条权限规则授权地址匹配。
操作步骤
- 下载 CHDFS-Hadoop JAR 包。
- 将 JAR 包放置对应的目录下,对于 EMR 集群,可同步到所有节点的 /usr/local/service/hadoop/share/hadoop/common/lib/目录下。
- 编辑 core-site.xml 文件,新增以下基本配置:
4.将 core-site.xml 同步到所有 hadoop 节点上。
5.使用 hadoop fs 命令行工具,运行 hadoop fs -ls ofs://{mountpoint}/将本次任务的默认输入输出 FS 改为 CHDFS。
数据加速器 GooseFS 提供了多种部署方式,支持 自建部署,在 TKE 上部署 以及在 EMR 上部署 等。在大数据场景中,通常使用集群模式部署,并且采用高可用架构以满足业务连续性的要求,本文重点介绍基于 Zookeeper 和基于 Raft 的高可用部署配置。
高可用架构指多个 Master 节点的主备多活架构。多个 Master 节点中只有一个会作为主(Leader)节点对外提供服务,其他的备(Standby)节点通过同步共享日志(Journal)来保持与主节点相同的文件系统状态。当主节点故障宕机后,会从当前的备节点中自动选择一个接替主节点继续对外提供服务,这样就消除了系统的单点故障,实现了整体高可用架构。目前 GooseFS 支持基于 Raft 日志和 Zookeeper 两种方式来实现主备节点状态的强一致性。
基于 Zookeeper 的高可用架构部署配置
配置 Zookeeper 服务搭建 GooseFS 的高可用架构需要满足如下条件:
- 已建立 Zookeeper 集群。GooseFS Master 使用 Zookeeper 进行 Leader 选取,GooseFS 的客户端和 Worker 节点则通过 Zookeeper 查询主 Master 节点。
- 已准备好高可用强一致的共享存储系统,并且保证所有 GooseFS 的 Master 节点均可以访问到。主 Master 节点会将日志写入到该存储系统上,备(Standby)节点则会不断地从共享存储系统上读取日志,并且重放来保持与主节点的状态一致性。一般情况,该共享存储系统,推荐设置为 HDFS 或 COS。例如,hdfs://10.0.0.1:9000/goosefs/journal 或 cosn://bucket-1250000000/journal。
当您已经完成前置条件后,您可以参考如下推荐配置,并将该配置项复制粘贴到 goosefs-site.properties 文件中,完成您的高可用架构配置:
基于 Raft 的高可用架构部署配置
以上就是本篇文章【认识数据湖加速器(Data Lake Accelerator Goose FileSystem,GooseFS)】的全部内容了,欢迎阅览 ! 文章地址:http://syank.xrbh.cn/news/654.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 迅博思语资讯移动站 http://kaire.xrbh.cn/ , 查看更多