Arsitektur untuk menghubungkan software visualisasi ke Hadoop di Google Cloud

Last reviewed 2024-04-17 UTC

Dokumen ini ditujukan untuk operator dan admin IT yang ingin menyiapkan akses data yang aman untuk analis data menggunakan alat business intelligence (BI) seperti Tableau dan Looker. Dokumen ini tidak memuat panduan tentang cara menggunakan alat BI atau berinteraksi dengan Dataproc API.

Dokumen ini adalah bagian pertama dari rangkaian panduan yang membantu Anda membangun solusi keseluruhan untuk memberikan akses data yang aman kepada analis data menggunakan alat BI. Dokumen ini menjelaskan konsep berikut:

  • Arsitektur yang diusulkan.
  • Tampilan secara umum dari batas komponen, interaksi, dan jaringan dalam arsitektur.
  • Tampilan secara umum dari autentikasi dan otorisasi dalam arsitektur.

Bagian kedua dari rangkaian panduan ini, Menghubungkan software visualisasi ke Hadoop di Google Cloud, menunjukkan cara menyiapkan arsitektur di Google Cloud.

Arsitektur

Diagram berikut menampilkan arsitektur dan alur peristiwa yang dijelaskan dalam dokumen ini. Untuk mengetahui informasi selengkapnya tentang produk yang digunakan dalam arsitektur ini, lihat Komponen arsitektur.

Alur peristiwa dalam arsitektur.

  1. Aplikasi klien terhubung melalui Java Database Connectivity (JDBC) ke titik entri tunggal pada cluster Dataproc. Titik entri disediakan oleh Apache Knox, yang diinstal pada node master cluster. Komunikasi dengan Apache Knox diamankan oleh TLS.
  2. Apache Knox mendelegasikan otentikasi melalui penyedia autentikasi ke sistem seperti direktori LDAP.
  3. Setelah autentikasi, Apache Knox akan merutekan permintaan pengguna ke satu atau beberapa cluster backend. Anda dapat menentukan rute dan konfigurasi sebagai topologi kustom.
  4. Layanan pemrosesan data seperti Apache Hive, mendengarkan cluster backend yang dipilih dan menerima permintaan pemrosesan data tersebut.
  5. Apache Ranger menangkap permintaan dan menentukan apakah pemrosesan harus dilanjutkan, tergantung pada apakah pengguna memiliki otorisasi yang valid.
  6. Jika validasi berhasil, layanan pemrosesan data akan menganalisis permintaan dan menampilkan hasilnya.

Komponen arsitektur

Arsitektur terdiri dari komponen berikut.

  • Platform Hadoop terkelola:
    • Dataproc. Dataproc adalah layanan Apache Spark yang dikelola oleh Google Cloud, sebuah layanan Apache Hadoop yang dapat Anda gunakan untuk memanfaatkan alat data open source untuk batch processing, pembuatan kueri, streaming, dan machine learning. Dataproc adalah platform yang melandasi solusi yang dijelaskan dalam dokumen ini.
  • Autentikasi dan otorisasi pengguna:
    • Apache Knox. Apache Knox bertindak sebagai titik akses HTTP tunggal untuk semua layanan yang mendasarinya di cluster Hadoop. Apache Knox dirancang sebagai reverse proxy dengan penyedia yang dapat dicocokkan untuk autentikasi, otorisasi, audit, and layanan lainnya. Klien mengirim permintaan ke Knox dan berdasarkan URL dan parameter permintaan, Knox merutekan permintaan ke layanan Hadoop yang sesuai. Karena Knox adalah titik entri yang menangani permintaan klien secara transparan dan menyembunyikan kompleksitas, Knox berada di pusat arsitektur.
    • Apache Ranger. Apache Ranger memberikan otorisasi terperinci bagi pengguna untuk melakukan tindakan tertentu pada layanan Hadoop. Tindakan ini juga mengaudit akses pengguna dan menerapkan tindakan administratif.
  • Mesin pemrosesan:
    • Apache Hive. Apache Hive adalah software data warehouse yang memungkinkan akses dan pengelolaan set data besar yang berada dalam penyimpanan terdistribusi menggunakan SQL. Apache Hive mengurai kueri SQL, menjalankan analisis semantik, dan membuat directed acyclic graph (DAG) tahapan untuk dijalankan mesin pemrosesan. Dalam arsitektur yang ditampilkan dalam dokumen ini, Hive bertindak sebagai titik terjemahan di antara permintaan pengguna. Hive juga dapat bertindak sebagai salah satu dari beberapa mesin pemrosesan. Apache Hive ada di seluruh ekosistem Hadoop dan membuka pintu bagi praktisi yang sudah familier SQL standar untuk melakukan analisis data.
    • Apache Tez. Apache Tez adalah mesin pemrosesan yang bertanggung jawab untuk menjalankan DAG yang disiapkan oleh Hive dan menampilkan hasilnya.
    • Apache Spark. Apache Spark adalah mesin analisis terpadu untuk pemrosesan data berskala besar yang mendukung pelaksanaan DAG. Arsitektur ini menampilkan komponen Spark SQL dari Apache Spark untuk menunjukkan fleksibilitas pendekatan yang disajikan dalam dokumen ini. Salah satu batasannya adalah Spark SQL tidak memiliki dukungan plugin Ranger resmi. Karena alasan ini, otorisasi harus dilakukan melalui ACL yang tetap di Apache Knox, bukan menggunakan otorisasi terperinci yang diberikan Ranger.

