Cloudera Impala 3.1+ dan Cloudera Impala dengan Native Driver

Dialek yang menggunakan petunjuk ini

Looker terhubung ke database Impala berikut:

  • Cloudera Impala 3.1+
  • Cloudera Impala 3.1+ dengan Native Driver
  • Cloudera Impala dengan Native Driver

Mengenkripsi lalu lintas jaringan

Praktik terbaiknya adalah mengenkripsi traffic jaringan antara aplikasi Looker dan database Anda. Pertimbangkan salah satu opsi yang dijelaskan di halaman dokumentasi Mengaktifkan akses database yang aman.

Mengonfigurasi Looker agar terhubung ke Cloudera Impala

Looker terhubung ke database melalui koneksi JDBC. Untuk database Impala, Looker terhubung secara default ke server yang menjalankan daemon impalad pada port 21050. Untuk informasi selengkapnya, lihat bagian Mengonfigurasi Impala agar berfungsi dengan JDBC dalam dokumentasi di situs Cloudera.

Di bagian Admin Looker, pilih Connections, lalu klik Add Connection.

Konfigurasi koneksi Looker bergantung pada keamanan yang digunakan:

Menghubungkan ke cluster tanpa Kerberos atau autentikasi pengguna

Untuk mengonfigurasi koneksi yang tidak menggunakan Kerberos atau autentikasi pengguna, ikuti langkah-langkah berikut:

  1. Di halaman Connection Settings, kosongkan kolom Username dan Password. (* di samping nama kolom menyiratkan bahwa kolom ini wajib diisi, tetapi tidak wajib.)
  2. Di kolom Parameter JDBC tambahan, masukkan ;auth=noSasl.

Memverifikasi string koneksi

Untuk memverifikasi string koneksi JDBC di file log, pada panel Admin Looker, klik Log di menu kiri. Kemudian, filter log berdasarkan istilah seperti jdbc atau noSasl. Baris log akan terlihat seperti ini:

jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi database Impala agar berfungsi dengan JDBC, lihat dokumentasi di situs Cloudera eksternal.

Menghubungkan ke cluster yang memerlukan autentikasi LDAP

Untuk cluster yang memerlukan autentikasi LDAP, termasuk cluster dengan Apache Sentry dan Kerberos, di halaman Connection Settings, masukkan Username dan Password yang memiliki akses ke skema yang akan diakses Looker.

Terhubung ke cluster yang diamankan dengan Kerberos, tetapi tidak menggunakan Apache Sentry

Tim analis Looker mungkin perlu membantu mengonfigurasi koneksi ini dengan benar.

Biasanya, autentikasi Kerberos dengan lingkungan Cloudera ditangani melalui Apache Sentry. Lihat dokumentasi Cloudera untuk detail selengkapnya.

Jika Anda ingin mengonfigurasi Looker agar terhubung langsung ke database Impala menggunakan autentikasi Kerberos, ikuti langkah-langkah di halaman ini.

Menyiapkan konfigurasi klien Kerberos

Pertama, Anda perlu memastikan penginstalan beberapa software dan adanya beberapa file di mesin Looker.

Klien Kerberos

Pastikan klien Kerberos telah diinstal di mesin Looker dengan mencoba menjalankan kinit. Jika klien Kerberos tidak diinstal, instal biner klien Kerberos.

Sebagai contoh, di Redhat/CentOS, ini adalah:

sudo yum install krb5-workstation krb5-libs krb5-auth-dialog

Java 8

Java 8 harus diinstal di mesin Looker serta di PATH dan JAVA_HOME pengguna Looker. Jika perlu, instal secara lokal di direktori looker.

Ekstensi Kriptografi Java
  1. Download dan instal Java Cryptography Extension (JCE) untuk Java 8 dari situs Oracle.

    • Temukan direktori jre/lib/security untuk penginstalan Java.
    • Hapus file JAR berikut dari direktori ini: local_policy.jar dan US_export_policy.jar.
    • Ganti kedua file ini dengan file JAR yang disertakan dalam download File Kebijakan Yurisdiksi Kekuatan Tidak Terbatas JCE.

    Anda dapat menggunakan versi Java sebelum Java 8 dengan JCE yang sudah diinstal, tetapi hal ini tidak disarankan.

  2. Update JAVA_HOME dan PATH di ~looker/.bash_profile agar mengarah ke penginstalan Java dan source ~/.bash_profile yang benar, atau logout dan login lagi.

  3. Verifikasi versi Java dengan java -version.

  4. Verifikasi variabel lingkungan JAVA_HOME dengan echo $JAVA_HOME.

gss-jaas.conf

Dalam direktori looker, buat file gss-jaas.conf dengan konten berikut:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true;
};

Jika diperlukan untuk pengujian, debug=true dapat ditambahkan ke file ini seperti ini:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true
    debug=true;
};
krb5.conf

