You need to enable JavaScript to run this app.
导航

访问文件存储实例

最近更新时间2024.02.29 19:37:33

首次发布时间2022.05.26 14:18:32

文件存储场景(即HDFS模式)的文件存储实例支持 HDFS 语义、高效元数据操作、高带宽 IO 吞吐,主要用于传统的大数据离线分析场景。本文为您介绍如何创建、挂载文件存储场景实例,并使用 Hadoop Client 访问文件存储实例。

前提条件

  • 已完成火山引擎企业实名认证,并授权大数据文件存储产品访问其他服务的权限。更多信息,请参见跨服务授权
  • 已购买 ECS 实例并为 ECS 实例安装 Hadoop 客户端。更多信息,请参见购买云服务器
    建议您使用的 Hadoop 版本不低于 2.6.0。本文使用的 Hadoop 版本为 Apache Hadoop 2.6.0。

    说明

    目前大数据文件存储服务仅在北京地域开放。创建大数据文件存储服务所在的区域需与 ECS 实例区域保持一致。

视频教程

步骤一:创建文件存储场景实例

文件存储实例与对象存储的存储桶关联用于存储数据,您可以指定存储数据的 Bucket 和加速配置。

  1. 登录大数据文件存储控制台

  2. 在顶部菜单栏选择目标地域。

  3. 文件存储列表页面,单击创建文件存储

  4. 创建文件存储页面,配置文件存储实例的相关信息。
    图片

    配置

    说明

    计费类型

    目前仅支持按量计费。
    文件存储场景实例已于 2023 年 4 月 20 日 14:00 开始正式计费。详细计费说明,请参见计费说明

    文件存储名称

    自定义设置文件存储实例的名称。

    • 全局唯一且不能为空字符串。
    • 支持字母、数字和短短横线(-),只能以字母开头。
    • 长度为 2~63 个字符。

    区域

    目前大数据文件存储服务仅在华北2(北京)地域开放。

    可用区

    与安装了 Hadoop 客户端的 ECS 实例的可用区保持一致。

    应用场景

    此处选择文件存储场景,以创建一个支持 HDFS 语义、高效元数据操作、高带宽 IO 吞吐的文件存储实例。
    如需了解数据湖场景实例如何创建和访问,请参见访问数据湖实例

    对象存储来源

    选择存储数据的存储桶(Bucket)。

    • 系统默认:系统默认提供相关联的对象存储的存储桶。
    • 本账号的对象存储:选择使用当前账号其他对象存储的存储桶。
      • TOS对象存储:选择目标存储桶。如果需要新建存储桶,请参见创建存储桶
      • 文件存储前缀:数据文件在 TOS 的存储路径。
        支持将 TOS 的子路径挂载到文件存储实例。非必填项,可为空,为空时表示根路径;填写时不得以左斜线(/)开头,需要以左斜线(/)结尾,如prefix/

    缓存加速

    是否开启缓存加速。开启后,可以提高文件存储速度。
    开启缓存加速功能后,需要设置加速基线、缓存容量,以及私有网络信息。

    类型

    选择加速基线,提供 200MB/s/TiB400MB/s/TiB 两种类型的加速基线。
    假设选择购买 200MB/s/TiB 的基线,表示每 TiB 容量可用带宽为 200MB/s。

    容量

    请按照业务缓存需求设置文件存储实例的缓存容量,起步 10 TiB,步长 5 TiB。
    如果您需要的缓存容量空间超过 200 TiB,需要提交工单申请。
    文件存储实例创建后,支持您扩容文件存储的缓存容量,请参见扩容缓存容量

    私有网络

    从下拉列表中选择 VPC。
    如果没有可用 VPC,可以单击创建私有网络,然后创建私有网络。详细操作,请参见创建 VPC

    子网

    在下拉列表中选择子网。
    如果没有可用的子网,可以单击创建子网,然后创建子网。详细操作,请参见创建子网
    如果选中勾选后支持该私有网络下所有子网访问,则表示在关联 VPC 内所有子网都可以访问您创建的实例。

    安全组

    从下拉列表中选择安全组。
    如果没有可用的安全组,可以单击创建安全组,然后创建安全组。详细操作,请参见创建安全组

  5. 文件存储实例的配置完成后,单击页面右下角的确认订单

  6. 在订单详情页确认订单信息,确认无误后,阅读并勾选大数据文件存储相关协议。然后单击立即购买

  7. 创建成功后,单击返回文件存储列表,查看文件存储基本信息。
    刚创建的文件存储实例显示为创建中,创建完成后显示为运行中。可以查看文件存储状态,缓存加速配置、应用场景、创建时间等信息。
    图片

