Menggunakan bucket yang mengaktifkan namespace hierarkis untuk beban kerja Hadoop

Halaman ini menjelaskan cara menggunakan bucket yang mengaktifkan ruang nama hierarkis untuk workload Hadoop.

Ringkasan

Saat menggunakan bucket Cloud Storage dengan namespace hierarkis, Anda dapat mengonfigurasi konektor Cloud Storage untuk menggunakan operasi ganti nama folder untuk beban kerja seperti Hadoop, Spark, Hive.

Dalam bucket tanpa namespace hierarkis, operasi penggantian nama di Hadoop, Spark, dan Hive melibatkan beberapa tugas penyalinan dan penghapusan objek, sehingga memengaruhi performa dan konsistensi. Mengganti nama folder menggunakan konektor Cloud Storage mengoptimalkan performa dan memastikan konsistensi, saat menangani folder dengan sejumlah besar objek.

Sebelum memulai

Untuk menggunakan fitur bucket ruang nama hierarkis, gunakan versi konektor Cloud Storage berikut:

  • 2.2.23 atau yang lebih baru (jika Anda menggunakan versi 2.x.x)
  • 3.0.1 atau yang lebih baru (jika Anda menggunakan versi 3.x.x)

Versi konektor yang lebih lama (3.0.0 dan yang lebih lama dari 2.2.23) memiliki batasan. Untuk mengetahui informasi selengkapnya tentang batasan, lihat Kompatibilitas dengan konektor Cloud Storage versi 3.0.0 atau versi yang lebih lama dari 2.2.23.

Mengaktifkan konektor Cloud Storage di cluster

Bagian ini menjelaskan cara mengaktifkan konektor Cloud Storage di cluster Dataproc dan cluster Hadoop yang dikelola sendiri.

Dataproc

Anda dapat menggunakan Google Cloud CLI untuk membuat cluster Dataproc dan mengaktifkan konektor Cloud Storage untuk melakukan operasi folder.

  1. Buat cluster Dataproc menggunakan perintah berikut:

      gcloud dataproc clusters create CLUSTER_NAME
      --properties=core:fs.gs.hierarchical.namespace.folders.enable=true,
      core:fs.gs.http.read-timeout=30000
      

    Dengan:

    • CLUSTER_NAME adalah nama cluster. Misalnya, my-cluster
    • fs.gs.hierarchical.namespace.folders.enable digunakan untuk mengaktifkan namespace hierarkis pada bucket.
    • fs.gs.http.read-timeout adalah waktu maksimum yang diizinkan, dalam milidetik, untuk membaca data dari koneksi yang sudah dibuat. Setelan ini bersifat opsional.

Hadoop yang dikelola sendiri

Anda dapat mengaktifkan konektor Cloud Storage di cluster Hadoop yang dikelola sendiri untuk melakukan operasi folder.

  1. Tambahkan kode berikut ke file konfigurasi core-site.xml:

        <property>
          <name>fs.gs.hierarchical.namespace.folders.enable</name>
          <value>true</value>
        </property>
        <property>
          <name>fs.gs.http.read-timeout</name>
          <value>30000</value>
        </property>
      

    Dengan:

    • fs.gs.hierarchical.namespace.folders.enable digunakan untuk mengaktifkan namespace hierarkis pada bucket
    • fs.gs.http.read-timeout adalah waktu maksimum yang diizinkan, dalam milidetik, untuk membaca data dari koneksi yang sudah dibuat. Setelan ini bersifat opsional.

Kompatibilitas dengan konektor Cloud Storage versi 3.0.0 atau versi yang lebih lama dari 2.2.23

Menggunakan konektor Cloud Storage versi 3.0.0 atau versi yang lebih lama dari 2.2.23 atau menonaktifkan operasi folder untuk namespace hierarkis dapat menyebabkan batasan berikut:

  • Penggantian nama folder yang tidak efisien: Operasi penggantian nama folder di Hadoop terjadi menggunakan operasi salin dan hapus tingkat objek, yang lebih lambat dan kurang efisien daripada operasi rename folder khusus.

  • Penumpukan folder kosong: Folder tidak dihapus secara otomatis, sehingga menyebabkan penumpukan folder kosong di bucket Anda. Penumpukan folder kosong dapat menimbulkan dampak berikut:

    • Meningkatkan biaya penyimpanan jika tidak dihapus secara eksplisit.
    • Memperlambat operasi daftar dan meningkatkan risiko waktu tunggu operasi daftar habis.

  • Masalah kompatibilitas: Mencampur penggunaan versi konektor yang lebih lama dan lebih baru, atau mengaktifkan dan menonaktifkan operasi folder, dapat menyebabkan masalah kompatibilitas saat mengganti nama folder. Pertimbangkan skenario berikut yang menggunakan kombinasi versi konektor:

    1. Gunakan konektor Cloud Storage versi yang lebih lama dari 2.2.23 untuk melakukan tugas berikut:

      1. Tulis objek di bawah folder foo/.
      2. Ganti nama folder foo/ menjadi bar/. Operasi penggantian nama akan menyalin dan menghapus objek di foo/, tetapi tidak menghapus folder foo/ yang kosong.
    2. Gunakan konektor Cloud Storage versi 2.2.23 dengan setelan operasi folder diaktifkan untuk mengganti nama folder bar/ menjadi foo/.

    Konektor versi 2.2.23, dengan operasi folder diaktifkan, mendeteksi folder foo/ yang ada, sehingga menyebabkan operasi penggantian nama gagal. Versi konektor yang lebih lama tidak menghapus folder foo/ karena operasi folder dinonaktifkan.

Langkah berikutnya

Coba sendiri

Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa Cloud Storage dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.

Coba Cloud Storage gratis