Server yang menjalankan Looker juga harus memiliki file krb5.conf yang valid. Secara default, file ini ada di /etc/krb5.conf. Jika berada di lokasi lain, hal itu harus ditunjukkan di lingkungan (KRB5_CONFIG di lingkungan shell).

Anda mungkin perlu menyalinnya dari komputer klien Kerberos lainnya.

lookerstart.cfg

Arahkan kursor ke file gss-jaas.conf dan krb5.conf dengan membuat file di direktori looker (direktori sama yang berisi skrip startup looker) yang disebut lookerstart.cfg yang berisi baris berikut:

  JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
  LOOKERARGS=""

Jika file krb5.conf tidak ada di /etc/krb5.conf, variabel ini juga perlu ditambahkan:

  -Djava.security.krb5.conf=/path/to/krb5.conf

Untuk proses debug, tambahkan variabel berikut:

  -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true

Lalu, mulai ulang Looker dengan ./looker restart.

Mengautentikasi dengan Kerberos

Autentikasi pengguna
  1. Jika krb5.conf tidak ada dalam /etc/, gunakan variabel lingkungan KRB5_CONFIG untuk menunjukkan lokasinya.

  2. Jalankan perintah klist untuk memastikan ada tiket yang valid di cache tiket Kerberos.

  3. Jika tidak ada tiket, jalankan kinit username@REALM atau kinit username untuk membuat tiket.

  4. Akun yang digunakan dengan Looker kemungkinan akan menjadi headless, sehingga Anda bisa mendapatkan file keytab dari Kerberos guna menyimpan kredensial untuk penggunaan jangka panjang. Gunakan perintah seperti kinit -k -t looker_user.keytab username@REALM untuk mendapatkan tiket Kerberos.

Memperpanjang tiket secara otomatis

Siapkan cron job yang sering berjalan untuk mempertahankan tiket aktif di cache tiket Kerberos. Seberapa sering proses ini harus dijalankan bergantung pada konfigurasi cluster. klist harus memberikan indikasi seberapa cepat masa berlaku tiket habis.

Membuat koneksi Looker ke database Anda

Di bagian Admin Looker, pilih Connections, lalu klik Add Connection.

Isi detail koneksi sebagai berikut (lihat halaman dokumentasi Menghubungkan Looker ke database Anda untuk mengetahui informasi selengkapnya):

  • Name: Nama koneksi. Inilah bagaimana koneksi akan dirujuk dalam model LookML.
  • Dialek: Cloudera Impala 3.1+, Cloudera Impala 3.1+ with Native Driver, atau Cloudera Impala dengan Native Driver.

  • Host: Nama host.

  • Port: Port database (21050 secara default).

  • Database: Skema/database default yang akan dimodelkan. Jika tidak ada {i>database<i} yang ditentukan untuk tabel, hal ini akan dianggap sebagai asumsi.

  • Username: Biarkan kosong.

  • Password: Biarkan kosong.

  • Aktifkan PDT: Gunakan tombol ini untuk mengaktifkan tabel turunan persisten. Jika PDT diaktifkan, jendela Connection akan menampilkan setelan PDT tambahan dan bagian PDT Overrides.

  • Temp Database: Skema/database sementara untuk menyimpan PDT. Nama ini harus dibuat terlebih dahulu.

  • Parameter JDBC tambahan: Parameter tambahan untuk string JDBC. Tentukan akun utama Kerberos di sini, misalnya ;principal=impala/impala.company.com@REALM. Akun utama tiga bagian bersifat standar. Yang pertama (impala) biasanya adalah nama layanan, dan yang terakhir (REALM) umumnya adalah realm.

  • SSL: Centang untuk menggunakan koneksi SSL. Jika sertifikat SSL Anda tidak diterbitkan oleh Otoritas Sertifikat yang diakui secara luas dan Anda menggunakan sertifikat khusus, Anda harus:

    • Salin file sertifikat ke server Looker. Opsi ini hanya tersedia untuk deployment Looker yang dihosting pelanggan.
    • Tambahkan parameter berikut ke kolom Parameter JDBC tambahan yang disebutkan di atas:
  sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword

Lihat dokumentasi Cloudera untuk mengetahui detail selengkapnya tentang cara membentuk string JDBC yang benar untuk database Impala.

  • Zona Waktu Database: Zona waktu data yang disimpan di database Anda. Biasanya dapat dibiarkan kosong atau disetel ke UTC.

Praktik terbaiknya adalah menggunakan nama server (dalam contoh ini impala.company.com) menjadi nama kanonis untuk server tersebut dan hasil pencarian DNS terbalik alamat IP-nya dalam nama tersebut. Namun, nama server harus berupa nama yang tercantum di pengontrol domain Kerberos:

  nslookup servername  # get canonical server name and IP address

  nslookup ipaddress  # get the canonical name back

Terkadang nama server diatur menjadi nama {i>host<i}, dan bukan nama domain yang sepenuhnya memenuhi syarat. Dalam hal ini, Anda mungkin perlu mengubah file /etc/hosts dan /etc/nsswitch.conf untuk memastikan pencarian balik diselesaikan sebagaimana mestinya.

