Topik ini menjelaskan cara menggunakan perintah Antarmuka Sistem Operasi Portabel (POSIX) untuk mengakses Object Storage Service (OSS) atau OSS-HDFS.
Persiapan lingkungan
- Dalam lingkungan E-MapReduce (EMR), JindoSDK diinstal secara default dan dapat langsung digunakan. Catatan Untuk mengakses OSS-HDFS, Anda harus membuat kluster EMR V3.42.0 atau versi minor lebih baru, atau EMR V5.8.0 atau versi minor lebih baru.
- Dalam lingkungan non-EMR, instal JindoSDK terlebih dahulu. Untuk informasi lebih lanjut, lihat Deploy JindoSDK dalam Lingkungan Selain EMR. Catatan Untuk mengakses OSS-HDFS, Anda harus menginstal JindoSDK V4.X atau yang lebih baru.
Instal dependensi yang diperlukan
- Kluster EMR V3.44.0 atau versi minor lebih baru atau kluster EMR V5.10.0 atau versi minor lebih baru.
- Kluster di mana JindoSDK V4.6.2 atau yang lebih baru telah diterapkan.
- Jika kluster Anda menggunakan JindoSDK 4.5.0 atau yang lebih lama, Anda harus menginstal dependensi berikut:
# CentOS sudo yum install -y fuse3 fuse3-devel # Debian sudo apt install -y fuse3 libfuse3-dev - Jika kluster Anda menggunakan JindoSDK 4.5.1 atau yang lebih baru, Anda harus menginstal libfuse 3.7 atau yang lebih baru.
Sebagai contoh, jalankan perintah berikut untuk menginstal 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
Mount JindoFuse
Setelah Anda mengonfigurasi JindoSDK, Anda dapat melakukan operasi berikut untuk memasang JindoFuse.
- Jalankan perintah berikut untuk membuat titik mount:
sudo mkdir -p <mountpoint> - Jalankan perintah berikut untuk memasang JindoFuse:
jindo-fuse <mount_point> -ouri=[<osspath>]Setelah Anda menjalankan perintah tersebut, proses daemon akan dimulai di latar belakang untuk memasang jalur OSS atau OSS-HDFS yang ditentukan ke titik mount sistem file lokal.
Ganti nilai dari
<mount_point>dengan jalur lokal. Ganti nilai dari<oss_path>dengan jalur OSS atau OSS-HDFS yang ingin dipetakan. Jalur tersebut bisa berupa direktori root atau subdirektori bucket OSS atau OSS-HDFS. Contoh: oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/subdir/.Catatan Metode untuk memasang jalur OSS dan OSS-HDFS pada dasarnya sama. Hanya titik akhir dalam jalur yang berbeda. Untuk informasi lebih lanjut, lihat Deskripsi Jalur. - Jalankan perintah berikut untuk memeriksa apakah JindoFuse telah dipasang:
Jika proses jindo-fuse sedang berjalan dan parameter startup sesuai harapan, JindoFuse telah dipasang.ps -ef | grep jindo-fuse
Akses JindoFuse
- Jalankan perintah berikut untuk melihat semua direktori di jalur /mnt/oss/:
ls /mnt/oss/ - Jalankan perintah berikut untuk membuat direktori bernama dir1 dan melihat direktori tersebut:
mkdir /mnt/oss/dir1 ls /mnt/oss/ - Jalankan perintah berikut untuk menulis data ke file bernama hello.txt:
echo "hello world" > /mnt/oss/dir1/hello.txt - Jalankan perintah berikut untuk membaca data dari file hello.txt:
cat /mnt/oss/dir1/hello.txthello worldakan ditampilkan. - Jalankan perintah berikut untuk menghapus direktori dir1:
rm -rf /mnt/oss/dir1/
Copot pemasangan JindoFuse secara manual
umount <mount_point>Copot pemasangan JindoFuse secara otomatis
Anda dapat menggunakan parameter -oauto_unmount untuk melepas titik mount secara otomatis.
Jika Anda menggunakan parameter ini, Anda dapat menjalankan perintah killall -9 jindo-fuse untuk mengirim sinyal SIGINT ke proses jindo-fuse. Titik mount akan dilepas secara otomatis sebelum proses keluar.