Ringkasan komponen

Di bagian berikut ini, Anda akan mempelajari setiap komponen dengan lebih mendetail. Anda juga mempelajari bagaimana komponen-komponen saling berinteraksi satu sama lain.

Aplikasi klien

Aplikasi klien menyertakan alat yang dapat mengirim permintaan ke endpoint REST HTTPS, tetapi tidak selalu mendukung Dataproc Jobs API. Alat BI seperti Tableau dan Looker memiliki driver HiveServer2 (HS2) dan Spark SQL JDBC yang dapat mengirim permintaan melalui HTTP.

Alur permintaan dari Tableau, Looker, dan Beeline ke endpoint REST HTTPS.

Dokumen ini mengasumsikan bahwa aplikasi klien berada di luar Google Cloud dan dijalankan di lingkungan seperti workstation analis, infrastruktur lokal, atau di cloud lain. Jadi, komunikasi antara aplikasi klien dan Apache Knox harus diamankan dengan sertifikat SSL/TLS yang ditandatangani CA atau ditandatangani sendiri.

Titik entri dan autentikasi pengguna

Cluster proxy adalah satu atau beberapa cluster Dataproc berumur panjang yang menghosting Gateway Apache Knox.

Cluster proxy.

Apache Knox bertindak sebagai titik masuk tunggal untuk permintaan klien. Knox diinstal pada node master cluster proxy. Knox melakukan penghentian SSL, mendelegasikan autentikasi pengguna, dan meneruskan permintaan ke salah satu layanan backend.

Di Knox, setiap layanan backend dikonfigurasi pada apa yang disebut sebagai topologi. Deskripsi topologi menentukan tindakan dan izin berikut:

  • Cara otentikasi didelegasikan untuk layanan.
  • URI yang menjadi tujuan penerusan permintaan oleh layanan backend.
  • Daftar kontrol akses (ACL) otorisasi per-layanan sederhana.

Knox memungkinkan Anda mengintegrasikan autentikasi dengan perusahaan dan sistem pengelolaan cloud identity. Untuk mengonfigurasi autentikasi pengguna untuk setiap topologi, Anda dapat menggunakan penyedia autentikasi. Knox menggunakan Apache Shiro untuk melakukan autentikasi secara default terhadap demonstrasi lokal server LDAP ApacheDS.

Atau, Anda dapat memilih Knox untuk menggunakan Kerberos. Dalam diagram sebelumnya, sebagai contoh, Anda dapat melihat server Active Directory yang dihosting di Google Cloud di luar cluster.