Uji koneksi untuk memastikannya dikonfigurasi dengan benar.

Proses Debug

Referensi

Izin untuk PDT

Pengguna yang terhubung ke skema gores untuk tabel turunan persisten (PDT) harus memiliki izin baca/tulis.

Dukungan fitur

Agar Looker dapat mendukung beberapa fitur, dialek database Anda juga harus mendukung fitur tersebut.

Cloudera Impala dengan Native Driver

Cloudera Impala dengan Native Driver mendukung fitur berikut mulai Looker 24.6:

Fitur Didukung?
Level Dukungan
Didukung
Looker (Google Cloud core)
Tidak
Agregat Simetris
Tidak
Tabel Turunan
Ya
Tabel Turunan SQL Persisten
Ya
Tabel Turunan Berbasis Persisten
Ya
Tampilan Stabil
Ya
Penghentian Kueri
Ya
Pivot berbasis SQL
Ya
Zona waktu
Ya
SSL
Ya
Subtotal
Tidak
Parameter Tambahan JDBC
Ya
Peka Huruf Besar/Kecil
Ya
Jenis Lokasi
Ya
Jenis Daftar
Tidak
Persentil
Tidak
Persentil berbeda
Tidak
Proses Tampilan Runner SQL
Tidak
Tabel Deskripsi Runner SQL
Ya
Indeks Tampilan Runner SQL
Tidak
Pilihan Runner SQL 10
Ya
Jumlah Runner SQL
Ya
Penjelasan SQL
Ya
Kredensial OAuth
Tidak
Komentar Konteks
Ya
Penggabungan Koneksi
Tidak
Sketsa HLL
Tidak
Awareness Gabungan
Ya
PDT inkremental
Tidak
Milidetik
Ya
Mikrodetik
Ya
Tampilan Terwujud
Tidak
Perkiraan Jumlah Berbeda
Ya

Cloudera Impala 3.1+

Cloudera Impala 3.1+ mendukung fitur berikut mulai Looker 24.6:

Fitur Didukung?
Level Dukungan
Didukung
Looker (Google Cloud core)
Ya
Agregat Simetris
Ya
Tabel Turunan
Ya
Tabel Turunan SQL Persisten
Ya
Tabel Turunan Berbasis Persisten
Ya
Tampilan Stabil
Ya
Penghentian Kueri
Ya
Pivot berbasis SQL
Ya
Zona waktu
Ya
SSL
Ya
Subtotal
Tidak
Parameter Tambahan JDBC
Ya
Peka Huruf Besar/Kecil
Ya
Jenis Lokasi
Ya
Jenis Daftar
Tidak
Persentil
Tidak
Persentil berbeda
Tidak
Proses Tampilan Runner SQL
Tidak
Tabel Deskripsi Runner SQL
Ya
Indeks Tampilan Runner SQL
Tidak
Pilihan Runner SQL 10
Ya
Jumlah Runner SQL
Ya
Penjelasan SQL
Ya
Kredensial OAuth
Tidak
Komentar Konteks
Ya
Penggabungan Koneksi
Tidak
Sketsa HLL
Tidak
Awareness Gabungan
Ya
PDT inkremental
Tidak
Milidetik
Ya
Mikrodetik
Ya
Tampilan Terwujud
Tidak
Perkiraan Jumlah Berbeda
Ya

Cloudera Impala 3.1+ dengan Native Driver

Cloudera Impala 3.1+ dengan Native Driver mendukung fitur berikut mulai Looker 24.6:

Fitur Didukung?
Level Dukungan
Didukung
Looker (Google Cloud core)
Tidak
Agregat Simetris
Ya
Tabel Turunan
Ya
Tabel Turunan SQL Persisten
Ya
Tabel Turunan Berbasis Persisten
Ya
Tampilan Stabil
Ya
Penghentian Kueri
Ya
Pivot berbasis SQL
Ya
Zona waktu
Ya
SSL
Ya
Subtotal
Tidak
Parameter Tambahan JDBC
Ya
Peka Huruf Besar/Kecil
Ya
Jenis Lokasi
Ya
Jenis Daftar
Tidak
Persentil
Tidak
Persentil berbeda
Tidak
Proses Tampilan Runner SQL
Tidak
Tabel Deskripsi Runner SQL
Ya
Indeks Tampilan Runner SQL
Tidak
Pilihan Runner SQL 10
Ya
Jumlah Runner SQL
Ya
Penjelasan SQL
Ya
Kredensial OAuth
Tidak
Komentar Konteks
Ya
Penggabungan Koneksi
Tidak
Sketsa HLL
Tidak
Awareness Gabungan
Ya
PDT inkremental
Tidak
Milidetik
Ya
Mikrodetik
Ya
Tampilan Terwujud
Tidak
Perkiraan Jumlah Berbeda
Ya

Langkah berikutnya

Setelah menghubungkan database ke Looker, konfigurasi opsi login untuk pengguna.