阿里云OSS/OSS-HDFS服务透明缓存加速

JindoFSx存储加速系统提供了透明缓存的使用方式,兼容原生OSS/OSS-HDFS存储方式,文件以对象的形式存储在OSS/OSS-HDFS上,每个文件根据实际访问情况会在本地进行缓存,提升访问OSS/OSS-HDFS的效率,同时兼容了原有OSS/OSS-HDFS文件形式,数据访问上能够与其他OSS/OSS-HDFS客户端完全兼容,作业访问OSS/OSS-HDFS的方式无需做任何修改。

前提条件

已在E-MapReduce上创建EMR-3.42.0及后续版本、EMR-5.6.0及后续版本的集群,且选择JINDODATA服务,详情请参见创建集群

使用限制

仅EMR-3.42.0及后续版本、EMR-5.6.0及后续版本集群支持该功能。

操作流程

说明

本文以EMR-3.42.0版本为例介绍。

  1. 步骤一:配置AccessKey

  2. 步骤二:配置JindoSDK

  3. 步骤三:磁盘空间水位控制

步骤一:配置AccessKey

  1. 进入JindoData服务的common页签。

    1. 登录EMR on ECS

    2. 在顶部菜单栏处,根据实际情况选择地域和资源组

    3. 集群管理页面,单击目标集群操作列的集群服务

    4. 单击JindoData服务区域的配置

    5. 单击common页签。

  2. 新增配置。

    1. 单击新增配置项

    2. 新增配置项对话框中,新增以下配置项。

      新增配置项的具体操作,请参见添加配置项。全局方式和按照Bucket方式配置任选其中一种即可。

      • 全局方式配置(所有Bucket使用同一种方式)

        Key

        描述

        jindofsx.oss.accessKeyId

        OSS/OSS-HDFS的AccessKey ID。

        jindofsx.oss.accessKeySecret

        OSS/OSS-HDFS的AccessKey Secret。

        jindofsx.oss.endpoint

        OSS/OSS-HDFS的Endpoint。例如:

        • OSS: oss-cn-***-internal.aliyuncs.com

        • OSS-HDFS: cn-***.oss-dls.aliyuncs.com

      • 按照Bucket配置

        Key

        描述

        jindofsx.oss.bucket.XXX.accessKeyId

        XXX的Bucket的AccessKey ID。

        jindofsx.oss.bucket.XXX.accessKeySecret

        XXX的Bucket的AccessKey Secret。

        jindofsx.oss.bucket.XXX.endpoint

        XXX的Bucket的Endpoint。例如:

        • OSS: oss-cn-***-internal.aliyuncs.com

        • OSS-HDFS: cn-***.oss-dls.aliyuncs.com

        说明

        XXX为OSS Bucket的名称。

    3. 单击确定

  3. 重启服务。

    1. 在JindoData服务页面,选择右上角的更多操作 > 重启

    2. 在弹出的对话框中,输入执行原因,其他参数保持默认,单击确定

    3. 确认对话框中,单击确定

步骤二:配置JindoSDK

重要 此配置为客户端配置,无需重启JindoData服务。
  1. 进入配置页面。

    1. 登录EMR on ECS

    2. 在顶部菜单栏处,根据实际情况选择地域和资源组

    3. 集群管理页面,单击目标集群右侧操作列的集群服务

    4. 单击Hadoop-Common服务区域的配置

    5. 单击core-site.xml页签。

  2. 修改以下配置。

    修改配置项的具体操作,请参见修改配置项

    内容

    是否必填

    参数

    描述

    配置OSS实现类

    fs.AbstractFileSystem.oss.impl

    固定值为com.aliyun.jindodata.oss.OSS

    fs.oss.impl

    固定值为com.aliyun.jindodata.oss.JindoOssFileSystem

    配置xengine类型

    fs.xengine

    固定值为jindofsx

    配置JindoFSx Namespace服务地址

    fs.jindofsx.namespace.rpc.address

    格式为${headerhost}:8101。例如:master-1-1:8101。

    说明

    如果使用高可用NameSpace,配置详情请参见高可用JindoFSx Namespace配置和使用

    启用缓存加速功能

    说明

    启用缓存会利用本地磁盘对访问的热数据块进行缓存,默认状态为禁用,即可以直接访问OSS上的数据。

    fs.jindofsx.data.cache.enable

    数据缓存开关:

    • false(默认值):禁用数据缓存。

    • true:启用数据缓存。

    配置AccessKey

    fs.oss.accessKeyId

    OSS/OSS-HDFS的AccessKey ID。

    fs.oss.accessKeySecret

    OSS/OSS-HDFS的AccessKey Secret。

    fs.oss.endpoint

    OSS/OSS-HDFS的Endpoint。例如:

    • OSS: oss-cn-***-internal.aliyuncs.com

    • OSS-HDFS: cn-***.oss-dls.aliyuncs.com

    其他可选参数(选填):

    内容

    参数

    描述

    元缓存加速功能(可选)

    fs.jindofsx.meta.cache.enable

    元数据缓存开关:

    • false(默认值):禁用元数据缓存。

    • true:启用元数据缓存。

    小文件缓存加速功能(可选)

    fs.jindofsx.slice.cache.enable

    小文件缓存优化开关:

    • false(默认值):禁用小文件缓存。

    • true:启用小文件缓存。

    短路读功能(可选)

    fs.jindofsx.short.circuit.enable

    短路读开关:

    • true(默认值):打开短路读开关。

    • false:关闭短路读开关。

  3. 保存配置。

    1. 单击页面左下角的保存

    2. 在弹出的对话框中,输入执行原因,单击保存

步骤三:磁盘空间水位控制

缓存启用后,JindoFSx服务会自动管理本地缓存备份,通过水位清理本地缓存,请您根据需求配置一定的比例用于缓存。JindoFSx后端基于OSS/OSS-HDFS,可以提供海量的存储,但是本地盘的容量是有限的,因此JindoFSx会自动淘汰本地较冷的数据备份。您可以通过修改storage.watermark.high.ratiostorage.watermark.low.ratio两个参数来调节本地存储的使用容量,取值范围为0~1,表示使用磁盘空间的比例。

  1. 修改磁盘水位配置。

    在JindoData服务的配置页签内的storage页签,修改以下参数。jindodata_radio

    参数

    描述

    storage.watermark.low.ratio

    表示使用量的下水位比例,触发清理后会自动清理冷数据,将缓存数据目录占用空间清理到下水位。默认值:0.2。

    storage.watermark.high.ratio

    表示磁盘使用量的上水位比例,每块数据盘的缓存数据目录占用的磁盘空间到达上水位即会触发清理。默认值:0.4。如果需要比较高的磁盘利用率可以设置较大值。

    说明

    修改该参数时,下水位比例必须小于上水位比例,设置合理的值即可。

  2. 保存配置。

    1. 单击下方的保存

    2. 在弹出的对话框中,输入执行原因,单击确定

  3. 重启服务。

    1. 在JindoData服务页面,选择右上角的更多操作 > 重启

    2. 在弹出的对话框中,输入执行原因,其他参数保持默认,单击确定

    3. 确认对话框中,单击确定