All Products
Search
Document Center

Object Storage Service:Gunakan JindoFuse untuk mengakses OSS-HDFS

Last Updated:Aug 28, 2026

Jika Anda ingin memetakan OSS-HDFS ke sistem file lokal lalu mengakses objek di OSS-HDFS melalui API HDFS standar serta melakukan operasi seperti membaca, menulis, dan menghapus objek, Anda dapat menggunakan JindoFuse. JindoFuse adalah alat yang memungkinkan akses ke sistem file terdistribusi open source yang kompatibel dengan POSIX, sehingga aplikasi AI dapat langsung menggunakan OSS-HDFS untuk penyimpanan dan pemrosesan data.

Prasyarat

OSS-HDFS telah diaktifkan untuk bucket dan izin akses telah diberikan. Untuk informasi selengkapnya, lihat Aktifkan OSS-HDFS.

Persiapan

Anda dapat menggunakan salah satu metode berikut untuk mengakses OSS-HDFS:

  • Jika Anda ingin mengakses OSS-HDFS menggunakan kluster Alibaba Cloud EMR, pastikan kluster EMR versi 3.44.0 atau lebih baru, atau versi 5.10.0 atau lebih baru telah dibuat. Kluster EMR yang memenuhi persyaratan tersebut telah terintegrasi dengan JindoFuse secara default. Untuk informasi selengkapnya, lihat Buat kluster.

  • Jika Anda tidak menggunakan kluster Alibaba Cloud EMR untuk mengakses OSS-HDFS, pastikan JindoSDK versi 4.6.2 atau lebih baru telah diinstal dan dideploy. Untuk informasi selengkapnya, lihat Deploy JindoSDK di kluster non-EMR.

