Verbinden Sie Ihre Cloudera Impala-Datenbanken mit Looker, um Ihre Daten zu visualisieren und zu analysieren. Sie können diese Verbindungen für verschiedene Impala-Dialekte konfigurieren. Looker unterstützt Cloudera Impala-Versionen ab 3.1, einschließlich Standard- und nativer Treiberkonfigurationen. Verbindungen zu älteren Impala-Dialekten ohne Versionsnummer oder nativen Treiber werden nicht unterstützt. Abfragen an diese Dialekte geben einen Fehler zurück.
Dialekte, für die diese Anweisungen relevant sind
Looker stellt eine Verbindung zu den folgenden Impala-Datenbanken her:
- Cloudera Impala 3.1 oder höher
- Cloudera Impala 3.1+ mit nativem Treiber
- Cloudera Impala mit nativem Treiber
Netzwerk-Datenverkehr verschlüsseln
Es empfiehlt sich, den Netzwerkverkehr zwischen Looker-Anwendung und Datenbank zu verschlüsseln. Prüfen Sie eine der Optionen, die auf der Dokumentationsseite Sicheren Datenbankzugriff ermöglichen beschrieben werden.
Looker für die Verbindung mit Cloudera Impala konfigurieren
Looker stellt über eine JDBC-Verbindung eine Verbindung zu Datenbanken her. Bei Impala-Datenbanken stellt Looker standardmäßig eine Verbindung zum Server her, auf dem der impalad-Daemon auf Port 21050 ausgeführt wird. Weitere Informationen finden Sie im Abschnitt Impala für die Verwendung mit JDBC konfigurieren der Dokumentation auf der Cloudera-Website.
Wählen Sie in Looker im Bereich Admin die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.
Die Konfiguration der Looker-Verbindung hängt von der verwendeten Sicherheit ab:
- Cluster, der weder Kerberos noch Nutzerauthentifizierung verwendet
- Cluster, für den eine LDAP-Authentifizierung erforderlich ist
- Ein mit Kerberos gesicherter Cluster, der Apache Sentry nicht verwendet
Verbindung zu einem Cluster ohne Kerberos oder Nutzerauthentifizierung herstellen
So konfigurieren Sie eine Verbindung, die weder Kerberos noch die Nutzerauthentifizierung verwendet:
- Lassen Sie auf der Seite Verbindungseinstellungen die Felder Nutzername und Passwort leer. (Das
*neben den Feldnamen impliziert, dass diese Felder erforderlich sind, aber das ist nicht der Fall.) - Geben Sie im Feld Zusätzliche JDBC-Parameter den Wert
;auth=noSaslein.
Verbindungsstring wird überprüft
Wenn Sie den JDBC-Verbindungsstring in den Logdateien prüfen möchten, klicken Sie im Looker-Bereich Verwaltung im Menü auf der linken Seite auf Log. Filtern Sie das Protokoll dann nach einem Begriff wie jdbc oder noSasl. Die Logzeile könnte etwa so aussehen:
jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl
Weitere Informationen zum Konfigurieren von Impala-Datenbanken für die Verwendung mit JDBC finden Sie in der Dokumentation auf der externen Cloudera-Website.
Verbindung zu einem Cluster herstellen, für den eine LDAP-Authentifizierung erforderlich ist
Geben Sie für einen Cluster, der eine LDAP-Authentifizierung erfordert, einschließlich eines Clusters mit Apache Sentry und Kerberos, auf der Seite Verbindungseinstellungen einen Nutzernamen und ein Passwort mit Zugriff auf die Schemas ein, auf die Looker zugreifen wird.
Verbindung zu einem mit Kerberos gesicherten Cluster herstellen, aber Apache Sentry nicht verwenden
Normalerweise wird die Kerberos-Authentifizierung mit Cloudera-Umgebungen über Apache Sentry abgewickelt. Weitere Informationen finden Sie in der Cloudera-Dokumentation.
Wenn Sie Looker so konfigurieren möchten, dass eine direkte Verbindung zu Impala-Datenbanken über die Kerberos-Authentifizierung hergestellt wird, folgen Sie der Anleitung auf dieser Seite.
Kerberos-Clientkonfiguration einrichten
Prüfen Sie zuerst, ob die erforderliche Software installiert ist und die erforderlichen Dateien auf dem Looker-Computer vorhanden sind.
Kerberos-Client
Prüfen Sie, ob der Kerberos-Client auf dem Looker-Computer installiert ist, indem Sie versuchen, kinit auszuführen. Wenn der Kerberos-Client nicht installiert ist, installieren Sie die Binärdateien des Kerberos-Clients.
Führen Sie beispielsweise unter Red Hat/CentOS den folgenden Befehl aus:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 muss auf dem Looker-Computer und im PATH und JAVA_HOME des Looker-Nutzers installiert sein. Installieren Sie es bei Bedarf lokal im Verzeichnis looker.
Java Cryptography Extension
Laden Sie die Java Cryptography Extension (JCE) für Java 8 von der Oracle-Website herunter und installieren Sie sie.
- Suchen Sie das Verzeichnis
jre/lib/securityfür die Java-Installation. - Entfernen Sie die folgenden JAR-Dateien aus diesem Verzeichnis:
local_policy.jarundUS_export_policy.jar. - Ersetzen Sie diese beiden Dateien durch die JAR-Dateien, die im Download der JCE Unlimited Strength Jurisdiction Policy Files enthalten sind.
Es ist möglicherweise möglich, Java-Versionen vor Java 8 mit installierter JCE zu verwenden, dies wird jedoch nicht empfohlen.
- Suchen Sie das Verzeichnis
Aktualisieren Sie
JAVA_HOMEundPATHin~looker/.bash_profile, sodass sie auf die richtige Installation von Java undsource ~/.bash_profileverweisen, oder melden Sie sich ab und wieder an.Prüfen Sie die Java-Version mit
java -version.Prüfen Sie die Umgebungsvariable
JAVA_HOMEmitecho $JAVA_HOME.
gss-jaas.conf
Erstellen Sie eine gss-jaas.conf-Datei im Verzeichnis looker mit folgendem Inhalt:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Falls für Tests erforderlich, kann debug=true so zu dieser Datei hinzugefügt werden:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
Der Server, auf dem Looker ausgeführt wird, sollte auch eine gültige krb5.conf-Datei haben. Diese Datei befindet sich standardmäßig in /etc/krb5.conf. Wenn sie sich an einem anderen Ort befindet, muss dies in der Umgebung angegeben werden (KRB5_CONFIG in der Shell-Umgebung).
Möglicherweise müssen Sie diese von einem anderen Kerberos-Clientcomputer kopieren.
lookerstart.cfg
Verweisen Sie auf die Dateien gss-jaas.conf und krb5.conf, indem Sie im Verzeichnis looker (dem Verzeichnis, das das Startskript looker enthält) eine Datei namens lookerstart.cfg mit den folgenden Zeilen erstellen:
JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
LOOKERARGS=""
Wenn sich die Datei krb5.conf nicht unter /etc/krb5.conf befindet, müssen Sie auch diese Variable hinzufügen:
-Djava.security.krb5.conf=/path/to/krb5.conf
Fügen Sie für das Debugging die folgenden Variablen hinzu:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Starten Sie Looker dann mit ./looker restart neu.
Mit Kerberos authentifizieren
Nutzerauthentifizierung
Wenn sich
krb5.confnicht in/etc/befindet, verwenden Sie die UmgebungsvariableKRB5_CONFIG, um den Speicherort anzugeben.Führen Sie den Befehl
klistaus, um zu prüfen, ob sich im Kerberos-Ticket-Cache ein gültiges Ticket befindet.Wenn kein Ticket vorhanden ist, führen Sie
kinit username@REALModerkinit usernameaus, um das Ticket zu erstellen.Das Konto, das mit Looker verwendet wird, ist wahrscheinlich ein Headless-Konto. Sie können also eine Keytab-Datei von Kerberos abrufen, um die Anmeldedaten für die langfristige Verwendung zu speichern. Verwenden Sie einen Befehl wie
kinit -k -t looker_user.keytab username@REALM, um das Kerberos-Ticket abzurufen.
Ticket automatisch verlängern
Richten Sie einen Cronjob ein, der regelmäßig ausgeführt wird, um ein aktives Ticket im Kerberos-Ticket-Cache zu behalten. Wie oft dies ausgeführt werden soll, hängt von der Konfiguration des Clusters ab. klist sollte einen Hinweis darauf geben, wie bald Tickets ablaufen.
Looker-Verbindung zu Ihrer Datenbank erstellen
Wählen Sie in Looker im Bereich Admin die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.
Geben Sie die Verbindungsdetails wie folgt ein. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden.
- Name: Der Name der Verbindung. Dies ist die Art und Weise, auf die im LookML-Modell auf die Verbindung verwiesen wird.
Dialekt: Cloudera Impala 3.1+, Cloudera Impala 3.1+ mit nativem Treiber oder Cloudera Impala mit nativem Treiber.
Host: Hostname.
Port: Datenbankport (standardmäßig 21050).
Datenbank: Das Standardschema bzw. die Standarddatenbank, die modelliert wird. Wenn für eine Tabelle keine Datenbank angegeben ist, wird diese angenommen.
Nutzername: Lassen Sie dieses Feld leer.
Passwort: Lassen Sie dieses Feld leer.
PDTs aktivieren: Mit dieser Option können Sie persistente abgeleitete Tabellen aktivieren. Wenn PDTs aktiviert sind, werden im Fenster Verbindung zusätzliche PDT-Einstellungen und der Abschnitt PDT-Überschreibungen angezeigt.
Temporäre Datenbank: Ein temporäres Schema bzw. eine temporäre Datenbank zum Speichern von PDTs. Diese muss vorher erstellt werden.
Zusätzliche JDBC-Parameter: Fügen Sie alle zusätzlichen JDBC-Parameter hinzu. Eine Liste der unterstützten Parameter finden Sie auf dieser Seite im Abschnitt Unterstützte JDBC-Parameter.
SSL: Klicken Sie hier, um SSL-Verbindungen zu verwenden. Wenn Ihr SSL-Zertifikat nicht von einer allgemein anerkannten Zertifizierungsstelle ausgestellt wurde und Sie ein benutzerdefiniertes Zertifikat verwenden, müssen Sie Folgendes tun:
- Kopieren Sie die Zertifikatsdatei auf den Looker-Server. Diese Option ist nur für vom Kunden gehostete Looker-Bereitstellungen verfügbar.
- Fügen Sie dem Feld Zusätzliche JDBC-Parameter die folgenden Parameter hinzu:
sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword
Weitere Informationen zum Erstellen der richtigen JDBC-Strings für Impala-Datenbanken finden Sie in der Cloudera-Dokumentation.
- Zeitzone der Datenbank: Die Zeitzone der in Ihrer Datenbank gespeicherten Daten. Normalerweise kann dieses Feld leer gelassen oder auf UTC festgelegt werden.
Es empfiehlt sich, den Servernamen (in diesem Beispiel impala.company.com) als kanonischen Namen für den Server zu verwenden. Das Ergebnis des Reverse-DNS-Lookups der IP-Adresse sollte dieser Name sein. Der Servername sollte jedoch dem entsprechen, was im Kerberos-Domaincontroller aufgeführt ist:
nslookup servername # get canonical server name and IP address
nslookup ipaddress # get the canonical name back
Manchmal ist der Servername auf den Hostnamen und nicht auf den voll qualifizierten Domainnamen festgelegt. In diesem Fall müssen Sie möglicherweise die Dateien /etc/hosts und /etc/nsswitch.conf ändern, damit die umgekehrten Suchvorgänge wie gewünscht aufgelöst werden.
Testen Sie die Verbindung, um zu prüfen, ob sie richtig konfiguriert ist.
Debugging
- Cloudera-Dokumentation zum Debugging von Impala-Authentifizierungsproblemen
- Wenn Sie der Konfiguration Debugging hinzufügen, werden die zusätzlichen Debugging-Informationen in
looker/logs/looker.loggespeichert.
Ressourcen
- Kerberos-Authentifizierung für Impala aktivieren (Cloudera-Dokumentation)
- kinit-Manpage
- klist-Manpage
- gss-jaas.conf-Dokumentation
- Krb5LoginModule-Dokumentation
Berechtigungen für PDTs
Der Nutzer, der eine Verbindung zum Scratch-Schema für persistente abgeleitete Tabellen (PDTs) herstellt, muss Lese-/Schreibberechtigungen haben.
Unterstützte JDBC-Parameter
Für Cloudera Impala unterstützt Looker die folgenden JDBC-Parameter im Feld Zusätzliche JDBC-Parameter für die Verbindung. Informationen zu diesen Parametern finden Sie in der Dokumentation zu Ihrer Datenbank.
AllowSelfSignedCertsauthAuthMechCAIssuedCertNamesMismatchhttpPathKrbHostFQDNKrbRealmKrbServiceNameprincipalPWDSocketTimeoutSSLtransportModeUIDUseNativeQueryUseSasl
Funktionsunterstützung
Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.
Cloudera Impala mit nativem Treiber
Cloudera Impala mit nativem Treiber unterstützt ab Looker 26.22 die folgenden Funktionen:
| Funktion | Unterstützt? |
|---|---|
| Looker (Google Cloud Core) | |
| Symmetrische Aggregate | |
| Abgeleitete Tabellen | |
| Persistente abgeleitete SQL-Tabellen | |
| Persistente, native abgeleitete Tabellen | |
| Stabile Ansichten | |
| Abfrageeabruch | |
| SQL-basierte Pivots | |
| Zeitzonen | |
| SSL | |
| Zwischensummen | |
| Zusätzliche JDBC-Parameter | |
| Groß-/Kleinschreibung beachten | |
| Standorttyp | |
| Listentyp | |
| Perzentil | |
| Perzentil der unterschiedlichen Werte | |
| SQL-Runner-Befehl – Prozesse anzeigen | |
| SQL-Runner-Funktion – Tabelle beschreiben | |
| SQL Runner-Befehl – Indexe anzeigen | |
| SQL-Runner – 10 auswählen | |
| SQL-Runner – Anzahl | |
| SQL – Erklären | |
| OAuth 2.0-Anmeldedaten | |
| Kontextkommentare | |
| Verbindungs-Pooling | |
| HLL-Skizzen | |
| Aggregate Awareness | |
| Inkrementelle PDTs | |
| Millisekunden | |
| Mikrosekunden | |
| Materialisierte Ansichten | |
| Vergleich zum vorherigen Zeitraum | |
| Ungefähre Anzahl einzelner Aufrufe | |
| In-Database-Analysemodelle | |
| Benutzerdefinierte Kalender |
Cloudera Impala 3.1 oder höher
Cloudera Impala 3.1 und höher unterstützen ab Looker 26.22 die folgenden Funktionen:
| Funktion | Unterstützt? |
|---|---|
| Looker (Google Cloud Core) | |
| Symmetrische Aggregate | |
| Abgeleitete Tabellen | |
| Persistente abgeleitete SQL-Tabellen | |
| Persistente, native abgeleitete Tabellen | |
| Stabile Ansichten | |
| Abfrageeabruch | |
| SQL-basierte Pivots | |
| Zeitzonen | |
| SSL | |
| Zwischensummen | |
| Zusätzliche JDBC-Parameter | |
| Groß-/Kleinschreibung beachten | |
| Standorttyp | |
| Listentyp | |
| Perzentil | |
| Perzentil der unterschiedlichen Werte | |
| SQL-Runner-Befehl – Prozesse anzeigen | |
| SQL-Runner-Funktion – Tabelle beschreiben | |
| SQL Runner-Befehl – Indexe anzeigen | |
| SQL-Runner – 10 auswählen | |
| SQL-Runner – Anzahl | |
| SQL – Erklären | |
| OAuth 2.0-Anmeldedaten | |
| Kontextkommentare | |
| Verbindungs-Pooling | |
| HLL-Skizzen | |
| Aggregate Awareness | |
| Inkrementelle PDTs | |
| Millisekunden | |
| Mikrosekunden | |
| Materialisierte Ansichten | |
| Vergleich zum vorherigen Zeitraum | |
| Ungefähre Anzahl einzelner Aufrufe | |
| In-Database-Analysemodelle | |
| Benutzerdefinierte Kalender |
Cloudera Impala 3.1+ mit nativem Treiber
Cloudera Impala 3.1 und höher mit nativem Treiber unterstützen ab Looker 26.22 die folgenden Funktionen:
| Funktion | Unterstützt? |
|---|---|
| Looker (Google Cloud Core) | |
| Symmetrische Aggregate | |
| Abgeleitete Tabellen | |
| Persistente abgeleitete SQL-Tabellen | |
| Persistente, native abgeleitete Tabellen | |
| Stabile Ansichten | |
| Abfrageeabruch | |
| SQL-basierte Pivots | |
| Zeitzonen | |
| SSL | |
| Zwischensummen | |
| Zusätzliche JDBC-Parameter | |
| Groß-/Kleinschreibung beachten | |
| Standorttyp | |
| Listentyp | |
| Perzentil | |
| Perzentil der unterschiedlichen Werte | |
| SQL-Runner-Befehl – Prozesse anzeigen | |
| SQL-Runner-Funktion – Tabelle beschreiben | |
| SQL Runner-Befehl – Indexe anzeigen | |
| SQL-Runner – 10 auswählen | |
| SQL-Runner – Anzahl | |
| SQL – Erklären | |
| OAuth 2.0-Anmeldedaten | |
| Kontextkommentare | |
| Verbindungs-Pooling | |
| HLL-Skizzen | |
| Aggregate Awareness | |
| Inkrementelle PDTs | |
| Millisekunden | |
| Mikrosekunden | |
| Materialisierte Ansichten | |
| Vergleich zum vorherigen Zeitraum | |
| Ungefähre Anzahl einzelner Aufrufe | |
| In-Database-Analysemodelle | |
| Benutzerdefinierte Kalender |
Nächste Schritte
Nachdem Sie Ihre Datenbank mit Looker verbunden haben, können Sie Anmeldeoptionen für Ihre Nutzer konfigurieren.