背景介绍

原生对象存储服务的索引是扁平化的组织形式,在传统文件语义下的 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 —

使用 HDFS 协议访问对象存储服务的更多相关文章

  1. 对象存储服务MinIO安装部署分布式及Spring Boot项目实现文件上传下载

    目录 一.MinIO快速入门 1. MinIO简介 2. CentOS7更换成阿里云镜像 3. 安装 3.1 下载 3.2 运行测试 4. 配置脚本执行文件 4.1 创建配置执行文件 4.2 执行 二 ...

  2. COS对象存储服务的使用

    ---------------------------------------------------------------------------------------------[版权申明:本 ...

  3. 对象存储服务(Object Storage Service,简称 OSS)

    阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务.它具有与平台无关的RESTful API接口,能够提供99.99 ...

  4. 轻量对象存储服务——minio

    minio Minio是一个非常轻量的对象存储服务. Github: minio 它本身不支持文件的版本管理.如果有这个需求,可以用 s3git 搭配使用. Github: s3git 安装 mini ...

  5. swift(Object Storage对象存储服务)(单节点)

    # 在部署对象存储服务(swift)之前,你的环境必须包含身份验证服务(keystone); # keystone需要MySQL数据库,Rabbitmq服务,Memcached服务; # 内存:4G ...

  6. 阿里云对象存储服务,OSS使用经验总结,图片存储,分页查询

    阿里云OSS-使用经验总结,存储,账号-权限,分页,缩略图,账号切换 最近项目中,需要使用云存储,最后选择了阿里云-对象存储服务OSS.总的来说,比较简单,但是仍然遇到了几个问题,需要总结下. 1.O ...

  7. FreeNAS 11.0 正式发布,提供 S3 兼容的对象存储服务

    FreeNAS 11.0 正式版已发布,该版本带来了新的虚拟化和对象存储功能.FreeNAS 11.0 将 bhyve 虚拟机添加到其受欢迎的 SAN / NAS.Jail 和插件中,让用户可以在 F ...

  8. 对象存储服务-Minio

    Mino 目录 Mino 对象存储服务 Minio 参考 Minio 架构 为什么要用 Minio 存储机制 纠删码 MinIO概念 部署 单机部署: Docker 部署Minio 分布式Minio ...

  9. 使用MinIO搭建对象存储服务

    1.MinIO是什么? MinIO 是一款高性能.分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件.即X86等低成本机器也能够很好的运行MinIO. MinIO与传统的存储和其 ...

随机推荐

  1. java-中的代理

    静态代理: 例子: 接口: public interface InterfaceBase { void proxy(); } 接口实现类: public class InterfaceBaseReal ...

  2. 为什么在重写 equals 方法的时候需要重写 hashCode 方法?

    因为有强制的规范指定需要同时重写 hashcode 与 equal 是方法,许多容器类, 如 HashMap.HashSet 都依赖于 hashcode 与 equals 的规定.

  3. 微信小程序加密解密参数

    加密:encodeURIComponent(参数) 解密:decodeURIComponent(参数)

  4. FastAPI(六十八)实战开发《在线课程学习系统》接口开发--用户 个人信息接口开发

    在之前的文章:FastAPI(六十七)实战开发<在线课程学习系统>接口开发--用户登陆接口开发,今天实战:用户 个人信息接口开发. 在开发个人信息接口的时候,我们要注意了,因为我们不一样的 ...

  5. linux(Ubuntu)安装python

    Linux下安装python 提前安装一个依赖环境 (1)ubuntu/Debian: sudo apt-get install -y gcc make cmake build-essential l ...

  6. C++---初识C++

    C和C++的关系 C语言是结构化和模块化的语言, 面向过程. C++是在C语言的基础上, 增加了面向对象的机制, 并对C语言的功能进行了扩充. 变量的定义可以出现在程序中的任何行 提供了标准输入输出流 ...

  7. Linux操作系统与项目部署

    Linux操作系统与项目部署 注意:本版块会涉及到操作系统相关知识. 现在,几乎所有智能设备都有一个自己的操作系统,比如我们的家用个人电脑,基本都是预装Windows操作系统,我们的手机也有Andro ...

  8. k8s pod故障分类与排查

    一.Pod故障状态基本有几种Pod状态 处于PendingPod状态 处于WaitingPod状态 处于ContainerCreatingPod状态 ImagePullBackOffPod状态 Cra ...

  9. kubectl scale sts

    使用scale 不单单是扩容还可以:1.动态扩展服务,增加承载能力2.如果出现pod异常,可以利用这种方式,增加pod,再删除原来的pod 比如:pod所在宿主机网络或者宿主机死掉注: 但是一旦有某个 ...

  10. rpm方式安装mysql

    一.系统标准化采样 1)查看centos系统版本 [root@fp-web-126 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 ...