背景介绍

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

    Java BlockingQueue是一个并发集合util包的一部分.BlockingQueue队列是一种支持操作,它等待元素变得可用时来检索,同样等待空间可用时来存储元素.

  2. Java中的引用类型

    强引用(Strong) 就是我们平时使用的方式 A a = new A();强引用的对象是不会被回收的 软引用(Soft) 在jvm要内存溢出(OOM)时,会回收软引用的对象,释放更多内存 弱引用(W ...

  3. 面试问题之C++语言:C与C++的区别

    C是C++的基础,C++语言和C语言在很多方面是兼容的. C是结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出或实现过程(事务 ...

  4. Linux的权限总结

    一般权限和特殊权限可控制 文件所有者.所有组.其他人的读写执行权限, 而隐藏权限则可以进行补充权限,可限制 文件内容只能追加内容,不更新属性等信息 ACL则可以进行让某个用户或组或other拥有指定文 ...

  5. Spring Data Jpa使用QueryDsl接口出现的一些问题

    1.QuerydslPredicateExecutor当实现此接口时,如果出现什么什么类没有找到的时候,请确认相关的querydsl依赖是否已经添加到maven依赖中 <dependency&g ...

  6. 6. Git管理远程仓库

    6. Git管理远程仓库 使用远程仓库的目的 作用:备份,实现代码共享集中化管理 Git克隆操作 目的 将远程仓库(github对应的项目)复制到本地 代码 git clone 仓库地址 多学一招:仓 ...

  7. '\ddd'转义字符与八进制转换

    所有的ASCII码都可以用"\"加数字(一般是8进制数字)来表示.而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等, ...

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

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

  9. APICloud案例源码、模块源码、考试源码、开发工具大集合!赶快收藏

    APICloud专注于APP开发定制技术,多年来不停为开发者奉献更多的资源.此次,APICloud将以往的的资源进行更新.整合,以合集的形式分享给广大的用户. APICloud应用案例源码合集 API ...

  10. Android Studio 异常以及解决方案

    1. Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVER ...