All Products
Search
Document Center

E-MapReduce:Percepat caching transparan untuk OSS-HDFS dengan JindoCache

Last Updated:Mar 27, 2026

Pembacaan berulang dari OSS-HDFS menyebabkan I/O remote pada setiap akses, yang meningkatkan latensi pekerjaan. JindoCache menyimpan objek OSS-HDFS di penyimpanan kluster EMR sehingga pembacaan berikutnya dilayani dari cache lokal. Setelah pembacaan pertama, data secara otomatis di-cache—pekerjaan Hadoop dapat mengakses OSS-HDFS tanpa perubahan konfigurasi apa pun.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Cara kerja caching

JindoCache menggunakan CacheSets untuk menerapkan kebijakan caching pada path OSS tertentu. Setiap CacheSet menargetkan path induk dan mengontrol cara penanganan metadata, pembacaan, dan penulisan untuk semua data di bawah path tersebut. Anda dapat mendefinisikan satu atau beberapa CacheSet, masing-masing dengan kebijakan berbeda, agar sesuai dengan pola akses set data yang berbeda.

Setelah Anda mendefinisikan CacheSet dan mengonfigurasi JindoSDK, caching sepenuhnya transparan: pekerjaan Hadoop mengakses OSS-HDFS seperti biasa, dan JindoCache secara otomatis menangani pengisian serta pencarian cache.

Langkah 1: Definisikan kebijakan caching

Buat cacheset.xml

Definisikan CacheSet Anda dalam file cacheset.xml. Contoh berikut mengonfigurasi dua CacheSet untuk path OSS yang berbeda:

<?xml version="1.0" encoding="UTF-8"?>
<cachesets>
    <cacheset>
        <name>name1</name>
        <path>oss://emr-test/dir1</path>
        <cacheStrategy>DISTRIBUTED</cacheStrategy>
        <metaPolicy>
            <type>ALWAYS</type>
        </metaPolicy>
        <readPolicy>CACHE_ASIDE</readPolicy>
        <writePolicy>WRITE_AROUND</writePolicy>
    </cacheset>
    <cacheset>
        <name>name2</name>
        <path>oss://emr-test/dir2</path>
        <cacheStrategy>DHT</cacheStrategy>
        <metaPolicy>
            <type>ONCE</type>
        </metaPolicy>
        <readPolicy>CACHE_ASIDE</readPolicy>
        <writePolicy>WRITE_AROUND</writePolicy>
    </cacheset>
</cachesets>

Setiap CacheSet memetakan path induk ke sekumpulan kebijakan. Tabel berikut menjelaskan semua parameter.

ParameterDeskripsiContoh
nameNama unik untuk CacheSet. Jika CacheSet dengan nama yang sama sudah ada, konfigurasinya akan ditimpa.name1
pathPath induk OSS. Kebijakan berlaku untuk semua data di bawah path ini.oss://emr-test/dir1
cacheStrategyKebijakan caching. Nilai yang valid: DISTRIBUTED dan DHT. DHT adalah singkatan dari distributed hash table. Kebijakan caching DHT digunakan untuk mempercepat akses ke file berukuran kecil yang bersifat read-only.DISTRIBUTED
metaPolicyApakah metadata file di-cache secara lokal. ALWAYS: metadata tidak di-cache dan dibaca dari penyimpanan remote. ONCE: metadata di-cache; metadata selalu dibaca dari penyimpanan lokal setelah pertama kali dibaca dari penyimpanan remote. Jika cacheStrategy bernilai DHT, atur nilai ini menjadi ONCE.ALWAYS
readPolicyCara membaca file. Harus bernilai CACHE_ASIDE: file diprioritaskan dibaca dari cache.CACHE_ASIDE
writePolicyTujuan penulisan. WRITE_AROUND: menulis file ke penyimpanan remote. WRITE_THROUGH: menulis file ke cache dan penyimpanan remote sekaligus. CACHE_ONLY: hanya menulis file ke cache; memerlukan metaPolicy diatur ke ONCE.WRITE_AROUND

Terapkan konfigurasi CacheSet

  1. Login ke kluster Anda. Untuk informasi selengkapnya, lihat Log on to a cluster.

  2. Simpan file cacheset.xml ke direktori di kluster. Dalam contoh ini, file berada di /path/cacheset.xml.

  3. Jalankan perintah berikut untuk memuat konfigurasi CacheSet ke JindoCache:

    jindocache -refreshCacheSet -path /path/cacheset.xml

    Jika berhasil, output berikut akan ditampilkan:

    Successfully refresh cacheset !!!

    Untuk daftar lengkap perintah CLI JindoCache, lihat JindoCache CLI usage notes.

  4. Jalankan perintah berikut untuk memverifikasi bahwa CacheSet telah dimuat:

    jindocache -listCacheSet

Langkah 2: Konfigurasi JindoSDK

Tetapkan kelas implementasi OSS-HDFS di Hadoop-Common agar klien mengarahkan trafik melalui JindoCache. Di Konsol EMR, buka tab core-site.xml pada tab Configure di halaman layanan Hadoop-Common dan tambahkan item konfigurasi berikut. Untuk informasi selengkapnya, lihat Manage configuration items.

Item konfigurasiNilaiPerilaku default
fs.xenginejindocacheJika dibiarkan kosong, klien berkomunikasi langsung dengan OSS-HDFS tanpa caching.

Konfigurasi ini berlaku di tingkat klien dan langsung berlaku tanpa perlu restart JindoCache.

Setelah Anda menyimpan konfigurasi, pekerjaan yang membaca dari OSS-HDFS secara otomatis mengisi cache pada pembacaan pertama. Pembacaan berikutnya terhadap data yang sama akan dilayani dari cache.

FAQ

Bagaimana cara mengonfigurasi akses lintas akun ke OSS-HDFS?

Secara default, JindoCache mengakses OSS-HDFS tanpa kredensial eksplisit (mode passwordless). Untuk akses lintas akun, tambahkan item konfigurasi berikut ke tab common di halaman layanan JindoCache.

Buka tab konfigurasi:

  1. Login ke EMR console. Di panel navigasi kiri, klik EMR on ECS.

  2. Di bilah navigasi atas, pilih wilayah tempat kluster Anda berada dan pilih kelompok sumber daya.

  3. Di halaman EMR on ECS, temukan kluster Anda dan klik Services di kolom Actions.

  4. Temukan JindoCache dan klik Configure.

  5. Klik tab common.

Add the configuration items:

Klik Add Configuration Item dan tambahkan item berikut. Ganti YYY dengan nama bucket OSS tempat OSS-HDFS diaktifkan. Untuk informasi lebih lanjut tentang menerapkan perubahan konfigurasi, lihat Manage configuration items.

Item konfigurasiDeskripsi
jindocache.oss.bucket.YYY.accessKeyIdID AccessKey yang digunakan untuk mengakses OSS-HDFS.
jindocache.oss.bucket.YYY.accessKeySecretRahasia AccessKey yang digunakan untuk mengakses OSS-HDFS.
jindocache.oss.bucket.YYY.endpointTitik akhir OSS-HDFS. Contoh: cn-hangzhou.oss-dls.aliyuncs.com.
jindocache.oss.bucket.YYY.data.lake.storage.enableAtur ke true.