全部产品
Search
文档中心

Object Storage Service:Gunakan Hadoop untuk mengakses OSS-HDFS dengan JindoSDK

更新时间:Jul 08, 2025

OSS-HDFS adalah layanan penyimpanan danau data berbasis cloud-native yang menyediakan manajemen metadata terpusat serta kompatibilitas penuh dengan API Hadoop Distributed File System (HDFS). OSS-HDFS juga mendukung Antarmuka Sistem Operasi Portabel (POSIX). Anda dapat menggunakan OSS-HDFS untuk mengelola data dalam skenario komputasi big data dan AI. Topik ini menjelaskan cara menggunakan Hadoop untuk mengakses OSS-HDFS dengan JindoSDK.

Prasyarat

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

Informasi latar belakang

Anda dapat menggunakan OSS-HDFS tanpa perlu memodifikasi aplikasi Hadoop dan Spark yang ada. Konfigurasi OSS-HDFS memungkinkan Anda mengakses dan mengelola data dengan cara serupa seperti pada HDFS. OSS-HDFS menawarkan keunggulan seperti ruang penyimpanan tak terbatas, skalabilitas elastis, serta keamanan, keandalan, dan ketersediaan tinggi.

Danau data berbasis cloud-native didukung oleh OSS-HDFS. Anda dapat menggunakan OSS-HDFS untuk mengelola eksabyte data atau ratusan juta objek dengan throughput terabyte. OSS-HDFS menyediakan fitur namespace datar dan hierarkis untuk memenuhi kebutuhan penyimpanan big data. Fitur namespace hierarkis memungkinkan pengelolaan objek dalam struktur direktori hierarkis. OSS-HDFS secara otomatis mengonversi struktur penyimpanan antara namespace datar dan hierarkis untuk membantu Anda mengelola metadata objek secara terpusat. Dibandingkan dengan arsitektur redundansi aktif-standby tradisional untuk NameNode di HDFS, OSS-HDFS mengimplementasikan mekanisme redundansi aktif-aktif multi-node untuk manajemen metadata, meningkatkan keandalan dan skalabilitas secara signifikan. Pengguna Hadoop dapat mengakses objek di OSS-HDFS tanpa perlu menyalin atau mengonversi format objek, meningkatkan kinerja pekerjaan dan mengurangi biaya pemeliharaan.

Untuk informasi lebih lanjut tentang skenario aplikasi, karakteristik, dan fitur OSS-HDFS, lihat Apa itu OSS-HDFS?

Langkah 1: Buat VPC dan buat instance ECS di VPC

  1. Buat virtual private cloud (VPC) yang memungkinkan akses ke OSS-HDFS melalui endpoint internal.

    1. Masuk ke Konsol VPC.

    2. Di halaman VPC, klik Create VPC.

      Saat membuat VPC, pastikan bahwa VPC berada di wilayah yang sama dengan bucket tempat Anda ingin mengaktifkan OSS-HDFS. Untuk informasi lebih lanjut tentang cara membuat VPC, lihat Buat VPC dan vSwitch.

  2. Buat instance Elastic Compute Service (ECS) di VPC.

    1. Klik ID VPC. Di halaman yang muncul, klik tab Resource Management.

    2. Di bagian Basic Cloud Resources Included, klik ikon 序号 di sebelah kanan Elastic Compute Service.

    3. Buat instance ECS dari halaman Instances.

      Saat membuat instance ECS, pastikan bahwa instance berada di wilayah yang sama dengan VPC. Untuk informasi lebih lanjut tentang cara membuat instance ECS, lihat Buat instance.