步骤二:获取挂载点信息

挂载点是文件存储实例在网络环境中的连接点,通过挂载点连接实例并实现数据传输。

  1. 文件存储列表页面,单击目标文件存储实例的名称,进入详情页面。
  2. 在详情页签下,找到挂载点信息并单击复制按钮,即可获取完整的挂载地址。
    图片

步骤三:挂载文件存储实例

在访问文件存储实例前,你需要将文件存储实例的挂载点配置到 Hadoop 的配置文件中。

  1. 连接 ECS 实例。连接方式请参见连接 ECS 实例

  2. 部署大数据文件存储的 SDK。

    1. 下载 CloudFS SDK 并解压。下载地址:inf.hdfs.cfs_sdk_deploy_1.5.0.50.tar.gz
    2. 将解压后的 SDK 目录下的cloudfs-hadoop-with-dependencies-cfs-1.5.0.50.jar文件复制到 Hadoop 的share/hadoop/hdfs目录下。
  3. 配置core-site.xml文件。

    1. 执行以下操作打开 Hadoop 安装目录下的core-site.xml文件:
      vim {hadoop_安装目录}/hadoop/conf/core-site.xml
    2. 在 core-site.xml 文件中添加以下配置,然后保存退出。
    <!-- 填入文件存储的挂载点信息,例如 -->
    <property>
      <name>fs.defaultFS</name>
      <value>cfs://xxxx.cfs-cn-beijing.ivolces.com</value>
    </property>
    
    <property>
      <name>fs.cfs.impl</name>
      <value>com.volcengine.cloudfs.fs.CfsFileSystem</value>
    </property>
    
    <property>
      <name>fs.AbstractFileSystem.cfs.impl</name>
      <value>com.volcengine.cloudfs.fs.CFS</value>
    </property>  
    
    <property>
      <name>cfs.access.key</name>
      <value>AKxxxxxxxxxxx</value>
    </property>
    <property>
      <name>cfs.secret.key</name>
      <value>SKxxxxxxxxxxx</value>
    </property>
    
    <!-- 可选:如果使用的是 STS Token,需要填写 -->
    <property>
      <name>cfs.security.token</name>
      <value>STSTokenxxxxxxxx</value>
    </property>
    
    <!-- 可选:如果开启缓存加速,需要配置缓存加速接入的 VPC 的网段 -->
    <property>
      <name>cfs.client.network.segment</name>
      <value><VPC 网段,例如 192.168.0.0/16></value>
    </property>
    

    其中:

    • <name>fs.defaultFS</name>的值是大数据文件存储实例的挂载点地址,请根据实际情况替换。
    • <name>cfs.access.key</name><name>cfs.secret.key</name>的值分别是火山引擎账号的 Access Key ID 和 Secret Access Key,获取方式请参考密钥管理
  4. 验证文件存储实例是否部署成功。

    • 执行hdfs dfs -ls /命令,有文件结果返回表示部署成功。
    • 执行echo $?命令,返回0表示部署成功。

步骤四:访问文件存储实例

完成部署后,您可以通过 hdfs dfs 命令和 SDK 访问 CloudFS。

  • 使用 hdfs dfs 命令
    支持的 dfs 命令,请参考支持的 hdfs dfs 命令说明
  • 使用 SDK 访问
    在 SDK 实现类中引用文件存储实例的挂载点信息。
Configuration conf = new Configuration();
conf.set("fs.cfs.impl", "com.volcengine.cloudfs.fs.CfsFileSystem");
conf.set("cfs.client.network.segment", vpcNet);
conf.set("cfs.access.key", ak);
conf.set("cfs.secret.key", sk);

// Optional:
// conf.set("cfs.security.token", sk);

FileSystem fs = FileSystem.get("cfs://xxxx.cfs-cn-beijing.ivolces.com", conf);