Menggunakan bucket dengan namespace dengan hierarki hierarki untuk workload Hadoop

Halaman ini menjelaskan cara menggunakan bucket dengan namespace hierarki untuk workload Hadoop.

Ringkasan

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

Di 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 akan mengoptimalkan performa dan memastikan konsistensi, saat menangani folder dengan objek dalam jumlah besar.

Dataproc

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

  1. Instal atau update konektor Cloud Storage versi 2.2.23 atau yang lebih baru (tidak termasuk versi 3.0.0).

  2. 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 keterangan:

    • 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 dibuat. Ini adalah setelan opsional.

Hadoop yang Dikelola Sendiri

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

  1. Instal atau update konektor Cloud Storage versi 2.2.23 atau yang lebih baru (tidak termasuk versi 3.0.0).

  2. 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 keterangan:

    • 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 dibuat. Ini adalah setelan opsional.

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

Penggunaan konektor Cloud Storage versi 3.0.0 atau versi yang lebih lama dari versi 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 penyalinan dan penghapusan tingkat objek, yang lebih lambat dan kurang efisien dibandingkan dengan operasi rename folder khusus.

  • Akumulasi folder kosong: Resource folder tidak dihapus secara otomatis, yang menyebabkan akumulasi folder kosong di bucket Anda. Akumulasi folder kosong dapat mengakibatkan dampak berikut:

    • Meningkatkan biaya penyimpanan jika tidak dihapus secara eksplisit.
    • Perlambat operasi daftar dan tingkatkan risiko waktu tunggu operasi daftar.

  • Masalah kompatibilitas: Mencampur penggunaan konektor versi lama dan yang 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-tugas berikut:

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

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

Langkah selanjutnya

Cobalah 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