Langkah 2: Buat lingkungan runtime Hadoop

  1. Instal lingkungan Java.

    1. Di sebelah kanan instance ECS yang dibuat, klik Connect.

      Untuk informasi lebih lanjut tentang cara menghubungkan ke instance ECS, lihat Metode untuk menghubungkan ke instance ECS.

    2. Periksa versi Java Development Kit (JDK) yang ada.

      java -version
    3. Opsional. Jika versi JDK lebih awal dari 1.8.0, uninstall JDK. Jika versi JDK adalah 1.8.0 atau lebih baru, lewati langkah ini.

      rpm -qa | grep java | xargs rpm -e --nodeps
    4. Instal paket JDK.

      sudo yum install java-1.8.0-openjdk* -y
    5. Jalankan perintah berikut untuk membuka file konfigurasi:

      vim /etc/profile
    6. Tambahkan variabel lingkungan.

      Jika jalur saat ini JDK tidak ada, pergi ke jalur /usr/lib/jvm/ untuk menemukan file java-1.8.0-openjdk.

      export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
      export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
      export PATH=$PATH:$JAVA_HOME/bin
    7. Jalankan perintah berikut untuk memungkinkan variabel lingkungan berlaku:

      source /etc/profile
  2. Aktifkan layanan SSH.

    1. Instal layanan SSH.

      sudo yum install -y openssh-clients openssh-server
    2. Aktifkan layanan SSH.

      systemctl enable sshd && systemctl start sshd
    3. Buat kunci SSH dan tambahkan kunci ke daftar tepercaya.

      ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
      cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
      chmod 0600 ~/.ssh/authorized_keys
  3. Instal Hadoop.

    1. Unduh paket instalasi Hadoop.

      Dalam contoh ini, paket instalasi Hadoop 3.4.0 diunduh. Jika Anda ingin mengunduh versi berbeda, tentukan nama aktual paket instalasi. Untuk informasi lebih lanjut tentang cara memperoleh paket instalasi Hadoop, lihat Hadoop.

      wget https://downloads.apache.org/hadoop/common/hadoop-3.4.0/hadoop-3.4.0.tar.gz
    2. Ekstrak paket.

      tar xzf hadoop-3.4.0.tar.gz
    3. Pindahkan paket ke jalur yang sering diakses.

      mv hadoop-3.4.0 /usr/local/hadoop
    4. Konfigurasikan variabel lingkungan.

      1. Konfigurasikan variabel lingkungan Hadoop.

        vim /etc/profile
        export HADOOP_HOME=/usr/local/hadoop
        export PATH=$HADOOP_HOME/bin:$PATH
        source /etc/profile
      2. Perbarui HADOOP_HOME di file konfigurasi Hadoop.

        cd $HADOOP_HOME
        vim etc/hadoop/hadoop-env.sh
      3. Ganti ${JAVA_HOME} dengan jalur aktual.

        export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
    5. Opsional. Jika direktori tidak ada, jalankan perintah berikut untuk memungkinkan variabel lingkungan berlaku:

      cd $HADOOP_HOME/etc/hadoop
    6. Perbarui file konfigurasi core-site.xml dan hdfs-site.xml.

      • Perbarui file konfigurasi core-site.xml dan tambahkan atribut.

        <configuration>
          <!-- Tentukan alamat NameNode di HDFS. -->
          <property>
              <name>fs.defaultFS</name>
              <!-- Ganti nilai dengan hostname atau localhost. -->
              <value>hdfs://localhost:9000</value>
          </property>
        
          <!-- Ubah direktori sementara Hadoop ke direktori kustom. -->
          <property>
              <name>hadoop.tmp.dir</name>
              <!-- Jalankan perintah berikut untuk memberikan pengguna admin izin untuk mengelola direktori: sudo chown -R admin:admin /opt/module/hadoop-3.4.0-->
              <value>/opt/module/hadoop-3.4.0/data/tmp</value>
          </property>
        </configuration>
      • Perbarui file konfigurasi hdfs-site.xml dan tambahkan atribut.

        <configuration>
          <!-- Tentukan jumlah duplikat untuk HDFS. -->
          <property>
              <name>dfs.replication</name>
              <value>1</value>
          </property>
        </configuration>
    7. Format struktur file.

      hdfs namenode -format
    8. Mulai HDFS.

      Untuk memulai HDFS, Anda harus memulai NameNode, DataNode, dan secondary NameNode.

      1. Mulai HDFS.

        cd /usr/local/hadoop/
        sbin/start-dfs.sh
      2. Periksa kemajuan.

        jps

        Output berikut dikembalikan:

        hdfs

        Setelah Anda melakukan langkah-langkah sebelumnya, proses daemon dibuat. Anda dapat menggunakan browser untuk mengakses http://{ip}:9870 dan melihat antarmuka serta informasi detail tentang HDFS.

  4. Uji apakah Hadoop telah diinstal.

    Jalankan perintah hadoop version. Jika Hadoop telah diinstal, informasi versi akan dikembalikan.

