JindoFuse透明缓存加速可以利用计算集群的闲置存储资源进行数据缓存来加速计算服务,避免计算集群或服务占用核心集群过多带宽。JindoFuse使用原来的地址(oss://)可以将JindoFS服务上的文件挂载到本地文件系统中,让您能够像操作本地文件系统一样操作JindoFS服务中的文件,同时通过缓存加速访问速度。

前提条件

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

操作流程

  1. 步骤一:配置客户端
  2. 步骤二:挂载JindoFuse
  3. 步骤三:访问JindoFuse
  4. 步骤四:卸载JindoFuse

步骤一:配置客户端

  1. 使用SSH方式登录集群。具体步骤,请参见登录集群
  2. 执行以下命令,进入配置文件目录。
    cd /etc/ecm/jindosdk-conf/
  3. 执行以下命令,修改jindosdk.cfg配置文件。
    vim jindosdk.cfg
    需修改内容如下所示:
    [common]
    logger.dir = /tmp/fuse-log
    
    [jindosdk]
    # 配置阿里云OSS/OSS-HDFS Bucket对应的Endpoint。
    fs.oss.endpoint= <yourEndpoint>
    # 用于访问OSS或OSS-HDFS服务的AccessKey ID和AccessKey Secret。阿里云账号AccessKey拥有所有API的访问权限,具有较大风险。强烈建议您登录RAM控制台创建并使用RAM用户进行API访问或日常运维。
    fs.oss.accessKeyId = <yourAccessKeyId>
    fs.oss.accessKeySecret = <yourAccessKeySecret>
    # 配置Namespace Service地址。
    fs.jindofsx.namespace.rpc.address = <hostname>:<port>
    # 数据缓存开关。
    fs.jindofsx.data.cache.enable = true
    # 元数据缓存开关。
    fs.jindofsx.meta.cache.enable = false
    # 临时文件目录。
    fs.jindofsx.tmp.data.dir = /tmp

步骤二:挂载JindoFuse

  1. 执行以下命令,创建一个挂载点。
    mkdir -p <mount_point>
  2. 执行以下命令,挂载JindoFuse。
    jindo-fuse <mount_point> -ouri=<oss_path/jindo_path> -oxengine=jindofsx

    -ouri需配置为待映射的OSS路径,路径可以为Bucket根目录或者子目录。该命令会启动一个后台的守护进程,将指定的oss_path挂载到本地文件系统的mount_point,或者挂载统一命名空间的路径,例如jindo://<ip>:<port>/<mountpoint>

步骤三:访问JindoFuse

例如,如果将OSS服务挂载到了本地/mnt/oss/目录,则可以执行以下命令访问JindoFuse。

  • 查看/mnt/oss/下的所有目录
    ls /mnt/oss/
  • 创建目录
    mkdir /mnt/oss/dir1
  • 写入文件
    echo "hello world" > /mnt/oss/dir1/hello.txt
  • 读取文件
    cat /mnt/oss/dir1/hello.txt

    显示hello world

  • 删除目录
    rm -rf /mnt/oss/dir1/

步骤四:卸载JindoFuse

如果您想卸载之前挂载的挂载点,可以使用如下命令。
umount <mount_point>

您也可以使用-oauto_unmount参数自动卸载挂载点。使用该参数后,支持killall -9 jindo-fuse发送SIGINT给jindo-fuse进程,该进程退出前会自动卸载挂载点。