背景介绍

原生对象存储服务的索引是扁平化的组织形式,在传统文件语义下的 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. 阐述final、finally、finalize的区别?

    - final:修饰符(关键字)有三种用法:如果一个类被声明为final,意味着它不能再派生出新的子类,即不能被继承,因此它和abstract是反义词.将变量声明为final,可以保证它们在使用中不被 ...

  2. web自动化测试用例编写的规范

    1.一个脚本是一个完整的场景,从用户登陆操作到用户退出系统关闭浏览器. 2.一个脚本脚本只验证一个功能点,不要试图用户登陆系统后把所有的功能都进行验证再退出系统 3.尽量只做功能中正向逻辑的验证,不要 ...

  3. windows服务器下frp实现内网穿透

    一.操作步骤 1.服务器:首先在服务器上解压到相应目录并配置frps.ini文件如下: 2.服务器:按下windows+R输入cmd进入命令窗口,进入到安装目录下运行frps.exe -c frps. ...

  4. 学习k8s(三)

    一.Kubernetes核心概念 1.Kubernetes介绍 Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展.如果你曾经用过Docker容器技术部署 ...

  5. selenium 模块使用

    selenium 概念:基于浏览器自动化的一个模块,可以模拟浏览器行为 环境的安装:下载selenium模块 selenium和爬虫之间的关联是什么? 便捷的获取页面中动态加载的数据 requests ...

  6. 学习Docker(一)

    一.docker介绍 docker是半虚拟化,比完全虚拟化性能高,可以使用物理机性能100% Docker 镜像(Images): 用于创建 Docker 容器的模板 Docker 容器(Contai ...

  7. python 保存图片被截断

    运行如下代码发现横坐标属性值被截断 plt.savefig('D:\\project\\python\\zhifangtu\\a.png') plt.show() plt.savefig('D:\\p ...

  8. ES6技术之“判空方案”

    一.常用方案 直接判断 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  9. 转Gerber和拼版

    1 Gerber 这个网上有现成的教程:(不要写网上能找到的资料-敏捷开发) AD 导出Gerber :https://jingyan.baidu.com/article/3c48dd3494181c ...

  10. 使用 Vuex + Vue.js 构建单页应用

    鉴于该篇文章阅读量大,回复的同学也挺多的,特地抽空写了一篇 vue2.0 下的 vuex 使用方法,传送门:使用 Vuex + Vue.js 构建单页应用[新篇] ------------------ ...