Langkah 3: Alihkan HDFS lokal Anda ke OSS-HDFS

  1. Unduh paket JAR JindoSDK.

    1. Alihkan ke direktori tujuan.

      cd /usr/lib/
    2. Unduh versi terbaru paket JAR JindoSDK. Untuk informasi lebih lanjut, kunjungi GitHub.

    3. Ekstrak paket JAR JindoSDK.

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

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

  2. Konfigurasikan variabel lingkungan.

    1. Ubah file konfigurasi.

      vim /etc/profile
    2. Konfigurasikan variabel lingkungan.

      export JINDOSDK_HOME=/usr/lib/jindosdk-x.x.x-linux
    3. Konfigurasikan HADOOP_CLASSPATH.

      export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${JINDOSDK_HOME}/lib/*
    4. Jalankan perintah berikut untuk memungkinkan variabel lingkungan berlaku:

      . /etc/profile

  3. Konfigurasikan kelas implementasi DLS JindoSDK dan tentukan pasangan AccessKey yang ingin Anda gunakan untuk mengakses bucket.

    1. Konfigurasikan kelas implementasi DLS JindoSDK di file core-site.xml Hadoop.

      <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 dari bucket tempat OSS-HDFS diaktifkan di file core-site.xml Hadoop terlebih dahulu.

      <configuration>
          <property>
              <name>fs.oss.accessKeyId</name>
              <value>xxx</value>
          </property>
      
          <property>
              <name>fs.oss.accessKeySecret</name>
              <value>xxx</value>
          </property>
      </configuration>
  4. Konfigurasikan titik akhir OSS-HDFS.

    Anda harus mengonfigurasi titik akhir OSS-HDFS saat menggunakan OSS-HDFS untuk mengakses bucket di OSS. Kami merekomendasikan Anda mengonfigurasi jalur yang digunakan untuk mengakses OSS-HDFS dalam format oss://<Bucket>.<Endpoint>/<Object>. Contoh: oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt. Setelah Anda mengonfigurasi jalur akses, JindoSDK memanggil operasi OSS-HDFS yang sesuai berdasarkan titik akhir yang ditentukan di jalur akses.

    Anda juga dapat mengonfigurasi titik akhir OSS-HDFS menggunakan metode lain. Untuk informasi lebih lanjut, lihat Lampiran 1: Metode lain yang digunakan untuk mengonfigurasi titik akhir OSS-HDFS.

Langkah 4: Akses OSS-HDFS

  • Buat direktori

    Jalankan perintah berikut untuk membuat direktori bernama dir/ di bucket bernama examplebucket:

    hdfs dfs -mkdir oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/
  • Unggah objek

    Jalankan perintah berikut untuk mengunggah objek bernama examplefile.txt ke bucket bernama examplebucket:

    hdfs dfs -put /root/workspace/examplefile.txt oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/examplefile.txt
  • Periksa direktori

    Jalankan perintah berikut untuk memeriksa direktori bernama dir/ di bucket bernama examplebucket:

    hdfs dfs -ls oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/
  • Periksa objek

    Jalankan perintah berikut untuk memeriksa objek bernama examplefile.txt di bucket bernama examplebucket:

    hdfs dfs -ls oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/examplefile.txt
  • Periksa isi objek

    Jalankan perintah berikut untuk memeriksa isi objek bernama examplefile.txt di bucket bernama examplebucket.

    Penting

    Setelah Anda menjalankan perintah berikut, isi objek yang diperiksa ditampilkan di layar dalam teks biasa. Jika isi tersebut dikodekan, gunakan API Java HDFS untuk mendekode objek dan membaca isi objek.

    hdfs dfs -cat oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/examplefile.txt
  • Salin objek atau direktori

    Jalankan perintah berikut untuk menyalin direktori root bernama subdir1 ke direktori bernama subdir2 di bucket bernama examplebucket. Selain itu, posisi direktori root subdir1, objek di direktori root subdir1, serta struktur dan isi subdirektori di direktori root subdir1 tetap tidak berubah.

    hdfs dfs -cp oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/subdir1/  oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/subdir2/subdir1/
  • Pindahkan objek atau direktori

    Jalankan perintah berikut untuk memindahkan direktori root bernama srcdir dan objek serta subdirektori di direktori root tersebut ke direktori root lain bernama destdir:

    hdfs dfs -mv oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/srcdir/  oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/destdir/
  • Unduh objek

    Jalankan perintah berikut untuk mengunduh objek bernama exampleobject.txt dari bucket bernama examplebucket ke direktori bernama /tmp di direktori root komputer Anda:

    hdfs dfs -get oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt  /tmp/
  • Hapus objek atau direktori

    Jalankan perintah berikut untuk menghapus direktori bernama destfolder/ dan semua objek di direktori tersebut dari bucket bernama examplebucket:

    hdfs dfs -rm oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/destfolder/