背景介绍
原生对象存储服务的索引是扁平化的组织形式,在传统文件语义下的 List 和 Rename 操作性能表现上存在短板。腾讯云对象存储服务 COS 通过元数据加速功能,为上层计算业务提供了等效于 HDFS 协议的操作接口和操作性能。
(一)什么是元数据加速器?
元数据加速功能
是由腾讯云对象存储
(Cloud Object Storage,COS)服务提供的高性能文件系统功能。
元数据加速功能底层采用了云 HDFS 卓越的元数据管理功能,支持用户通过文件系统语义访问对象存储服务,系统设计指标可以达到2.4Gb/s带宽、10万级 QPS 以及 ms 级延迟。存储桶在开启元数据加速功能后,可以广泛应用于大数据、高性能计算、机器学习、AI 等场景。有关元数据加速的详细介绍,请参考元数据加速器。
(二)使用 HDFS 协议访问的优势是什么?
以往基于对象存储 COS 的大数据访问主要采用 Hadoop-COS 工具来访问。Hadoop-COS 工具内部将 HCFS 接口适配为对象存储的 Restful 接口,从而对对象存储上的数据进行访问。由于对象存储和文件系统在元数据组织方式上的差异,导致元数据操作性能上存在性能差异,从而影响了大数据分析性能。开启元数据加速器的 Bucket,完全兼容 HDFS 协议,可以采用原生的 HDFS 接口直接访问,除了省去了 HDFS 协议到对象协议的转换开销外,更能提供原生 HDFS 的一些功能,如目录原子高效 Rename,文件 Atime,Mtime 更新,高效目录 DU 统计,Posix ACL 权限支持等等原生特性。
准备工作
1、创建 COS Bucket,并且开启元数据加速能力。如图所示:
当 Bucket 创建好之后,在存储桶页面,可以看到相关配置,并且可以在控制台进行文件上传下载操作,如Bucket: meta-accelarate-1253960454;
2、创建好之后,点击左侧性能配置页面,点击元数据加速按钮,可以看到元数据加速能力已开启。如果是第一次创建元数据加速存储桶,则需要按照提示进行相应的授权操作,点击授权完成后,将自动开启 HDFS 协议,并且看到默认的 Bucket 挂载点信息,如下图所示:
说明:如果提示未找到对应的 HDFS 文件系统,请点击提交工单联系我们获取帮助。
3、开启 HDFS 协议开关后,需要配置 VPC 访问权限。在 HDFS 权限配置标签页,点击新增权限配置按钮,在 VPC 网络名称列选择计算集群所在的 VPC 网络地址,在节点 IP 地址列,填写 VPC 网段下需要放通的 ip地址或者 ip 段。
访问类型可以选择读写或者只读,配置好后点击保存即可,如下图所示:
HDFS 权限配置与原生 COS 权限体系存在差异。当您使用 HDFS 协议访问时,推荐通过配置 HDFS 权限授权指定 VPC 内机器访问 COS 存储桶,以便获取和原生 HDFS 一致的权限体验。
4、HDFS 协议默认采用原生 POSIX ACL 方式进行鉴权,如果需要使用 Ranger 鉴权,可以在 HDFS 鉴权模式下,选择 Ranger 鉴权模式,配置上 Ranger 相应的地址信息即可。如下图所示:
您可以参考文档 HDFSranger 鉴权,配置 Ranger 服务,通过 Ranger 服务以 HDFS 协议访问 COS。
5、创建好环境后,需要在计算集群配置 core-site.xml ,具体参考文档配置 HDFS 协议配置,如果您使用的是腾讯云 EMR,则可以直接使用 EMR 的默认配置,无需额外配置。
注意:
fs.ofs.region
必须配置,该参数用于指定存储桶所在的 COS 地域,如ap-shanghai
。
6、下载 HDFS
协议访问的客户端安装包,请确保安装包的版本在 2.7及其以上。
下载后,讲安装包放置到 Hadoop 集群中每台服务器正确的 classpath
路径下,如 /usr/local/service/hadoop/share/hadoop/common/lib/
(根据实际情况防止,不同组件可能放置的位置也不一样),然后重启Yarn
,Hive
,Presto
,Impala
等一些常驻服务。
7、所有环境配置完成后,可以在客户端使用 Hadoop
命令行来查看是否挂载成功,如下图所示:
您也可以登录 COS控制台,查看存储桶文件列表,明确文件和目录是否一致,例如:
通过 HDFS 协议访问 COS
大数据场景下,您可以参考如下步骤以 HDFS 协议访问开启元数据加速能力的存储桶:
1、在 core-stie.xml 中配置 HDFS 协议相关挂载点信息,如准备工作中所示;
2、Hive,MR,Spark 等组件访问存储桶,参考文章 CDH 访问大数据来进行大数据访问;
3、默认情况下,采用原生 POSIX ACL 方式进行鉴权,如果需要使用 Ranger 鉴权,可以参考 Ranger 相关原理和实践访问,参考文档。
— END —