Cloudera Impala

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 Admin de Looker, sélectionnez Connections (Connexions), puis cliquez sur Add Connection (Ajouter une connexion).

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

Se connecter à un cluster sans Kerberos ou authentification des utilisateurs

Pour configurer une connexion qui n'utilise pas Kerberos ou l'authentification des utilisateurs:

  1. Sur la page Connection Settings (Paramètres de connexion), laissez les champs Username (Nom d'utilisateur) et Password (Mot de passe) vides. (Le * à côté des noms de champs implique que ces champs sont obligatoires, mais ce n'est pas obligatoire.)
  2. Dans le champ Paramètres supplémentaires, 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 Admin de Looker, cliquez sur Journal dans le menu de gauche. Filtrez ensuite le journal sur un terme tel que jdbc ou noSasl:

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

Se connecter à un cluster nécessitant une authentification LDAP

Pour un cluster nécessitant une authentification LDAP, y compris un cluster avec Apache Sentry et Kerberos, sur la page Connection Settings (Paramètres de connexion), saisissez un Username (Nom d'utilisateur) et un Password (Mot de passe) ayant accès aux schémas auxquels Looker aura accès.

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

L'équipe d'analystes Looker devra peut-être vous aider pour cette configuration.

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 qu'il se connecte directement à 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 et que plusieurs fichiers sont présents sur la machine Looker.

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:

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 les 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 Extension (JCE) pour Java 8 depuis le site Web Oracle.

    • Recherchez le répertoire jre/lib/security pour l'installation de Java.
    • Supprimez les fichiers JAR suivants de ce répertoire : local_policy.jar et US_export_policy.jar.
    • Remplacez ces deux fichiers par les fichiers JAR inclus dans le téléchargement des fichiers de règles relatives à la juridiction JCE Unlimited.

    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 renvoyer vers la bonne installation de Java et 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 pour les tests, 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 exécutant Looker doit également disposer d'un fichier krb5.conf valide. Par défaut, ce fichier se trouve dans /etc/krb5.conf. S'il se trouve à un autre emplacement, cela doit être indiqué dans l'environnement (KRB5_CONFIG dans l'environnement shell).

Vous devrez peut-être le copier depuis une autre machine cliente Kerberos.

lookerstart.cfg

Pointez sur les fichiers gss-jaas.conf et krb5.conf en créant un fichier nommé lookerstart.cfg dans le répertoire looker (le même répertoire qui contient le script de démarrage looker) 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 ne se trouve pas à l'emplacement /etc/krb5.conf, vous devez également 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

Ensuite, redémarrez Looker avec ./looker restart.

S'authentifier avec Kerberos

Authentification des utilisateurs
  1. Si krb5.conf n'est 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 existe un ticket valide dans le cache de tickets Kerberos.

  3. En l'absence 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 pouvez donc obtenir un fichier de clé auprès de Kerberos afin de stocker les identifiants pour une utilisation à long terme. Utilisez une commande telle que kinit -k -t looker_user.keytab username@REALM pour obtenir le ticket Kerberos.

Renouvellement automatique de la demande d'assistance

Configurez une tâche Cron qui s'exécute régulièrement afin de conserver un ticket actif dans le cache de tickets Kerberos. La fréquence d'exécution dépend de la configuration du cluster. klist devrait indiquer le délai d'expiration des billets.

Configurer la connexion Looker

Dans la section Admin de Looker, sélectionnez Connections (Connexions), puis cliquez sur Add Connection (Ajouter une connexion).

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

  • Name (Nom) : nom de la connexion. C'est ainsi que la connexion sera appelée dans le modèle LookML.
  • Dialect: Cloudera Impala ou Cloudera Impala 3.1+.
  • Host (Hôte) : nom d'hôte.
  • Port : port de la base de données (21050 par défaut).
  • Base de données: le schéma ou la base de données par défaut qui seront modélisés. Si aucune base de données n'est spécifiée pour une table, cette valeur est utilisée par défaut.
  • Username (Nom d'utilisateur) : laissez ce champ vide.
  • Password (Mot de passe) : laissez ce champ vide.
  • Tables dérivées persistantes : vérifiez si vous souhaitez utiliser des tables dérivées persistantes.
  • Base de données temporaire : schéma/base de données temporaire permettant de stocker des disques persistants. Vous devez effectuer cette opération avant.
  • Paramètres supplémentaires: paramètres supplémentaires pour la chaîne JDBC. Indiquez ici le compte principal Kerberos, 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) est généralement le domaine.
  • SSL : cochez cette option pour utiliser les connexions SSL. Si votre certificat SSL n'est pas émis 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 Params (Paramètres 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 correctes 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, vous pouvez laisser ce champ vide ou définir sa valeur sur UTC.

Il est recommandé de faire en sorte que le nom du serveur (impala.company.com dans cet exemple) soit le nom canonique du serveur et que son adresse IP inverse renvoie les résultats de recherche dans ce nom. Toutefois, le nom du serveur doit correspondre à celui spécifié 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 le nom d'hôte, et non le nom de domaine complet. Dans ce cas, vous devrez peut-être modifier les fichiers /etc/hosts et /etc/nsswitch.conf pour vous assurer que les résolutions inverses fonctionnent 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 plus d'informations, consultez la section Configurer Impala pour fonctionner avec JDBC dans 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.

Dans la dernière version de Looker, Cloudera Impala est compatible avec les fonctionnalités Looker suivantes:

Dans la dernière version de Looker, Cloudera Impala 3.1+ est compatible avec les fonctionnalités Looker suivantes:

Étapes suivantes

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