JindoFuse は、コンピューティングクラスターのアイドル状態のストレージリソースにデータをキャッシュして、データコンピューティングを高速化できます。 これにより、コンピューティングクラスターが過剰な帯域幅を占有するのを防ぎ、コアクラスターに十分な帯域幅を確保できます。 JindoFuse は、oss:// 形式のアドレスを使用して、JindoFS ファイルをオンプレミスファイルシステムにマウントします。 この方法では、オンプレミスファイルに対する操作を実行するのと同じ方法で、JindoFS ファイルに対する操作を実行できます。
前提条件
EMR コンソールで、E-MapReduce(EMR)V3.42.0 以降のマイナーバージョン、または EMR V5.6.0 以降のマイナーバージョンのクラスターが作成されています。 クラスターの作成方法の詳細については、クラスターの作成をご参照ください。
データソースが Object Storage Service(OSS)、OSS-HDFS、Apache Hadoop Distributed File System(HDFS)、または File Storage NAS の場合、次の操作が完了していることを確認する必要があります。
この例では、EMR V3.42.0 のクラスターを使用しています。
手順
手順 1: クライアントを構成する
SSH モードでクラスターにログオンします。 詳細については、クラスターへのログオンをご参照ください。
次のコマンドを実行して、構成ファイルのディレクトリに移動します。
cd /etc/ecm/jindosdk-conf/
次のコマンドを実行して、jindosdk.cfg 構成ファイルを編集します。
vim jindosdk.cfg
次のコードは、構成ファイルで構成する必要がある項目を示しています。
[common] logger.dir = /tmp/fuse-log [jindosdk] // 使用する OSS または OSS-HDFS バケットのエンドポイント。 fs.oss.endpoint= <yourEndpoint> // OSS または OSS-HDFS サービスにアクセスするために使用する AccessKey ID と AccessKey シークレット。 Alibaba Cloud アカウントには、すべての API 操作を呼び出す権限があります。 Alibaba Cloud アカウントの AccessKey ペアが漏洩した場合、データは高いセキュリティリスクにさらされる可能性があります。 API 操作の呼び出しや日常的な O&M の実行には、RAM ユーザーを使用することをお勧めします。 RAM ユーザーは、Resource Access Management(RAM)コンソールで作成できます。 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
手順 2: JindoFuse をマウントする
次のコマンドを実行して、マウントポイントを作成します。
mkdir -p <mount_point>
次のコマンドを実行して、JindoFuse をマウントします。
jindo-fuse <mount_point> -ouri=<oss_path/jindo_path> -oxengine=jindofsx
-ouri
は、マップする OSS パスに設定する必要があります。 パスは、バケットのルートディレクトリまたはサブディレクトリにすることができます。 コマンドを実行すると、バックグラウンドのデーモンプロセスが起動し、oss_path
パラメーターで指定された OSS パスが、オンプレミスファイルシステムのmount_point
パラメーターで指定されたマウントポイントにマウントされます。jindo://<ip>:<port>/<mountpoint>
など、統合名前空間のパスに OSS パスをマウントすることもできます。
手順 3: JindoFuse にアクセスする
OSS をオンプレミスディレクトリにマウントする場合、次のコマンドを実行して、JindoFuse で関連操作を実行できます。 この例では、OSS は /mnt/oss/ にマウントされています。
/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/
手順 4: JindoFuse をアンマウントする
次のコマンドを実行して、マウントポイントをアンマウントします。
umount <mount_point>
-oauto_unmount
パラメーターを構成して、マウントポイントをアンマウントすることもできます。 -oauto_unmount パラメーターを構成した後、killall -9 jindo-fuse
コマンドを実行して、jindo-fuse プロセスに SIGINT を送信できます。 これにより、プロセスが終了する前に JindoFuse が自動的にアンマウントされます。