Dialekte, für die diese Anweisungen relevant sind
Cloudera Impala teilt die auf dieser Seite beschriebenen Anforderungen für die Datenbankeinrichtung.
Looker für die Verbindung mit Cloudera Impala konfigurieren
Looker stellt über eine JDBC-Verbindung eine Verbindung zu jeder Datenbank her. Standardmäßig ist das in Cloudera Impala der Server, auf dem der Daemon impalad
an Port 21050 ausgeführt wird.
Wählen Sie im Abschnitt Admin von Looker die Option Verbindungen aus und klicken Sie auf Verbindung hinzufügen.
Die Looker-Verbindungskonfiguration hängt von der verwendeten Sicherheit ab:
- Ein Cluster, der nicht Kerberos oder die Nutzerauthentifizierung verwendet
- Ein Cluster, der eine LDAP-Authentifizierung erfordert
- Ein Cluster, der mit Kerberos gesichert ist, aber nicht Apache Sentry verwendet
- Ein Cluster, der mit SSL-Zertifikatauthentifizierung gesichert ist
Verbindung zu einem Cluster ohne Kerberos oder Nutzerauthentifizierung herstellen
So konfigurieren Sie eine Verbindung, für die Kerberos oder Nutzerauthentifizierung nicht verwendet wird:
- Lassen Sie auf der Seite Verbindungseinstellungen die Felder Nutzername und Passwort leer. Das
*
neben den Feldnamen bedeutet, dass diese Felder erforderlich sind. - Geben Sie in das Feld Zusätzliche JDBC-Parameter
;auth=noSasl
ein.
Verbindungsstring prüfen
Um den JDBC-Verbindungsstring in den Protokolldateien zu prüfen, klicken Sie im Looker-Steuerfeld Admin im linken Menü auf Log. Filtern Sie das Protokoll dann nach einem Begriff wie jdbc
oder noSasl
. Die Logzeile kann in etwa so aussehen:
jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl
Weitere Informationen zum Konfigurieren von Cloudera Impala für die Verwendung mit JDBC finden Sie in der Cloudera-Dokumentation.
Verbindung zu einem Cluster herstellen, der eine LDAP-Authentifizierung erfordert
Für einen Cluster, der eine LDAP-Authentifizierung erfordert, einschließlich eines Clusters mit Apache Sentry und Kerberos, geben Sie auf der Seite Connection Settings (Verbindungseinstellungen) einen Nutzernamen und ein Password mit Zugriff auf die Schemas ein, auf die Looker zugreifen kann.
Verbindung zu einem Cluster, der mit Kerberos gesichert ist, aber nicht Apache Sentry verwendet
Das Looker-Analystenteam muss Sie möglicherweise bei der richtigen Konfiguration unterstützen.
In der Regel erfolgt die Kerberos-Authentifizierung mit Cloudera-Umgebungen über Apache Sentry. Weitere Informationen finden Sie in der Cloudera-Dokumentation.
Wenn Sie Looker für die direkte Verbindung mit Cloudera Impala konfigurieren möchten, führen Sie die Schritte auf dieser Seite aus.
Kerberos-Clientkonfiguration einrichten
Zuerst müssen Sie einige Softwareprogramme installieren und mehrere Dateien auf dem Looker-Computer installieren.
Kerberos-Client
Prüfen Sie mit dem Befehl kinit
, ob der Kerberos-Client auf dem Looker-Computer installiert ist. Ist dies nicht der Fall, installieren Sie die Binärprogramme des Kerberos-Clients.
Bei Redhat/CentOS wäre das z. B.:
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 werden. Installieren Sie sie bei Bedarf lokal im Verzeichnis looker
.
Java-Kryptografie-Erweiterung
Sie können die Java Cryptography Extension (JCE) für Java 8 von der Oracle-Website herunterladen und installieren.
- Suchen Sie das Verzeichnis
jre/lib/security
für die Java-Installation. - Entfernen Sie die folgenden JAR-Dateien aus diesem Verzeichnis:
local_policy.jar
undUS_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öglich, Java-Versionen vor Java 8 mit installiertem JCE zu verwenden. Dies wird jedoch nicht empfohlen.
- Suchen Sie das Verzeichnis
Aktualisieren Sie
JAVA_HOME
undPATH
in~looker/.bash_profile
, damit Nutzer auf die richtige Installation von Java undsource ~/.bash_profile
verweisen, oder melden Sie sich ab und wieder an.Prüfen Sie die Java-Version mit
java -version
.Überprüfen Sie die Umgebungsvariable
JAVA_HOME
mitecho $JAVA_HOME
.
gss-jaas.conf
Erstellen Sie im Verzeichnis looker
eine gss-jaas.conf
-Datei mit folgendem Inhalt:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Wenn dies für den Test erforderlich ist, 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 außerdem eine gültige krb5.conf
-Datei haben. Diese Datei befindet sich standardmäßig in /etc/krb5.conf
. Wenn es sich an einem anderen Speicherort 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
Bewegen Sie den Mauszeiger auf die Dateien gss-jaas.conf
und krb5.conf
, indem Sie im Verzeichnis looker
(demselben Verzeichnis, das das Startskript looker
enthält) die Datei 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=""
Ist die Datei krb5.conf
nicht unter /etc/krb5.conf
vorhanden, müssen Sie auch folgende Variable hinzufügen:
-Djava.security.krb5.conf=/path/to/krb5.conf
Fügen Sie für die Fehlerbehebung folgende Variablen hinzu:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Starten Sie dann Looker mit ./looker restart
neu.
Mit Kerberos authentifizieren
Nutzerauthentifizierung
Wenn
krb5.conf
nicht in/etc/
enthalten ist, verwenden Sie die UmgebungsvariableKRB5_CONFIG
, um den Standort anzugeben.Führen Sie den Befehl
klist
aus, damit im Kerberos-Ticket-Cache ein gültiges Ticket enthalten ist.Wenn kein Ticket vorhanden ist, führen Sie
kinit username@REALM
oderkinit username
aus, um das Ticket zu erstellen.Das mit Looker verwendete Konto hat wahrscheinlich keine Benutzeroberfläche. Sie können also eine Keytab-Datei von Kerberos abrufen, um die Anmeldedaten zur langfristigen Nutzung zu speichern. Verwenden Sie einen Befehl wie
kinit -k -t looker_user.keytab username@REALM
, um das Kerberos-Ticket zu erhalten.
Ticket automatisch verlängern
Richten Sie einen Cronjob ein, der regelmäßig ausgeführt wird, um ein aktives Ticket im Kerberos-Ticket-Cache zu speichern. Wie oft dies ausgeführt werden soll, hängt von der Konfiguration des Clusters ab. klist
sollte Ihnen mitteilen, wann Tickets ablaufen.
Looker-Verbindung einrichten
Wählen Sie im Abschnitt Admin von Looker die Option Verbindungen aus und klicken Sie auf Verbindung hinzufügen.
Geben Sie die Verbindungsdetails so ein: Weitere Informationen finden Sie auf der Seite Verbindung zwischen Looker und Datenbank herstellen:
- Name: Der Name der Verbindung. So wird im LookML-Modell auf die Verbindung verwiesen.
- Dialekt: Cloudera Impala oder Cloudera Impala 3.1+.
- Host: Hostname
- Port: Datenbankport (standardmäßig 21050).
- Datenbank: Das Standardschema/die Datenbank, die modelliert wird. Wenn für eine Tabelle keine Datenbank angegeben ist, wird davon ausgegangen.
- Nutzername: Lassen Sie dieses Feld leer.
- Password (Passwort): Lassen Sie dieses Feld leer.
- PDTs aktivieren: Aktivieren Sie diese Option, um persistente abgeleitete Tabellen zu aktivieren. Wenn PATs aktiviert sind, werden im Fenster Verbindung zusätzliche PAT-Einstellungen und der Abschnitt PDT-Überschreibungen angezeigt.
- Temporäre Datenbank: Eine temporäre Schema/Datenbank zum Speichern von PATs. Dieser muss vorab erstellt werden.
- Zusätzliche JDBC-Parameter: Zusätzliche Parameter für den JDBC-String.
Geben Sie hier das Kerberos-Hauptkonto an, z. B.
;principal=impala/impala.company.com@REALM
. Dreiteilige Hauptkonten sind Standard. Die erste (impala
) ist in der Regel der Name des Dienstes und die letzte (REALM
) ist in der Regel der Bereich. - SSL: Aktivieren Sie diese Option, um SSL-Verbindungen zu nutzen.
Wenn Ihr SSL-Zertifikat nicht von einer anerkannten Zertifizierungsstelle ausgestellt wurde und Sie ein benutzerdefiniertes Zertifikat verwenden, gehen Sie so vor:
- 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 korrekten JDBC-Strings für Impala-Datenbanken finden Sie in der Cloudera-Dokumentation.
- Database Time Zone: Die Zeitzone der in Ihrer Datenbank gespeicherten Daten. In der Regel kann das Feld leer bleiben oder auf UTC gesetzt werden.
Als Best Practice sollte der Servername (in diesem Beispiel impala.company.com
) der kanonische Name für den Server und der umgekehrte DNS-Lookup durch die IP-Adresse in diesem Namen sein. Der Servername muss jedoch der im Kerberos-Domaincontroller aufgeführte Name sein:
nslookup servername # get canonical server name and IP address
nslookup ipaddress # get the canonical name back
Manchmal wird der Servername als Hostname festgelegt und nicht für den voll qualifizierten Domainnamen. In diesem Fall kann es erforderlich sein, die Dateien /etc/hosts
und /etc/nsswitch.conf
zu ändern, damit die Reverse-Lookups wie gewünscht aufgelöst werden.
Testen Sie die Verbindung, um zu prüfen, ob sie richtig konfiguriert ist.
Debugging
- Cloudera-Dokumentation zum Beheben von Problemen mit der Impala-Authentifizierung
- Wenn Sie der Konfiguration eine Fehlerbehebung hinzufügen, werden die zusätzlichen Informationen zur Fehlerbehebung in
looker/logs/looker.log
ausgegeben.
Ressourcen
- Kerberos-Authentifizierung für Impala aktivieren (Cloudera-Dokumentation)
- kinit man page
- klist man-Seite
- Dokumentation zu gss-jaas.conf
- Dokumentation zu Krb5LoginModule
Hinweise
Der Nutzer, der eine Verbindung zum Scratch-Schema für PDTs herstellt, muss Lese-/Schreibberechtigungen haben.
Referenz
Weitere Informationen finden Sie in der Cloudera-Dokumentation im Abschnitt Impala für die Arbeit mit JDBC konfigurieren.
Unterstützte Funktionen
Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.
Logo: Cloudera Impala
Cloud Looker Impala unterstützt die folgenden Features ab Looker 23.8:
Funktion | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Nein |
Abgeleitete Tabellen | Ja |
Über SQL abgeleitete Tabellen | Ja |
Nichtflüchtige native abgeleitete Tabellen | Ja |
Stabile Aufrufe | Ja |
Abfrageabbau | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Nein |
Zusätzliche JDBC-Parameter | Ja |
Groß-/Kleinschreibung beachten | Ja |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Eindeutiges Perzentil | Nein |
Prozesse der SQL Runner-Sendung | Nein |
SQL-Runner-Beschreibungstabelle | Ja |
SQL-Runner-Show-Indizes | Nein |
SQL Runner Select 10 | Ja |
Anzahl der SQL-Runner | Ja |
Erläuterung zu SQL | Ja |
OAuth-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Sketche | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Ungefähre Anzahl Einzeln | Ja |
Cloudera Impala 3.1+
Cloudera Impala 3.1+ unterstützt die folgenden Features ab Looker 23.8:
Funktion | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Ja |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Über SQL abgeleitete Tabellen | Ja |
Nichtflüchtige native abgeleitete Tabellen | Ja |
Stabile Aufrufe | Ja |
Abfrageabbau | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Nein |
Zusätzliche JDBC-Parameter | Ja |
Groß-/Kleinschreibung beachten | Ja |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Eindeutiges Perzentil | Nein |
Prozesse der SQL Runner-Sendung | Nein |
SQL-Runner-Beschreibungstabelle | Ja |
SQL-Runner-Show-Indizes | Nein |
SQL Runner Select 10 | Ja |
Anzahl der SQL-Runner | Ja |
Erläuterung zu SQL | Ja |
OAuth-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Sketche | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Ungefähre Anzahl Einzeln | Ja |
Nächste Schritte
Nachdem Sie die Datenbank mit Looker verbunden haben, konfigurieren Sie die Anmeldeoptionen für Ihre Nutzer.