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進程,該進程退出前會自動卸載掛載點。