Impala cloudera

Dialectes utilisant ces instructions

Cloudera Impala partage les exigences de configuration de la base de données décrites sur cette page.

Configurer Looker pour se connecter à Cloudera Impala

Looker se connecte à n'importe quelle base de données via une connexion JDBC. Par défaut, sur Cloudera Impala, il s'agit du serveur qui exécute le daemon impalad sur le port 21050.

Dans la section Administration de Looker, sélectionnez Connexions, puis cliquez sur Ajouter une connexion.

La configuration de la connexion Looker dépend de la sécurité utilisée:

Se connecter à un cluster sans Kerberos ni authentification des utilisateurs

Pour configurer une connexion qui n'utilise pas Kerberos ou l'authentification des utilisateurs, procédez comme suit:

  1. Sur la page Paramètres de connexion, laissez les champs Nom d'utilisateur et Mot de passe vides. (Le champ * à côté des noms de champs implique que ces champs sont obligatoires, mais ce n'est pas le cas.)
  2. Dans le champ Autres paramètres JDBC, saisissez ;auth=noSasl.

Vérifier la chaîne de connexion

Pour vérifier la chaîne de connexion JDBC dans les fichiers journaux, dans le panneau Administration de Looker, cliquez sur Journal dans le menu de gauche. Filtrez ensuite le journal sur un terme tel que jdbc ou noSasl. La ligne de journal peut se présenter comme suit:

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

Pour en savoir plus sur la configuration de Cloudera Impala pour utiliser JDBC, consultez la documentation Cloudera.

Connexion à un cluster nécessitant une authentification LDAP

Sur la page Paramètres de connexion, pour un cluster nécessitant une authentification LDAP, y compris un cluster avec Apache Sentry et Kerberos, saisissez un nom d'utilisateur et un mot de passe ayant accès aux schémas auxquels Looker aura accès.

Connexion à un cluster sécurisé avec Kerberos, mais sans utilisation d'Apache Sentry

L'équipe d'analystes Looker devra peut-être vous aider à configurer correctement ce paramètre.

En règle générale, l'authentification Kerberos avec les environnements Cloudera est gérée via Apache Sentry. Pour en savoir plus, consultez la documentation Cloudera.

Si vous souhaitez configurer Looker pour la connexion directe à Cloudera Impala à l'aide de l'authentification Kerberos, suivez les étapes décrites sur cette page.

Définir la configuration du client Kerberos

La première chose à faire est de s'assurer que plusieurs logiciels sont installés sur la machine Looker, y compris plusieurs.

Client Kerberos

Vérifiez que le client Kerberos est installé sur la machine Looker en essayant d'exécuter kinit. Si ce n'est pas le cas, installez les binaires du client Kerberos.

Par exemple, sur Redhat/CentOS, le code se présente comme suit:

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

Java 8

Java 8 doit être installé sur la machine Looker et dans les PATH et JAVA_HOME de l'utilisateur Looker. Si nécessaire, installez-le localement dans le répertoire looker.

Extension de cryptographie Java
  1. Téléchargez et installez l'extension Java Cryptography (JCE) pour Java 8 sur le site Web d'Oracle.

    • Recherchez le répertoire jre/lib/security pour l'installation de Java.
    • Supprimez les fichiers JAR suivants du répertoire: local_policy.jar et US_export_policy.jar.
    • Remplacez ces deux fichiers par les fichiers JAR inclus dans le téléchargement de fichiers de règle de compétence JCE avec un degré de difficulté illimité.

    Il est possible d'utiliser des versions de Java antérieures à Java 8 avec le JCE installé, mais cela n'est pas recommandé.

  2. Mettez à jour JAVA_HOME et PATH dans ~looker/.bash_profile pour pointer vers l'installation correcte de Java et de source ~/.bash_profile, ou déconnectez-vous, puis reconnectez-vous.

  3. Vérifiez la version de Java avec java -version.

  4. Vérifiez la variable d'environnement JAVA_HOME avec echo $JAVA_HOME.

gss-jaas.conf

Créez un fichier gss-jaas.conf dans le répertoire looker avec le contenu suivant:

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

Si nécessaire, debug=true peut être ajouté à ce fichier comme suit:

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

