对象存储(Cloud Object Storage,COS)可以通过开启元数据加速能力,拥有 HDFS 协议访问的能力。开启元数据加速能力后,COS 会为存储桶生成一个挂载点,您可以通过下载 HDFS 客户端,在客户端中输入该挂载点挂载 COS。本文将详细介绍如何在计算集群中挂载开启元数据加速的存储桶。
注意:
- Hadoop-cos 自8.1.5版本开始支持
cosn://bucketname-appid/
方式访问元数据加速桶。- 元数据加速功能只能在创建存储桶时开启,开启后不支持关闭,请结合您的业务情况慎重考虑是否开启,同时注意旧版本的 Hadoop-cos 包不能正常访问已开启元数据加速功能的存储桶。
$HADOOP_HOME/share/hadoop/common/lib/
下。
注意:EMR 环境下自带依赖 jar 包,无需安装,可直接通过 POSIX 语义访问元数据加速桶。如需使用 s3 协议访问,则更改 fs.cosn.posix_bucket.fs.impl 配置项,详情请参见下文。
core-site.xml
文件,新增以下基本配置:
注意:
<!--账户的 API 密钥信息。可登录 [访问管理控制台](https://console.tencentcloud.com/capi) 查看云 API 密钥。-->
<!--建议使用子账号密钥或者临时密钥的方式完成配置,提升配置安全性。为子账号授权时请遵循[最小权限指引原则](https://www.tencentcloud.com/document/product/436/32972)。-->
<property>
<name>fs.cosn.userinfo.secretId/secretKey</name>
<value>AKIDxxxxxxxxxxxxxxxxxxxxx</value>
</property>
<!--cosn 的实现类-->
<property>
<name>fs.AbstractFileSystem.cosn.impl</name>
<value>org.apache.hadoop.fs.CosN</value>
</property>
<!--cosn 的实现类-->
<property>
<name>fs.cosn.impl</name>
<value>org.apache.hadoop.fs.CosFileSystem</value>
</property>
<!--用户存储桶的地域信息,格式形如 ap-guangzhou-->
<property>
<name>fs.cosn.bucket.region</name>
<value>ap-guangzhou</value>
</property>
<!--本地临时目录,用于存放运行过程中产生的临时文件->
<property>
<name>fs.cosn.tmp.dir</name>
<value>/tmp/hadoop_cos</value>
</property>
core-site.xml
同步到所有hadoop
节点上。
说明:对于 EMR 集群,以上步骤3、4可在 EMR 控制台的组件管理中,修改 HDFS 配置即可。
hadoop fs
命令行工具,运行 hadoop fs -ls cosn://${bucketname-appid}/
命令,这里 bucketname-appid
为挂载地址,即存储桶名称。如果正常列出文件列表,则说明已经成功挂载 COS 存储桶。hadoop
其他配置项,或者 mr
任务在开启了元数据加速能力的 COS 存储桶上运行数据任务。对于 mr
任务,可以通过 -Dfs.defaultFS=ofs://${bucketname-appid}/
将本次任务的默认输入输出 FS
改为对应的存储桶。说明:这里可以通过 POSIX 语义访问、S3协议访问两种方式访问元数据加速存储桶,我们这里建议使用 POSIX 语义访问方式,可以获得更好的性能。
注意:无论以哪种方式访问元数据加速存储桶,如下通用配置项必须设置。
配置项 | 配置项内容 | 说明 |
---|---|---|
fs.cosn.userinfo.secretId/secretKey | 格式形如 AKIDxxxxxxxxxxxxxxxxxxxx | 填写您账户的 API 密钥信息。可登录 访问管理控制台 查看云 API 密钥。 |
fs.cosn.impl | org.apache.hadoop.fs.CosFileSystem | cosn 对 FileSystem 的实现类,固定为 org.apache.hadoop.fs.CosFileSystem。 |
fs.AbstractFileSystem.cosn.impl | org.apache.hadoop.fs.CosN | cosn 对 AbstractFileSystem 的实现类,固定为 org.apache.hadoop.fs.CosN。 |
fs.cosn.bucket.region | 格式形如 ap-beijing | 请填写待访问存储桶的地域信息,枚举值请参见 地域和访问域名 中的地域简称,例如:ap-beijing、ap-guangzhou 等。兼容原有配置:fs.cosn.userinfo.region。 |
fs.cosn.tmp.dir | 默认/tmp/hadoop_cos | 请设置一个实际存在的本地目录,运行过程中产生的临时文件会暂时放于此处。同时建议配置各节点该目录足够的空间和权限。 |
说明:
- POSIX 访问方式下除通用配置项外,还需要添加以下配置内容。POSIX 访问方式的 其他可选配置项 添加"fs.cosn.trsf." 前缀即可用于访问元数据加速桶。
- 需要注意的是原有 Hadoop cos 相关的配置项不再适用。
配置项 | 配置项内容 | 说明 |
---|---|---|
fs.cosn.trsf.fs.AbstractFileSystem.ofs.impl | com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter | 元数据桶访问实现类 |
fs.cosn.trsf.fs.ofs.impl | com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter | 元数据桶访问实现类 |
fs.cosn.trsf.fs.ofs.tmp.cache.dir | 格式形如 /data/emr/hdfs/tmp/posix-cosn/ | 请设置一个实际存在的本地目录,运行过程中产生的临时文件会暂时放于此处。同时建议配置各节点该目录足够的空间和权限,例如"/data/emr/hdfs/tmp/posix-cosn/" |
fs.cosn.trsf.fs.ofs.user.appid | 格式形如 12500000000 | 必填。用户 appid |
fs.cosn.trsf.fs.ofs.bucket.region | 格式形如 ap-beijing | 必填。用户 bucket 对应 region |
S3协议访问方式需要设置如下配置,其他可选项请参见 Hadoop-cos 配置项。
配置项 | 配置项内容 | 说明 |
---|---|---|
fs.cosn.posix_bucket.fs.impl | org.apache.hadoop.fs.CosNFileSystem | POSIX 方式访问配置为 com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter S3 协议方式访问配置为 org.apache.hadoop.fs.CosNFileSystem , 默认 POSIX 方式访问。 |
本页内容是否解决了您的问题?