All Products
Search
Document Center

Object Storage Service:Gunakan JindoSDK dengan Spark untuk menanyakan data di OSS-HDFS

Last Updated:Nov 09, 2025

JindoSDK adalah klien OSS yang mudah digunakan dan dioptimalkan untuk ekosistem Hadoop dan Spark. Ini menyediakan implementasi Hadoop FileSystem yang sangat dioptimalkan untuk OSS. Anda dapat menggunakan JindoSDK dengan Spark untuk menanyakan data di OSS-HDFS dengan performa lebih baik dibandingkan klien OSS komunitas Hadoop.

Prasyarat

  • Sebuah Instance ECS Alibaba Cloud tersedia. Untuk informasi lebih lanjut, lihat membeli instance ECS.

  • Lingkungan Hadoop telah dibuat. Untuk informasi lebih lanjut, lihat Buat lingkungan runtime Hadoop.

  • Apache Spark telah diterapkan. Untuk informasi lebih lanjut, lihat Apache Spark.

  • OSS-HDFS telah diaktifkan, dan Anda memiliki otorisasi untuk mengaksesnya. Untuk informasi lebih lanjut, lihat Aktifkan OSS-HDFS.

Prosedur

  1. Hubungkan ke instance ECS. Untuk informasi lebih lanjut, lihat Hubungkan ke instance.

  2. Konfigurasikan JindoSDK.

    1. Unduh versi terbaru dari paket JAR JindoSDK. Untuk tautan unduhan, lihat GitHub.

    2. Ekstrak paket JAR JindoSDK.

      Kode contoh berikut menunjukkan cara mengekstrak paket bernama jindosdk-x.x.x-linux.tar.gz. Jika Anda menggunakan versi JindoSDK yang berbeda, ganti nama paket dengan nama sebenarnya dari paket Anda.

      tar zxvf jindosdk-x.x.x-linux.tar.gz
      Catatan

      x.x.x menunjukkan nomor versi paket JAR JindoSDK.

    3. Salin paket JAR JindoSDK ke classpath Spark.

      cp jindosdk-x.x.x-linux/lib/*.jar  $SPARK_HOME/jars/
  3. Konfigurasikan kelas implementasi OSS-HDFS dan Pasangan Kunci Akses.

    • Konfigurasikan pengaturan dalam file core-site.xml:

      1. Konfigurasikan kelas implementasi untuk layanan OSS-HDFS dalam file core-site.xml Spark.

        <configuration>
            <property>
                <name>fs.AbstractFileSystem.oss.impl</name>
                <value>com.aliyun.jindodata.oss.JindoOSS</value>
            </property>
        
            <property>
                <name>fs.oss.impl</name>
                <value>com.aliyun.jindodata.oss.JindoOssFileSystem</value>
            </property>
        </configuration>
      2. Konfigurasikan ID AccessKey dan Rahasia AccessKey untuk bucket tempat OSS-HDFS diaktifkan dalam file core-site.xml Spark.

        <configuration>
            <property>
                <name>fs.oss.accessKeyId</name>
                <value>LTAI********</value>
            </property>
        
            <property>
                <name>fs.oss.accessKeySecret</name>
                <value>KZo1********</value>
            </property>
        </configuration>
    • Sebagai alternatif, Anda dapat mengonfigurasi pengaturan saat mengirimkan tugas.

      Kode contoh berikut menunjukkan cara mengonfigurasi kelas implementasi OSS-HDFS dan Pasangan Kunci Akses saat Anda mengirimkan tugas Spark:

      spark-submit --conf spark.hadoop.fs.AbstractFileSystem.oss.impl=com.aliyun.jindodata.oss.OSS --conf spark.hadoop.fs.oss.impl=com.aliyun.jindodata.oss.JindoOssFileSystem --conf spark.hadoop.fs.oss.accessKeyId=LTAI********  --conf spark.hadoop.fs.oss.accessKeySecret=KZo149BD9GLPNiDIEmdQ7d****
  4. Konfigurasikan titik akhir layanan OSS-HDFS.

    Untuk mengakses bucket OSS menggunakan layanan OSS-HDFS, Anda harus mengonfigurasi titik akhir. Format jalur yang direkomendasikan adalah oss://{yourBucketName}.{yourBucketEndpoint}/{path}. Sebagai contoh: oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt. Setelah konfigurasi selesai, JindoSDK menggunakan titik akhir dalam jalur akses untuk mengakses antarmuka layanan OSS-HDFS.

    Anda juga dapat mengonfigurasi titik akhir layanan OSS-HDFS dengan cara lain. Metode konfigurasi ini memiliki urutan prioritas. Untuk informasi lebih lanjut, lihat Lampiran 1: Cara lain untuk mengonfigurasi titik akhir.

  5. Gunakan Spark untuk mengakses OSS-HDFS.

    1. Buat tabel.

      create table test_oss (c1 string) location "oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/";
    2. Masukkan data ke dalam tabel.

      insert into table test_oss values ("testdata");
    3. Tanyakan tabel.

      select * from test_oss;