Le serveur qui exécute Looker doit également disposer d'un fichier krb5.conf valide. Par défaut, ce fichier se trouve dans /etc/krb5.conf. Si elle se trouve à un autre emplacement, cela doit être indiqué dans l'environnement (KRB5_CONFIG dans l'environnement shell).

Vous devrez peut-être le copier à partir d'une autre machine cliente Kerberos.

lookerstart.cfg

Pointez sur les fichiers gss-jaas.conf et krb5.conf en créant un fichier dans le répertoire looker (le même répertoire contenant le script de démarrage looker) appelé lookerstart.cfg et contenant les lignes suivantes:

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

Si le fichier krb5.conf n'est pas à l'emplacement /etc/krb5.conf, il sera également nécessaire d'ajouter cette variable:

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

Pour le débogage, ajoutez les variables suivantes:

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

Redémarrez ensuite Looker avec ./looker restart.

Authentification avec Kerberos

Authentification des utilisateurs
  1. Si krb5.conf ne se trouve pas dans /etc/, utilisez la variable d'environnement KRB5_CONFIG pour indiquer son emplacement.

  2. Exécutez la commande klist pour vous assurer qu'il y a un ticket valide dans le cache de tickets Kerberos.

  3. S'il n'y a pas de ticket, exécutez kinit username@REALM ou kinit username pour créer le ticket.

  4. Le compte utilisé avec Looker sera probablement sans interface graphique. Vous pourrez donc obtenir un fichier keytab auprès de Kerberos pour stocker les identifiants afin de les utiliser à long terme. Utilisez une commande telle que kinit -k -t looker_user.keytab username@REALM pour obtenir le ticket Kerberos.

Renouveler automatiquement le billet

Configurez une job Cron qui s'exécute de temps en temps pour conserver un ticket actif dans le cache des tickets Kerberos. La fréquence d'exécution dépend de la configuration du cluster. klist devrait vous indiquer dans combien de temps les billets expirent.

Configurer la connexion Looker

Dans la section Administration de Looker, sélectionnez Connexions, puis cliquez sur Ajouter une connexion.

Saisissez les informations de connexion comme suit (pour en savoir plus, consultez la page Connecter Looker à votre base de données):

  • Nom: nom de la connexion. C'est ainsi que la connexion sera référencée dans le modèle LookML.
  • Dialect: Cloudera Impala ou Cloudera Impala 3.1 ou version ultérieure.
  • Hôte: nom d'hôte.
  • Port: port de base de données (21050 par défaut).
  • Base de données: schéma/base de données par défaut qui sera modélisé. Lorsqu'aucune base de données n'est spécifiée pour une table, celle-ci sera utilisée par défaut.
  • Nom d'utilisateur: laissez ce champ vide.
  • Password (Mot de passe) : laissez ce champ vide.
  • Activer les tables dérivées persistantes: utilisez ce bouton pour activer les tables dérivées persistantes. Lorsque les tables dérivées persistantes sont activées, la fenêtre Connexion affiche les paramètres supplémentaires des tables dérivées persistantes, ainsi que la section Remplacements pour les PDT.
  • Base de données temporaire: schéma/base de données temporaire pour le stockage des tables dérivées persistantes. Vous devez le créer au préalable.
  • Paramètres JDBC supplémentaires: paramètres supplémentaires pour la chaîne JDBC. Indiquez le compte principal Kerberos ici, par exemple ;principal=impala/impala.company.com@REALM. Les comptes principaux en trois parties sont standards. La première (impala) est généralement le nom du service, et la dernière (REALM) le domaine.
  • SSL: cochez cette case pour utiliser des connexions SSL. Si votre certificat SSL n'est pas délivré par une autorité de certification largement reconnue et que vous utilisez un certificat personnalisé, procédez comme suit :
    • Copiez le fichier de certificat sur le serveur Looker. Cette option n'est disponible que pour les déploiements Looker hébergés par le client.
    • Ajoutez les paramètres suivants au champ Additional JDBC parameters (Paramètres JDBC supplémentaires) mentionné ci-dessus:
  sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword

Consultez la documentation Cloudera pour savoir comment former les chaînes JDBC appropriées pour les bases de données Impala.

  • Database Time Zone (Fuseau horaire de la base de données) : fuseau horaire des données stockées dans votre base de données. Généralement, laissez ce champ vide ou indiquez UTC.

Il est recommandé d'utiliser le nom canonique du serveur (impala.company.com dans cet exemple) et les résultats de la résolution DNS inverse de son adresse IP avec ce nom. Toutefois, le nom du serveur doit correspondre à celui indiqué dans le contrôleur de domaine Kerberos:

  nslookup servername  # get canonical server name and IP address

  nslookup ipaddress  # get the canonical name back

Parfois, le nom du serveur est défini comme étant le nom d'hôte, et non le nom de domaine complet. Dans ce cas, il peut être nécessaire de modifier les fichiers /etc/hosts et /etc/nsswitch.conf pour que les résolutions inverses se résolvent comme prévu.

Testez la connexion pour vous assurer qu'elle est correctement configurée.

Débogage

Ressources

Remarques

L'utilisateur qui se connecte au schéma de travail pour les PDT doit disposer d'autorisations de lecture/écriture.

Reference

Pour en savoir plus, consultez la section Configurer Impala pour utiliser JDBC de la documentation Cloudera.

Prise en charge de fonctionnalités

Pour que Looker prenne en charge certaines fonctionnalités, votre dialecte de base de données doit également les prendre en charge.

Impala cloudera

Cloudera Impala est compatible avec les fonctionnalités suivantes à partir de Looker 23.8:

Caractéristique Compatible ?
Niveau d'assistance
Compatible
Looker (Google Cloud Core)
Non
Agrégations symétriques
Non
Tables dérivées
Oui
Tables dérivées SQL persistantes
Oui
Tables dérivées natives persistantes
Oui
Vues stables
Oui
Arrêt des requêtes
Oui
Pivots basés sur SQL
Oui
Fuseaux horaires
Oui
SSL
Oui
Sous-totaux
Non
Paramètres JDBC supplémentaires
Oui
Sensible à la casse
Oui
Type d'emplacement
Oui
Type de liste
Non
Centile
Non
Centile distinct
Non
Processus d'affichage de l'exécuteur SQL
Non
Table "Décrire" de l'exécuteur SQL
Oui
Index d'émissions SQL Runner
Non
Exécuteur SQL 10
Oui
Nombre d'exécuteurs SQL
Oui
SQL Explain
Oui
Identifiants OAuth
Non
Commentaires contextuels
Oui
Pooling de connexions
Non
croquis HLL
Non
Reconnaissance d'agrégats.
Oui
Augmentation de tables PDT
Non
Millisecondes
Oui
Microsecondes
Oui
Vues matérialisées
Non
Nombre approximatif distinct
Oui

Cloudera Impala 3.1 ou version ultérieure

Cloudera Impala 3.1 et les versions ultérieures sont compatibles avec les fonctionnalités suivantes à partir de Looker 23.8:

Caractéristique Compatible ?
Niveau d'assistance
Compatible
Looker (Google Cloud Core)
Oui
Agrégations symétriques
Oui
Tables dérivées
Oui
Tables dérivées SQL persistantes
Oui
Tables dérivées natives persistantes
Oui
Vues stables
Oui
Arrêt des requêtes
Oui
Pivots basés sur SQL
Oui
Fuseaux horaires
Oui
SSL
Oui
Sous-totaux
Non
Paramètres JDBC supplémentaires
Oui
Sensible à la casse
Oui
Type d'emplacement
Oui
Type de liste
Non
Centile
Non
Centile distinct
Non
Processus d'affichage de l'exécuteur SQL
Non
Table "Décrire" de l'exécuteur SQL
Oui
Index d'émissions SQL Runner
Non
Exécuteur SQL 10
Oui
Nombre d'exécuteurs SQL
Oui
SQL Explain
Oui
Identifiants OAuth
Non
Commentaires contextuels
Oui
Pooling de connexions
Non
croquis HLL
Non
Reconnaissance d'agrégats.
Oui
Augmentation de tables PDT
Non
Millisecondes
Oui
Microsecondes
Oui
Vues matérialisées
Non
Nombre approximatif distinct
Oui

Étapes suivantes

Une fois votre base de données connectée à Looker, configurez les options de connexion pour vos utilisateurs.