すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:POSIX コマンドを使用して OSS または OSS-HDFS にアクセスする

最終更新日:Jan 11, 2025

このトピックでは、Portable Operating System Interface(POSIX)コマンドを使用して Object Storage Service(OSS)または OSS-HDFS にアクセスする方法について説明します。

環境の準備

  • E-MapReduce(EMR)環境では、JindoSDK がデフォルトでインストールされており、直接使用できます。
    説明 OSS-HDFS にアクセスするには、EMR V3.42.0 以降のマイナーバージョンのクラスター、または EMR V5.8.0 以降のマイナーバージョンのクラスターを作成する必要があります。
  • EMR 以外の環境では、最初に JindoSDK をインストールします。 詳細については、EMR 以外の環境への JindoSDK のデプロイ をご参照ください。
    説明 OSS-HDFS にアクセスするには、JindoSDK V4.X 以降をインストールする必要があります。

必要な依存関係のインストール

説明 デフォルトでは、次のクラスターに必要な依存関係がインストールされています。
  • EMR V3.44.0 以降のマイナーバージョンのクラスター、または EMR V5.10.0 以降のマイナーバージョンのクラスター
  • JindoSDK V4.6.2 以降がデプロイされているクラスター
  • クラスターで JindoSDK 4.5.0 以前を使用している場合は、次の依存関係をインストールする必要があります。
    # CentOS
    sudo yum install -y fuse3 fuse3-devel
    # Debian
    sudo apt install -y fuse3 libfuse3-dev
  • クラスターで JindoSDK 4.5.1 以降を使用している場合は、libfuse 3.7 以降をインストールする必要があります。

    たとえば、次のコマンドを実行して fuse-3.11 をインストールします。

    # build fuse required meson & ninja, for debian: apt install -y pkg-config meson ninja-build
    sudo yum install -y meson ninja-build
    
    # compile fuse required newer g++ (only CentOS)
    sudo yum install -y scl-utils
    sudo yum install -y alinux-release-experimentals
    sudo yum install -y devtoolset-8-gcc devtoolset-8-gdb devtoolset-8-binutils devtoolset-8-make devtoolset-8-gcc-c++
    sudo su -c "echo 'source /opt/rh/devtoolset-8/enable' > /etc/profile.d/g++.sh"
    source /opt/rh/devtoolset-8/enable
    sudo ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/local/bin/gcc
    sudo ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/local/bin/g++
    
    # compile & install libfuse
    wget https://github.com/libfuse/libfuse/releases/download/fuse-3.11.0/fuse-3.11.0.tar.xz
    xz -d fuse-3.11.0.tar.xz
    tar xf fuse-3.11.0.tar
    cd fuse-3.11.0/
    mkdir build; cd build
    meson ..
    sudo ninja install

JindoFuse のマウント

JindoSDK を構成した後、次の操作を実行して JindoFuse をマウントできます。

  • 次のコマンドを実行して、マウントポイントを作成します。
    sudo mkdir -p <mountpoint>
  • 次のコマンドを実行して、JindoFuse をマウントします。
    jindo-fuse <mount_point> -ouri=[<osspath>]

    コマンドを実行すると、バックグラウンドでデーモンプロセスが開始され、指定された OSS または OSS-HDFS パスがローカルファイルシステムの指定されたマウントポイントにマウントされます。

    <mount_point> の値をローカルパスに置き換えます。 <oss_path> の値をマップする OSS または OSS-HDFS パスに置き換えます。パスは、OSS または OSS-HDFS バケットのルートディレクトリまたはサブディレクトリにすることができます。例:oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/subdir/。

    説明 OSS パスと OSS-HDFS パスのマウント方法は基本的に同じです。パス内のエンドポイントだけが異なります。 詳細については、パスの説明 をご参照ください。
  • 次のコマンドを実行して、JindoFuse がマウントされているかどうかを確認します。
    ps -ef | grep jindo-fuse
    jindo-fuse プロセスが実行中で、起動パラメーターが想定どおりであれば、JindoFuse はマウントされています。

JindoFuse へのアクセス

JindoFS がローカルパス /mnt/oss/ にマウントされている場合は、次の操作を実行して JindoFuse にアクセスします。
  • 次のコマンドを実行して、/mnt/oss/ パスにあるすべてのディレクトリを表示します。
    ls /mnt/oss/
  • 次のコマンドを実行して、dir1 という名前のディレクトリを作成し、ディレクトリを表示します。
    mkdir /mnt/oss/dir1
    ls /mnt/oss/
  • 次のコマンドを実行して、hello.txt という名前のファイルにデータを書き込みます。
    echo "hello world" > /mnt/oss/dir1/hello.txt
  • 次のコマンドを実行して、hello.txt ファイルからデータを読み取ります。
    cat /mnt/oss/dir1/hello.txt
    hello world が表示されます。
  • 次のコマンドを実行して、dir1 ディレクトリを削除します。
    rm -rf /mnt/oss/dir1/

JindoFuse の手動アンインストール

次のコマンドを実行して、マウントポイントをアンマウントします。
umount <mount_point>

JindoFuse の自動アンインストール

-oauto_unmount パラメーターを使用すると、マウントポイントを自動的にアンマウントできます。

このパラメーターを使用する場合は、killall -9 jindo-fuse コマンドを実行して、jindo-fuse プロセスに SIGINT シグナルを送信できます。プロセスが終了する前に、マウントポイントは自動的にアンマウントされます。

詳細については、JindoFuse のユーザーガイドをご参照ください。