Prosedur

  1. Konfigurasikan variabel lingkungan.

    • Jika Anda ingin mengakses OSS-HDFS menggunakan kluster Alibaba Cloud EMR, lewati langkah ini dan lanjutkan ke Langkah 2.

    • Jika Anda tidak ingin mengakses OSS-HDFS melalui kluster Alibaba Cloud EMR, ikuti langkah-langkah berikut untuk mengonfigurasi JindoFuse:

      1. Hubungkan ke Instance ECS. Untuk informasi selengkapnya, lihat Hubungkan ke Instance ECS.

      2. Modifikasi variabel lingkungan.

        Dalam contoh ini, jindosdk-x.x.x diinstal di direktori root/. x.x.x menunjukkan nomor versi JindoSDK. Sesuaikan variabel lingkungan dengan path aktual tempat JindoSDK diinstal.

        export JINDOSDK_HOME=/root/jindosdk-x.x.x
        export HADOOP_CLASSPATH=`hadoop classpath`:${JINDOSDK_HOME}/lib/*
        export JINDOSDK_CONF_DIR=/root/jindosdk-x.x.x/conf
        export PATH=$PATH:$JINDOSDK_HOME/bin
        export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${JINDOSDK_HOME}/lib/native
      3. Konfigurasikan file konfigurasi.

        1. Buat file konfigurasi bernama jindosdk.cfg di direktori conf/ JindoSDK.

        2. Tambahkan item konfigurasi berikut ke file jindosdk.cfg:

          [common]
          logger.dir = /tmp/fuse-log
          
          [jindosdk]
          # Contoh berikut menggunakan wilayah China (Hangzhou). Ganti dengan wilayah Anda yang sebenarnya.
          fs.oss.endpoint = cn-hangzhou.oss-dls.aliyuncs.com
          # Konfigurasikan ID AccessKey dan Rahasia AccessKey untuk mengakses OSS-HDFS.
          fs.oss.accessKeyId = LTAI****************    
          fs.oss.accessKeySecret = yourAccessKeySecret
  2. Mount OSS-HDFS.

    1. Jalankan perintah berikut untuk membuat titik mount:

      mkdir -p <mount-point>
    2. Jalankan perintah berikut untuk mount OSS-HDFS:

      jindo-fuse <mount_point> -ouri=[<oss_path>]

      Anda harus mengatur -ouri ke jalur DLS yang ingin Anda petakan. Jalur tersebut dapat berupa Direktori root atau subdirektori dari bucket. Setelah menjalankan perintah, proses daemon di latar belakang akan mulai memasang <oss_path> yang Anda tentukan ke titik pemasangan pada sistem file lokal. Titik pemasangan tersebut ditentukan oleh <mount_point>.

      Untuk informasi selengkapnya tentang opsi mount yang dapat dikonfigurasi saat memount OSS-HDFS, lihat Lampiran 2: Opsi mount.

    3. Jalankan perintah berikut untuk memeriksa apakah OSS-HDFS telah dimount:

      ps -ef | grep jindo-fuse

      Jika hasil berikut dikembalikan, berarti OSS-HDFS telah dimount:

      root      2162     1  0 13:21 ?        00:00:00 jindo-fuse <mount_point> -ouri=[<oss_path>]
      root      2714  2640  0 13:39 pts/0    00:00:00 grep --color=auto jindo-fuse
  3. Gunakan JindoFuse untuk melakukan operasi baca dan tulis pada objek di OSS-HDFS.

    • Buat direktori

      mkdir /mnt/oss/dir1
    • Daftar semua subdirektori di direktori /mnt/oss/

      ls /mnt/oss/
    • Tulis objek

      echo "hello world" > /mnt/oss/dir1/hello.txt
    • Baca objek

      cat /mnt/oss/dir1/hello.txt
    • Hapus direktori

      rm -rf /mnt/oss/dir1/
  4. Opsional. Unmount OSS-HDFS.

    Anda dapat melakukan unmount OSS-HDFS dengan salah satu metode berikut:

    • Unmount OSS-HDFS secara manual

      umount <mount_point>
    • Unmount OSS-HDFS secara otomatis

      -oauto_unmount

      Anda dapat menjalankan perintah di atas untuk mengirim sinyal SIGINT ke proses jindo-fuse menggunakan killall -9 jindo-fuse. OSS-HDFS akan otomatis di-unmount sebelum proses keluar.

FAQ

Bagaimana cara mengatasi error JindoFuse?

Jika Anda menggunakan JindoSDK untuk memanggil operasi API, detail pesan error akan ditampilkan saat error terjadi. Namun, jika Anda menggunakan JindoFuse, Anda hanya dapat melihat pesan error bawaan dari sistem operasi.

ls: /mnt/oss/: Input/output error

Untuk mengidentifikasi penyebab error, cari file jindosdk.log di path yang ditentukan oleh item konfigurasi logger.dir JindoSDK. Berikut contoh pesan error autentikasi umum yang mungkin muncul saat menggunakan JindoFuse:

EMMDD HH:mm:ss jindofs_connectivity.cpp:13] Please check your Endpoint/Bucket/RoleArn.
Failed test connectivity, operation: mkdir, errMsg: [RequestId]: 618B8183343EA53531C62B74 [HostId]: oss-cn-shanghai-internal.aliyuncs.com [ErrorMessage]: [E1010]HTTP/1.1 403 Forbidden ...

Jika pesan error tersebut muncul, periksa apakah endpoint, bucket, dan ARN role telah dikonfigurasi dengan benar. Untuk informasi selengkapnya, lihat Panduan cepat: Hubungkan kluster non-EMR ke layanan OSS-HDFS.

Jika Anda mengalami error pemrograman, submit a ticket untuk meminta dukungan teknis.

Lampiran 1: Operasi yang didukung

Tabel berikut menjelaskan operasi API berbasis POSIX yang didukung oleh JindoFuse.

Operasi

Deskripsi

getattr()

Menanyakan atribut suatu objek. Operasi ini mirip dengan perintah ls.

mkdir()

Membuat direktori. Operasi ini mirip dengan perintah mkdir.

rmdir()

Menghapus direktori. Operasi ini mirip dengan perintah rm -rf.

unlink()

Menghapus objek. Operasi ini mirip dengan perintah unlink.

rename()

Mengganti nama objek atau direktori. Operasi ini mirip dengan perintah mv.

read()

Membaca data secara berurutan.

pread()

Membaca data secara acak.

write()

Menulis data secara berurutan.

pwrite()

Menulis data secara acak.

flush()

Mengosongkan data dari memori ke cache kernel.

fsync()

Mengosongkan data dari memori ke disk.

release()

Menutup objek.

readdir()

Membaca direktori.

create()

Membuat objek.

open() O_APPEND

Membuka objek menggunakan mode append.

open() O_TRUNC

Membuka objek menggunakan mode overwrite.

ftruncate()

Memotong objek yang sedang dibuka.

truncate()

Memotong objek yang tertutup. Operasi ini mirip dengan perintah truncate -s.

lseek()

Menentukan lokasi baca dan tulis dalam objek yang terbuka.

chmod()

Memodifikasi izin pada objek. Operasi ini mirip dengan perintah chmod.

access()

Menanyakan izin pada objek.

utimes()

Memodifikasi waktu penyimpanan dan modifikasi objek.

setxattr()

Memodifikasi atribut xattr objek.

getxattr()

Menanyakan atribut xattr objek.

listxattr()

Menampilkan daftar atribut xattr objek.

removexattr()

Menghapus atribut xattr objek.

lock()

Mendukung kunci POSIX. Operasi ini mirip dengan perintah fcntl.

fallocate()

Mengalokasikan ruang fisik untuk objek.

symlink()

Membuat tautan simbolik. Tautan simbolik hanya tersedia di OSS-HDFS dan tidak mendukung akselerasi cache.

readlink()

Membaca tautan simbolik.

Lampiran 2: Opsi mount

Tabel berikut menjelaskan opsi yang dapat dikonfigurasi untuk menggunakan JindoFuse guna memount objek dari OSS-HDFS ke sistem file lokal.

Opsi

Wajib

Deskripsi

Contoh

uri

Ya

Path dls yang ingin Anda petakan. Path tersebut dapat berupa direktori root bucket, seperti -ouri=oss://bucket.endpoint/. Atau dapat pula berupa subdirektori bucket, seperti -ouri=oss://bucket.endpoint/subdir.

-ouri=oss://examplebucket.cn-beijing.oss-dls.aliyuncs.com/

f

Tidak

Menjalankan proses JindoFuse. Secara default, proses daemon digunakan untuk menjalankan JindoFuse di latar belakang. Jika Anda menggunakan opsi ini, kami sarankan untuk mengaktifkan log terminal.

-f

d

Tidak

Mengaktifkan mode debug. Jika Anda mengaktifkan mode debug, proses JindoFuse akan berjalan di foreground. Jika Anda menggunakan opsi ini, kami sarankan untuk mengaktifkan log terminal.

-d

auto_unmount

Tidak

Otomatis unmount titik mount setelah proses JindoFuse keluar.

-oauto_unmount

ro

Tidak

Mount objek dari OSS-HDFS dalam mode read-only. Setelah opsi ini diaktifkan, Anda tidak dapat melakukan operasi tulis.

-oro

direct_io

Tidak

Memungkinkan pembacaan dan penulisan objek tanpa menggunakan page cache.

-odirect_io

kernel_cache

Tidak

Menggunakan cache kernel untuk mengoptimalkan performa baca.

-okernel_cache

auto_cache

Tidak

Mengaktifkan caching otomatis secara default. Berbeda dengan kernel-cache, auto-cache mengaktifkan flushing cache secara otomatis jika ukuran objek atau waktu modifikasi objek berubah.

-oauto_cache

entry_timeout

Tidak

Periode retensi nama objek dalam cache saat objek dibaca. Satuan: detik. Opsi ini digunakan untuk mengoptimalkan performa. Nilai 0 berarti nama objek tidak di-cache. Nilai default: 0,1.

-oentry_timeout=60

attr_timeout

Tidak

Periode retensi atribut objek dalam cache. Satuan: detik. Opsi ini digunakan untuk mengoptimalkan performa. Nilai 0 berarti atribut objek tidak di-cache. Nilai default: 0,1.

-oattr_timeout=60

negative_timeout

Tidak

Periode retensi nama objek dalam cache jika objek gagal dibaca. Satuan: detik. Opsi ini digunakan untuk mengoptimalkan performa. Nilai 0 berarti nama objek tidak di-cache. Nilai default: 0,1.

-onegative_timeout=0

jindo_entry_size

Tidak

Jumlah direktori yang di-cache. Opsi ini digunakan untuk mengoptimalkan performa readdir. Nilai 0 berarti direktori tidak di-cache. Nilai default: 5000.

-ojindo_entry_size=5000

jindo_attr_size

Tidak

Jumlah atribut objek yang di-cache. Opsi ini digunakan untuk mengoptimalkan performa getattr. Nilai 0 berarti atribut objek tidak di-cache. Nilai default: 50000.

-ojindo_attr_sizet=50000

max_idle_threads

Tidak

Jumlah maksimum thread idle. Nilai default: 10.

-omax_idle_threads=10

metrics_port

Tidak

Mengaktifkan port HTTP untuk mengeluarkan metrik, seperti http://localhost:9090/brpc_metrics. Nilai default: 9090.

-ometrics_port=9090

enable_pread

Tidak

Memanggil operasi pread untuk membaca objek.

-oenable_pread

Lampiran 3: Item konfigurasi

Item

Node konfigurasi

Deskripsi

logger.dir

common

Direktori tempat log disimpan. Nilai default: /tmp/jindodata-log.

logger.sync

common

Mode pengembalian log. Nilai yang valid:

  • true: mengembalikan log dalam mode sinkron.

  • false (default): mengembalikan log dalam mode asinkron.

logger.consolelogger

common

Menentukan apakah log ditampilkan. Nilai yang valid:

  • true: menampilkan log.

  • false (default): tidak menampilkan log.

logger.level

common

Mengembalikan log yang tingkatnya lebih besar atau sama dengan nilai item konfigurasi ini.

  • Aktifkan log terminal

    Nilai yang valid untuk tingkat log: 0 hingga 6. Pemetaan antara nilai item konfigurasi ini dan tingkat log sebagai berikut:

    • 0: TRACE

    • 1: DEBUG

    • 2 (default): INFO

    • 3: WARN

    • 4: ERROR

    • 5: CRITICAL

    • 6: OFF

  • Nonaktifkan log terminal

    Tingkat log yang kurang dari atau sama dengan 1 menunjukkan WARN. Tingkat log yang lebih besar dari 1 menunjukkan INFO.

logger.verbose

common

Mengembalikan log Verbose yang tingkatnya lebih besar atau sama dengan nilai item konfigurasi ini. Nilai yang valid: 0 hingga 99. Nilai default: 0. Nilai 0 berarti tidak ada log Verbose yang dikembalikan.

logger.cleaner.enable

common

Menentukan apakah pembersihan log diaktifkan. Nilai yang valid:

  • true: mengaktifkan pembersihan log.

  • false (default): menonaktifkan pembersihan log.

fs.oss.endpoint

jindosdk

Titik akhir yang digunakan untuk mengakses OSS-HDFS. Contoh: cn-hangzhou.oss-dls.aliyuncs.com.

fs.oss.accessKeyId

jindosdk

ID AccessKey yang digunakan untuk mengakses OSS-HDFS.

fs.oss.accessKeySecret

jindosdk

Rahasia AccessKey yang digunakan untuk mengakses OSS-HDFS.