Untuk informasi tentang cara menghubungkan Knox ke layanan autentikasi perusahaan, seperti server ApacheDS eksternal atau Microsoft Active Directory (AD), lihat panduan pengguna Apache Knox dan dokumentasi Managed Active Directory dan Federated AD Google Cloud.

Untuk kasus penggunaan dalam dokumen ini, selama Apache Knox bertindak sebagai pemilah komunikasi tunggal untuk cluster proxy dan backend, Anda tidak perlu menggunakan Kerberos.

Mesin pemrosesan

Cluster backend adalah cluster Dataproc yang menghosting layanan yang memproses permintaan pengguna. Cluster Dataproc dapat otomatis menskalakan jumlah pekerja untuk memenuhi permintaan dari tim analis Anda tanpa konfigurasi ulang manual.

Cluster backend Dataproc.

Sebaiknya gunakan cluster Dataproc berumur panjang di backend. Cluster Dataproc berumur panjang memungkinkan sistem untuk melayani permintaan dari analis data tanpa gangguan. Atau, jika cluster hanya perlu melayani permintaan untuk waktu yang singkat, Anda dapat menggunakan cluster khusus tugas, yang juga dikenal sebagai cluster efemeral. Cluster efemeral juga dapat menghemat biaya lebih banyak dibandingkan cluster berumur panjang.

Jika menggunakan cluster efemeral, pastikan Anda membuat ulang cluster di zona dan nama yang sama agar tidak mengubah konfigurasi topologi. Dengan menggunakan zona dan nama yang sama, Knox dapat merutekan permintaan secara transparan menggunakan nama DNS internal node master saat Anda membuat ulang cluster efemeral.

HS2 bertanggung jawab untuk melayani kueri pengguna yang dibuat pada Apache Hive. HS2 dapat dikonfigurasi untuk menggunakan berbagai mesin eksekusi seperti mesin Hadoop MapReduce, Apache Tez, dan Apache Spark. Dalam dokumen ini, HS2 dikonfigurasi untuk menggunakan mesin Apache Tez.

Spark SQL adalah modul Apache Spark yang menyertakan antarmuka JDBC/ODBC untuk menjalankan kueri SQL di Apache Spark. Dalam diagram arsitektur sebelumnya, Spark SQL ditampilkan sebagai opsi alternatif untuk melayani kueri pengguna.

Mesin pemrosesan, baik Apache Tez atau Apache Spark, memanggil YARN Resource Manager untuk menjalankan DAG mesin pada mesin pekerja cluster. Terakhir, mesin pekerja cluster mengakses data. Untuk menyimpan dan mengakses data dalam cluster Dataproc, gunakan konektor Cloud Storage, bukan Hadoop Distributed File System (HDFS). Untuk mengetahui informasi selengkapnya tentang manfaat menggunakan konektor Cloud Storage, lihat dokumentasi konektor Cloud Storage.

Diagram arsitektur sebelumnya menunjukkan satu topologi Apache Knox yang meneruskan permintaan ke Apache Hive, dan topologi lain yang meneruskan permintaan ke Spark SQL. Diagram tersebut juga menunjukkan topologi lain yang dapat meneruskan permintaan ke layanan pada cluster backend yang sama atau berbeda. Layanan backend dapat memproses set data yang berbeda. Misalnya, satu instance Hive dapat menawarkan akses ke informasi identitas pribadi (PII) untuk sekumpulan pengguna yang dibatasi, sementara instance Hive lainnya dapat menawarkan akses ke data non-PII untuk penggunaan yang lebih luas.

Otorisasi pengguna

Apache Ranger dapat diinstal di cluster backend untuk memberikan otorisasi yang terperinci untuk layanan Hadoop. Dalam arsitekturnya, plugin Ranger untuk Hive menangkap permintaan pengguna dan menentukan apakah pengguna diizinkan untuk melakukan tindakan atas data Hive berdasarkan kebijakan Ranger.

Otorisasi terperinci Ranger.

