Utilisez une interface de ligne de commande (CLI) pour vous connecter à Impala sur E-MapReduce (EMR).
Prérequis
Vous avez créé un cluster et sélectionné le service Impala. Pour plus d'informations, consultez la rubrique Créer un cluster.
Connexion via impala-shell
Avant de vous connecter à Impala, exécutez la commande impala-shell --help pour afficher les options disponibles.
Cluster standard
Connectez-vous au nœud maître du cluster via SSH. Pour plus d'informations, consultez la rubrique Se connecter à un cluster.
-
Exécutez la commande suivante pour vous connecter à Impala.
impala-shell -i <impalad_node_name><impalad_node_name>correspond au nom d'un nœud Impalad. Pour obtenir ce nom, accédez à l'onglet Status du service Impala dans la console EMR, développez le composant Impalad, puis repérez le nom dans la colonne Node Name de la liste de topologie. Par exemple, les noms de nœuds peuvent être core-1-1 et core-1-2. Utilisez l'un de ces noms pour vous connecter à Impala. Remplacez<impalad_node_name>dans la commande précédente par le nom de nœud obtenu. Facultatif : Exécutez la commande
quit;pour quitter l'interface CLI Impala.
Cluster haute sécurité
Connectez-vous au nœud maître du cluster via SSH. Pour plus d'informations, consultez la rubrique Se connecter à un cluster.
-
Initialisez un identifiant Kerberos.
-
Exécutez la commande suivante pour vérifier la présence d'un identifiant Kerberos.
klistSi la sortie contient le message
klist: No credentials cache found, initialisez un identifiant à l'étape suivante. Si la sortie affiche déjà des informations d'identification, ignorez cette étape et connectez-vous directement à Impala. -
Exécutez la commande suivante pour afficher le principal.
klist -k $IMPALA_CONF_DIR/impala.keytabNotez le principal affiché dans la sortie. Vous en aurez besoin à l'étape suivante. Par exemple, le principal est
impala/master-1-1.c-45dcb9bbe234****.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE23****.COM.[root@master-l-1(192.16xxx) ~]# klist -k $IMPALA_CONF_DIR/impala.keytab Keytab name: FILE:/etc/taihao-apps/impala-conf/runtime-conf/impala.keytab KVNO Principal ---- ---------------------------------------------------------------- 2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM 2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM 2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM 2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM 2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM 2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM 2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM 2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM -
Exécutez la commande suivante pour initialiser l'identifiant.
kinit -k -t $IMPALA_CONF_DIR/impala.keytab <principal>RemarqueRemplacez
<principal>par le principal noté à l'étape précédente.
-
-
Exécutez la commande suivante pour vous connecter à Impala.
impala-shell -k -i <impalad_node_name> Facultatif : Exécutez la commande
quit;pour quitter l'interface CLI Impala.
Connexion JDBC via Beeline
Cluster standard
Connectez-vous au nœud maître du cluster via SSH. Pour plus d'informations, consultez la rubrique Se connecter à un cluster.
-
Exécutez la commande suivante pour vous connecter à Impala.
beeline -u 'jdbc:hive2://<impalad_node_name>:28000/default;transportMode=http;uauth=noSasl' Facultatif : Exécutez la commande
quit;pour quitter l'interface CLI Impala.
Cluster haute sécurité
Connectez-vous à un nœud core du cluster via SSH. Pour plus d'informations, consultez la rubrique Se connecter à un cluster.
-
Initialisez un identifiant en tant qu'utilisateur root.
-
Exécutez la commande suivante pour vérifier la présence d'un identifiant Kerberos.
klistSi la sortie contient le message
klist: No credentials cache found, passez à l'étape suivante pour initialiser un identifiant d'accès. Si la sortie affiche déjà des informations d'identification, ignorez cette étape et utilisez la commande impala-shell pour vous connecter à Impala. -
Exécutez la commande suivante pour afficher le principal.
klist -k $IMPALA_CONF_DIR/impala.keytabNotez le principal affiché dans la sortie. Vous en aurez besoin à l'étape suivante. Par exemple, le principal est
impala/core-1-1.c-ee5cfb2d6306****.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D6306****.COM.[root@core-1-1(xxx) ~]# klist -k $IMPALA_CONF_DIR/impala.keytab Keytab name: FILE:/etc/taihao-apps/impala-conf/runtime-conf/impala.keytab KVNO Principal ---- ---------------------------------------------------------------- 2 impala/core-1-1.c-ee5cfb2dxxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2Dxxx.COM 2 impala/core-1-1.c-ee5cfb2dxxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2Dxxx.COM 2 impala/core-1-1.c-ee5cfb2dxxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2Dxxx.COM 2 impala/core-1-1.c-ee5cfb2dxxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2Dxxx.COM 2 impala/core-1-1.c-ee5cfb2dxxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2Dxxx.COM 2 impala/core-1-1.c-ee5cfb2dxxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2Dxxx.COM 2 HTTP/core-1-1.c-ee5cfb2d63xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D63xxx.COM 2 HTTP/core-1-1.c-ee5cfb2d63xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D63xxx.COM 2 HTTP/core-1-1.c-ee5cfb2d63xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D63xxx.COM 2 HTTP/core-1-1.c-ee5cfb2d63xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D63xxx.COM 2 HTTP/core-1-1.c-ee5cfb2d63xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D63xxx.COM 2 HTTP/core-1-1.c-ee5cfb2d63xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D63xxx.COM -
Exécutez la commande suivante pour initialiser l'identifiant.
kinit -k -t $IMPALA_CONF_DIR/impala.keytab <principal>RemarqueRemplacez
<principal>par le principal noté à l'étape précédente.
-
-
Exécutez la commande suivante en tant qu'utilisateur root pour vous connecter à Impala.
beeline -u 'jdbc:hive2://<impalad_node_name>:28000/default;principal=<principal>;transportMode=http' Facultatif : Pour quitter l'interface CLI Beeline, exécutez la commande
!quit.
FAQ
Où sont stockés les journaux Impala ?
Les journaux Impala sont stockés par défaut dans le répertoire /var/log/taihao-apps/impala/. Connectez-vous à un nœud du cluster et accédez à ce répertoire pour consulter les journaux.
Les journaux Impala sont stockés sur les nœuds où s'exécutent les processus Impalad (généralement les nœuds core). Si vous ne trouvez pas de journaux sur un nœud spécifique, vérifiez que le processus Impalad y est bien déployé.
Comment interroger les utilisateurs ayant accédé historiquement à Impala ?
Si Apache Ranger n'est pas activé pour le cluster, Impala utilise les permissions de lecture et d'écriture du système de fichiers Hadoop Distributed File System (HDFS) pour le contrôle d'accès.
Pour extraire les comptes de connexion historiques du journal d'audit, exécutez la commande suivante sur un nœud où le processus Impalad est en cours d'exécution :
grep "Successfully authenticated client user" /var/log/taihao-apps/impala/impalad.INFO* | awk -F'"' '{print $2}' | sort | uniq -c | sort -nr
Cette commande recherche dans les journaux d'audit Impala les enregistrements d'authentification réussie, extrait les noms d'utilisateur et les affiche par ordre décroissant selon le nombre de connexions.
Comment créer un compte en lecture seule pour Impala ?
La création d'un compte Impala en lecture seule nécessite Apache Ranger pour le contrôle des permissions. Si Ranger n'est pas déployé dans votre cluster, ajoutez le service Ranger avant de configurer un contrôle d'accès granulaire, tel que les permissions en lecture seule.
Impala sur EMR 4.9.0 prend-il en charge l'autorisation Ranger ?
Impala sur EMR 4.9.0 ne prend pas en charge l'autorisation Ranger. Pour utiliser Ranger afin de gérer les permissions Impala, créez un cluster exécutant une version EMR ultérieure et migrez vos données vers ce nouveau cluster.