Library Java open source konektor Cloud Storage memungkinkan Anda menjalankan tugas Apache Hadoop atau Apache Spark langsung pada data di Cloud Storage.
Manfaat konektor Cloud Storage
- Akses data langsung: Simpan data Anda di Cloud Storage dan akses data tersebut secara langsung. Anda tidak perlu mentransfernya ke HDFS terlebih dahulu.
- Kompatibilitas HDFS: Anda dapat mengakses data di
Cloud Storage menggunakan prefiks
gs://
, bukanhdfs://
. - Interoperabilitas: Menyimpan data di Cloud Storage memungkinkan interoperabilitas yang lancar antara Spark, Hadoop, dan layanan Google.
- Aksesibilitas data: Saat Anda mematikan cluster Hadoop, tidak seperti HDFS, Anda akan terus memiliki akses ke data Anda di Cloud Storage.
- Ketersediaan data tinggi: Data yang disimpan di Cloud Storage sangat tersedia dan direplikasi secara global tanpa kehilangan performa.
- Tidak ada overhead pengelolaan penyimpanan: Tidak seperti HDFS, Cloud Storage tidak memerlukan pemeliharaan rutin, seperti memeriksa sistem file, atau mengupgrade atau melakukan rollback ke versi sistem file sebelumnya.
- Startup cepat: Di HDFS, tugas MapReduce tidak dapat dimulai hingga
NameNode
keluar dari mode aman, sebuah proses yang dapat memakan waktu dari beberapa detik hingga beberapa menit, bergantung pada ukuran dan status data Anda. Dengan Cloud Storage, Anda dapat memulai tugas segera setelah node tugas dimulai, yang menghasilkan penghematan biaya yang signifikan dari waktu ke waktu.
Penyiapan konektor di cluster Dataproc
Konektor Cloud Storage diinstal secara default di semua node cluster Dataproc di direktori /usr/local/share/google/dataproc/lib/
. Subbagian berikut menjelaskan langkah-langkah yang dapat Anda lakukan untuk menyelesaikan penyiapan konektor di cluster Dataproc.
Akun layanan VM
Saat menjalankan konektor di node cluster Dataproc dan VM Compute Engine lainnya, properti google.cloud.auth.service.account.enable
disetel ke false
secara default, yang berarti Anda tidak perlu mengonfigurasi kredensial akun layanan VM untuk konektor—kredensial akun layanan VM disediakan oleh server metadata VM.
Akun layanan VM Dataproc harus memiliki izin untuk mengakses bucket Cloud Storage Anda.
Versi konektor yang dipilih pengguna
Versi konektor Cloud Storage default yang digunakan dalam image terbaru yang diinstal di cluster Dataproc tercantum di halaman versi image. Jika aplikasi Anda bergantung pada versi konektor non-default yang di-deploy di cluster, Anda dapat melakukan salah satu tindakan berikut untuk menggunakan versi konektor yang dipilih:
- Buat cluster dengan flag
--metadata=GCS_CONNECTOR_VERSION=x.y.z
, yang memperbarui konektor yang digunakan oleh aplikasi yang berjalan di cluster ke versi konektor yang ditentukan. - Sertakan dan pindahkan class konektor dan dependensi konektor untuk versi yang Anda gunakan ke jar aplikasi Anda.Pemindahan diperlukan untuk menghindari konflik antara versi konektor yang di-deploy dan versi konektor default yang diinstal pada cluster Dataproc. Lihat juga contoh pemindahan dependensi Maven.
Penyiapan konektor di cluster non-Dataproc
Anda dapat melakukan langkah-langkah berikut untuk menyiapkan konektor Cloud Storage di cluster non-Dataproc, seperti cluster Apache Hadoop atau Spark yang Anda gunakan untuk memindahkan data HDFS lokal ke Cloud Storage.
Download konektor.
- Untuk mendownload konektor Cloud Storage:
- Untuk menggunakan versi
latest
yang berada di bucket Cloud Storage (penggunaan versilatest
tidak direkomendasikan untuk aplikasi produksi): - Untuk menggunakan versi tertentu
dari bucket Cloud Storage dengan mengganti versi konektor Hadoop dan Cloud Storage dalam
pola nama
gcs-connector-HADOOP_VERSION-CONNECTOR_VERSION.jar
, misalnya,gs://hadoop-lib/gcs/gcs-connector-hadoop2-2.1.1.jar
. - Untuk menggunakan versi tertentu
dari
repositori Apache Maven,
download JAR yang di-shade yang memiliki akhiran
-shaded
dalam namanya.
- Untuk menggunakan versi
- Untuk mendownload konektor Cloud Storage:
Instal konektor.
Ikuti petunjuk GitHub untuk menginstal, mengonfigurasi, dan menguji konektor Cloud Storage.
Penggunaan konektor
Anda dapat menggunakan konektor untuk mengakses data Cloud Storage dengan cara berikut:
- Dalam aplikasi Spark, PySpark, atau Hadoop dengan awalan
gs://
- Di shell hadoop dengan
hadoop fs -ls gs://bucket/dir/file
- Di Browser Cloud Storage Di konsol Google Cloud
- Menggunakan perintah Google Cloud SDK, seperti:
Penggunaan Java
Konektor Cloud Storage memerlukan Java 8.
Berikut adalah contoh bagian pengelolaan dependensi Maven POM untuk konektor Cloud Storage. Untuk informasi tambahan, lihat Pengelolaan Dependensi.
<dependency> <groupId>com.google.cloud.bigdataoss</groupId> <artifactId>gcs-connector</artifactId> <version>hadoopX-X.X.XCONNECTOR VERSION</version> <scope>provided</scope> </dependency>
Untuk versi yang diberi bayangan:
<dependency> <groupId>com.google.cloud.bigdataoss</groupId> <artifactId>gcs-connector</artifactId> <version>hadoopX-X.X.XCONNECTOR VERSION</version> <scope>provided</scope> <classifier>shaded</classifier> </dependency>
Dukungan konektor
Konektor Cloud Storage didukung oleh Google Cloud untuk digunakan dengan produk dan kasus penggunaanGoogle Cloud . Jika digunakan dengan Dataproc, tingkat dukungannya sama dengan Dataproc. Untuk mengetahui informasi selengkapnya, lihat Mendapatkan dukungan.
Menghubungkan ke Cloud Storage menggunakan gRPC
Secara default, konektor Cloud Storage di Dataproc menggunakan Cloud Storage JSON API. Bagian ini menunjukkan cara mengaktifkan konektor Cloud Storage untuk menggunakan gRPC.
Pertimbangan penggunaan
Penggunaan konektor Cloud Storage dengan gRPC mencakup pertimbangan berikut:
- Lokasi bucket regional: gRPC dapat meningkatkan latensi baca hanya jika VM Compute Engine dan bucket Cloud Storage berada di region Compute Engine yang sama.
- Pekerjaan yang intensif baca: gRPC dapat menawarkan latensi baca yang lebih baik untuk pembacaan yang berjalan lama, dan dapat membantu beban kerja yang intensif baca. Tidak direkomendasikan untuk aplikasi yang membuat saluran gRPC, menjalankan komputasi singkat, lalu menutup saluran.
- Permintaan yang tidak diautentikasi: gRPC tidak mendukung permintaan yang tidak diautentikasi.
Persyaratan
Persyaratan berikut berlaku saat menggunakan gRPC dengan konektor Cloud Storage:
Jaringan VPC cluster Dataproc Anda harus mendukung konektivitas langsung. Artinya, rute dan aturan firewall jaringan harus mengizinkan traffic keluar untuk menjangkau
34.126.0.0/18
dan2001:4860:8040::/42
.- Jika cluster Dataproc Anda menggunakan jaringan IPv6, Anda harus menyiapkan subnet IPv6 untuk instance VM. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi IPv6 untuk instance dan template instance.
Saat membuat cluster Dataproc, Anda harus menggunakan konektor Cloud Storage versi
2.2.23
atau yang lebih baru dengan versi image2.1.56+
atau konektor Cloud Storage versi v3.0.0 atau yang lebih baru dengan versi image 2.2.0+. Versi konektor Cloud Storage yang diinstal pada setiap versi image Dataproc tercantum di halaman versi image Dataproc.- Jika Anda membuat dan menggunakan
cluster virtual Dataproc di GKE
untuk permintaan gRPC Cloud Storage, sebaiknya gunakan GKE versi
1.28.5-gke.1199000
dengangke-metadata-server 0.4.285
. Kombinasi ini mendukung konektivitas langsung.
- Jika Anda membuat dan menggunakan
cluster virtual Dataproc di GKE
untuk permintaan gRPC Cloud Storage, sebaiknya gunakan GKE versi
Anda atau administrator organisasi Anda harus memberikan peran Identity and Access Management yang mencakup izin yang diperlukan untuk menyiapkan dan membuat permintaan gRPC ke konektor Cloud Storage. Peran ini dapat mencakup hal berikut:
- Peran pengguna: Peran Editor Dataproc diberikan kepada pengguna untuk mengizinkan mereka membuat cluster dan mengirimkan tugas
- Peran akun layanan: Peran Pengguna Objek Storage yang diberikan kepada akun layanan VM Dataproc untuk mengizinkan aplikasi yang berjalan di VM cluster melihat, membaca, membuat, dan menulis objek Cloud Storage.
Mengaktifkan gRPC di konektor Cloud Storage
Anda dapat mengaktifkan gRPC di konektor Cloud Storage pada tingkat cluster atau tugas. Setelah diaktifkan di cluster, permintaan baca konektor Cloud Storage menggunakan gRPC. Jika diaktifkan pada tugas, bukan di tingkat cluster, permintaan baca konektor Cloud Storage menggunakan gRPC hanya untuk tugas tersebut.
Mengaktifkan cluster
Untuk mengaktifkan gRPC di konektor Cloud Storage pada tingkat cluster,
tetapkan properti core:fs.gs.client.type=STORAGE_CLIENT
saat Anda
membuat cluster Dataproc.
Setelah gRPC diaktifkan di tingkat cluster, permintaan baca konektor Cloud Storage yang dibuat oleh tugas yang berjalan di cluster akan menggunakan gRPC.
Contoh gcloud CLI:
gcloud dataproc clusters create CLUSTER_NAME \ --project=PROJECT_ID \ --region=REGION \ --properties=core:fs.gs.client.type=STORAGE_CLIENT
Ganti kode berikut:
- CLUSTER_NAME: Tentukan nama untuk cluster Anda.
- PROJECT_NAME: Project ID project tempat cluster berada. Project ID tercantum di bagian Project info di Google Cloud Dasbor konsol.
- REGION: Tentukan region Compute Engine tempat cluster akan berada.
Mengaktifkan tugas
Untuk mengaktifkan gRPC di konektor Cloud Storage untuk tugas tertentu, sertakan --properties=spark.hadoop.fs.gs.client.type=STORAGE_CLIENT
saat Anda mengirimkan tugas.
Contoh: Jalankan tugas pada cluster yang ada yang menggunakan gRPC untuk membaca dari Cloud Storage.
Buat skrip PySpark
/tmp/line-count.py
lokal yang menggunakan gRPC untuk membaca file teks Cloud Storage dan menampilkan jumlah baris dalam file.cat <<EOF >"/tmp/line-count.py" #!/usr/bin/python import sys from pyspark.sql import SparkSession path = sys.argv[1] spark = SparkSession.builder.getOrCreate() rdd = spark.read.text(path) lines_counter = rdd.count() print("There are {} lines in file: {}".format(lines_counter,path)) EOF
Buat file teks
/tmp/line-count-sample.txt
lokal.cat <<EOF >"/tmp/line-count-sample.txt" Line 1 Line 2 line 3 EOF
Upload
/tmp/line-count.py
dan/tmp/line-count-sample.txt
lokal ke bucket Anda di Cloud Storage.gcloud storage cp /tmp/line-count* gs://BUCKET
Jalankan tugas
line-count.py
di cluster Anda. Setel--properties=spark.hadoop.fs.gs.client.type=STORAGE_CLIENT
ke aktifkan gRPC untuk permintaan baca konektor Cloud Storage.gcloud dataproc jobs submit pyspark gs://BUCKET/line-count.py \ --cluster=CLUSTER_NAME \ --project=PROJECT_ID \ --region=REGION \ --properties=spark.hadoop.fs.gs.client.type=STORAGE_CLIENT \ -- gs://BUCKET/line-count-sample.txt
Ganti kode berikut:
- CLUSTER_NAME: Nama cluster yang ada.
- PROJECT_NAME: Project ID Anda. Project ID tercantum di bagian Project info di Google Cloud Dasbor konsol.
- REGION: Region Compute Engine tempat cluster berada.
- BUCKET: Bucket Cloud Storage Anda.
Membuat metrik sisi klien gRPC
Anda dapat mengonfigurasi konektor Cloud Storage untuk menghasilkan metrik terkait gRPC di Cloud Monitoring. Metrik terkait gRPC dapat membantu Anda melakukan hal berikut:
- Memantau dan mengoptimalkan performa permintaan gRPC ke Cloud Storage
- Memecahkan masalah dan melakukan debug masalah
- Mendapatkan insight tentang penggunaan dan perilaku aplikasi
Untuk mengetahui informasi tentang cara mengonfigurasi konektor Cloud Storage untuk menghasilkan metrik terkait gRPC, lihat Menggunakan metrik sisi klien gRPC.
Resource
- Lihat properti konfigurasi konektor GitHub Cloud Storage.
- Lihat Menghubungkan ke Cloud Storage menggunakan gRPC untuk menggunakan konektor Cloud Storage dengan library klien, VPC Service Controls, dan skenario lainnya.
- Pelajari Cloud Storage lebih lanjut.
- Lihat Menggunakan konektor Cloud Storage dengan Apache Spark.
- Pahami sistem file Apache Hadoop .
- Lihat referensi Javadoc.