Sebagai administrator, Anda dapat menentukan kebijakan Ranger menggunakan halaman Admin Ranger. Sebaiknya konfigurasikan Ranger untuk menyimpan kebijakan ini pada database Cloud SQL eksternal. Mengeksternalkan kebijakan memiliki dua keuntungan:

  • Membuat kebijakan persisten jika ada cluster backend yang dihapus.
  • Memungkinkan kebijakan dikelola secara terpusat untuk semua grup atau untuk grup kustom cluster backend.

Untuk menetapkan kebijakan Ranger ke identitas pengguna atau grup yang benar, Anda harus mengonfigurasi Ranger untuk menyinkronkan identitas dari directory yang sama dengan yang terhubung di Knox. Secara default, identitas pengguna yang digunakan oleh Ranger diambil dari sistem operasi.

Apache Ranger juga dapat mengeksternalkan log audit ke Cloud Storage untuk membuatnya persisten. Ranger menggunakan Apache Solr sebagai mesin pengindeks dan pembuatan kueri untuk membuat log audit dapat ditelusuri.

Tidak seperti HiveServer2, Spark SQL tidak memiliki dukungan plugin Ranger resmi, sehingga Anda harus menggunakan ACL terperinci yang tersedia di Apache Knox untuk mengelola otorisasinya. Untuk menggunakan ACL ini, tambahkan identitas LDAP yang diizinkan untuk menggunakan setiap layanan, seperti Spark SQL atau Hive, pada deskriptor topologi yang sesuai untuk layanan tersebut.

Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik untuk menggunakan Apache Ranger di Dataproc.

Ketersediaan tinggi

Dataproc menyediakan mode ketersediaan tinggi (HA). Dalam mode ini, ada beberapa mesin yang dikonfigurasi sebagai node master, salah satunya dalam keadaan aktif. Mode ini memungkinkan operasi YARN dan HDFS tanpa gangguan meskipun ada kegagalan atau reboot node tunggal.

Namun, jika node master gagal, IP eksternal satu titik entri akan berubah, sehingga Anda harus mengonfigurasi ulang koneksi alat BI. Saat menjalankan Dataproc dalam mode HA, Anda harus mengonfigurasi load balancer HTTP(S) eksternal sebagai titik entri. Load balancer merutekan permintaan ke grup instance tidak terkelola yang memaketkan node master cluster Anda. Sebagai alternatif load balancer, Anda dapat menerapkan teknik DNS round-robin, tetapi ada drawbacks dari pendekatan ini. Konfigurasi ini berada di luar cakupan dokumen ini.

Cloud SQL juga menyediakan mode ketersediaan tinggi, dengan redundansi data yang dimungkinkan melalui replikasi sinkron antara instance master dan instance standby yang terletak di zona berbeda. Jika terjadi kegagalan instance atau zona, konfigurasi ini akan mengurangi periode nonaktif. Namun, perhatikan bahwa instance yang dikonfigurasi dengan HA akan dikenai biaya dua kali lipat harga instance mandiri.

Cloud Storage bertindak sebagai datastore. Untuk mengetahui informasi selengkapnya tentang ketersediaan Cloud Storage, lihat deskripsi kelas penyimpanan.

Networking

Dalam arsitektur jaringan berlapis, cluster proxy berada dalam jaringan perimeter. Cluster backend berada di jaringan internal yang dilindungi oleh aturan firewall yang hanya mengizinkan traffic masuk dari cluster proxy.

Cluster proxy diisolasi dari cluster lain karena terekspos ke permintaan eksternal. Aturan firewall hanya mengizinkan sekumpulan alamat IP sumber yang terbatas untuk mengakses cluster proxy. Dalam hal ini, aturan firewall hanya mengizinkan permintaan yang berasal dari alamat alat BI Anda.

Konfigurasi jaringan berlapis berada di luar cakupan dokumen ini. Saat Menghubungkan software visualisasi ke Hadoop di Google Cloud, Anda menggunakan jaringan default selama tutorial. Untuk mengetahui informasi lebih lanjut tentang penyiapan jaringan berlapis, lihat praktik terbaik untuk keamanan jaringan VPC serta ringkasan dan contoh tentang cara mengonfigurasi beberapa antarmuka jaringan.

Langkah selanjutnya