全部產品
Search
文件中心

E-MapReduce:FUSE使用說明

更新時間:Jul 01, 2024

本文介紹如何通過FUSE用戶端訪問JindoFS。FUSE支援Block和JFS Scheme的Cache兩種模式。

前提條件

已建立叢集,詳情請參見建立叢集

背景資訊

FUSE是Linux系統核心提供的一種掛載檔案系統的方式。通過JindoFS的FUSE用戶端,將JindoFS叢集上的檔案對應到本地磁碟,您可以像訪問本地磁碟一樣訪問JindoFS叢集上的資料,無需再使用hadoop fs -ls jfs://<namespace>/方式訪問資料。

掛載

說明 依次在每個節點上執行掛載操作。
  1. 使用SSH方式登入到叢集主節點,詳情請參見登入叢集
  2. 執行如下命令,建立目錄。
    mkdir /mnt/jfs
  3. 執行如下命令,掛載目錄。
    jindofs-fuse /mnt/jfs

    /mnt/jfs作為FUSE的掛載目錄。

讀寫檔案

  1. 列出/mnt/jfs/下的所有目錄。
    ls /mnt/jfs/
    返回使用者在服務端配置的所有命名空間列表。
    test  testcache
  2. 列出命名空間test下面的檔案清單。
    ls /mnt/jfs/test/
  3. 建立目錄。
    mkdir /mnt/jfs/test/dir1
    ls /mnt/jfs/test/
  4. 寫入檔案。
    echo "hello world" > /tmp/hello.txt
    cp /tmp/hello.txt /mnt/jfs/test/dir1/
  5. 讀取檔案。
    cat /mnt/jfs/test/dir1/hello.txt
    返回如下資訊。
    hello world
如果您想使用Python方式寫入和讀取檔案,請參見如下樣本:
  1. 使用Python寫write.py檔案,包含如下內容。
    #!/usr/bin/env python36
    with open("/mnt/jfs/test/test.txt",'w',encoding = 'utf-8') as f:
       f.write("my first file\n")
       f.write("This file\n\n")
       f.write("contains three lines\n")
  2. 使用Python讀檔案。建立指令碼read.py檔案,包含如下內容。
    #!/usr/bin/env python36
    with open("/mnt/jfs/test/test.txt",'r',encoding = 'utf-8') as f:
        lines = f.readlines()
        [print(x, end = '') for x in lines]
    讀取寫入test.txt檔案的內容。
    [hadoop@emr-header-1 ~]$ ./read.py
    返回如下資訊。
    my first file
    This file

卸載

說明 依次在每個節點上執行卸載操作。
  1. 使用SSH方式登入到叢集主節點,詳情請參見登入叢集
  2. 執行如下命令,卸載FUSE。
    umount jindofs-fuse

    如果出現target is busy錯誤,請切換到其它目錄,停止所有正在讀寫FUSE檔案的程式,再執行卸載操作。