Réponses aux questions fréquentes sur la synchronisation des utilisateurs Ranger dans E-MapReduce.
Échec de la synchronisation des utilisateurs Linux/LDAP par RangerUserSync
Cause : Ce problème survient avec les versions 3.23.0 et antérieures d'E-MapReduce.
Solution : Connectez-vous au nœud emr-header-1 du cluster. Modifiez manuellement le fichier /etc/ecm/ranger-usersync-conf/ranger-ugsync-site.xml pour définir le paramètre ranger.usersync.enabled sur
true. Redémarrez ensuite le composant RangerUserSync depuis la console EMR.
Comment synchroniser les utilisateurs Unix vers Ranger
Ranger ne prend pas en charge la synchronisation simultanée des utilisateurs LDAP et Unix au sein d'un même cluster. La méthode de synchronisation des utilisateurs Unix dépend du déploiement ou non d'OpenLDAP dans votre cluster.
Sans OpenLDAP
-
Sur le nœud maître de votre cluster E-MapReduce, exécutez la commande suivante pour ajouter un utilisateur.
sudo adduser <username> Dans la console EMR, accédez au service Ranger. Sous l'onglet Status , repérez RangerUserSync dans la liste des Components , puis cliquez sur Restart dans la colonne Actions.
-
Vérifiez le résultat de la synchronisation.
Connectez-vous à l'interface web de Ranger. Pour plus d'informations, consultez la rubrique Accéder aux interfaces web des composants open source.
Choisissez .
-
Sous l'onglet Users, vérifiez que le nouvel utilisateur Unix apparaît bien.
Par exemple, l'utilisateur
testcréé à l'étape 1 est désormais visible.
Avec OpenLDAP
Si OpenLDAP est déployé dans votre cluster, Ranger synchronise par défaut les utilisateurs LDAP. Pour basculer vers la synchronisation des utilisateurs Unix, modifiez les paramètres Ranger suivants :
-
Sur le nœud maître de votre cluster E-MapReduce, exécutez la commande suivante pour ajouter un utilisateur.
sudo adduser <username> -
Dans la console EMR, accédez au service Ranger. Sous l'onglet Configure , recherchez et modifiez les paramètres suivants :
Définissez le paramètre
ranger.usersync.sync.sourcesurunix.Définissez le paramètre
ranger.usersync.source.impl.classsurorg.apache.ranger.unixusersync.process.UnixUserGroupBuilder.
Lorsque la console vous y invite, enregistrez la configuration et redémarrez le service Ranger. Une fois le service redémarré, les utilisateurs Unix sont synchronisés automatiquement.
-
Vérifiez le résultat de la synchronisation.
Connectez-vous à l'interface web de Ranger. Pour plus d'informations, consultez la rubrique Accéder aux interfaces web des composants open source.
Choisissez .
-
Sous l'onglet Users, vérifiez que le nouvel utilisateur Unix apparaît bien.
Par exemple, l'utilisateur
testcréé à l'étape 1 est désormais visible.
Que faire si les jobs Hive on Spark prennent trop de temps en raison d'un grand nombre de petits fichiers dans EMR ?
La présence d'un grand nombre de petits fichiers dans OSS entraîne une augmentation significative de la latence des contrôles d'autorisation Ranger, ce qui affecte les performances de HiveServer2.
Solution 1 : Désactiver l'autorisation OSS de Ranger
Connectez-vous à la console EMR et accédez à la page des détails du cluster.
Sous l'onglet Cluster Services, repérez le service
Ranger-plugin.Cliquez sur l'onglet Status du service
Ranger-pluginpour accéder à la section Service Overview.Dans la section Service Overview, repérez le commutateur
enableOSSet désactivez-le.Redémarrez les composants résidents tels que
HiveServer2et SparkThriftServer.
Solution 2 : Optimiser les paramètres de fusion des petits fichiers Hive
Dans la configuration du service Hive, définissez les paramètres suivants :
hive.merge.mapfiles=true(active la fusion des petits fichiers lors de l'étape Map)hive.merge.mapredfiles=true(active la fusion des petits fichiers lors de l'étape Reduce)hive.merge.size.per.task=256000000(taille cible des fichiers après fusion)
Que faire en cas d'exception SSL lors de l'initialisation de Ranger ?
Symptôme
Lorsque vous utilisez une base de données MySQL ou MariaDB auto-gérée comme base de métadonnées Ranger et que le protocole SSL est activé sur cette base (have_ssl=YES), l'initialisation (setup) de Ranger échoue avec une erreur javax.net.ssl.SSLException . Un message d'erreur typique est le suivant : javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) .
Cause
Par défaut, Ranger utilise le pilote mysql-connector-java 5.1.47, incompatible avec le protocole de handshake SSL de MariaDB. Cette incompatibilité entraîne l'échec de la négociation TLS et déclenche une exception SSLHandshakeException , sous-classe de SSLException . Lorsque le protocole SSL est désactivé, ce pilote se connecte correctement à la base de données ; il n'est donc pas nécessaire de le remplacer par un connecteur MySQL 8.x.
Solution
Désactivez le protocole SSL dans la configuration de connexion à la base de données de Ranger :
Connectez-vous au nœud maître de votre cluster EMR.
Dans le répertoire d'installation de Ranger, ouvrez le fichier
install.propertieset définissezdb_ssl_enabled=false.-
Modifiez l'URL JDBC pour inclure le paramètre
useSSL=false:jdbc:mysql://<host>:<port>/ranger?useSSL=false -
Ouvrez le fichier
ranger-admin-site.xmlet définissez la propriétéranger.jpa.jdbc.urlavec la valeur suivante :jdbc:log4jdbc:mysql://<host>:<port>/ranger?useSSL=false Relancez la procédure de setup de Ranger. Il n'est pas nécessaire de redémarrer la base de données.
La désactivation du protocole SSL réduit la sécurité des connexions à la base de données. N'utilisez cette solution que dans un environnement de test. Pour un environnement de production, évaluez l'impact sur la sécurité avant d'appliquer cette modification.