Une passerelle soumet des tâches à un cluster de calcul et assure l'isolation de sécurité. EMR-CLI simplifie le déploiement de la passerelle en créant automatiquement une instance Alibaba Cloud ECS et en configurant l'environnement de passerelle pour les clusters DataLake, Dataflow ou OLAP.
Options de déploiement de la passerelle
Une passerelle constitue une couche d'isolation pour la soumission de tâches, fournie par EMR. Ses principaux avantages sont les suivants :
-
Découpler les charges de travail client des services principaux du cluster
Décharge les opérations client telles que
spark-submit,hive -fetyarn applicationdes nœuds maîtres. -
Activer l'isolation dans un environnement multi-locataire
Prend en charge des environnements d'exécution distincts pour les utilisateurs ou les départements.
-
Améliorer la stabilité et la maintenabilité du cluster
Empêche les soumissions fréquentes de tâches, le débogage de scripts, les conflits d'environnement ou la contention des ressources d'affecter les services critiques tels que YARN ResourceManager et HDFS NameNode.
EMR propose trois options de passerelle adaptées à différents types de clusters, versions et exigences architecturales.
|
Option |
Types et versions de clusters pris en charge |
Déploiement et fonctionnalités clés |
Cas d'utilisation et recommandations |
|
Groupe de nœuds de passerelle |
Prend en charge uniquement les clusters suivants :
|
• Ajoutez un nouveau groupe de nœuds à un cluster existant. Pour plus d'informations, consultez Gérer les groupes de nœuds. |
Fortement recommandé : Utilisez cette option pour ajouter rapidement un point d'entrée de soumission sécurisé et isolé à un cluster DataLake ou DataFlow existant. Elle offre le coût de maintenance le plus faible et garantit une cohérence élevée de la configuration. |
|
Environnement de passerelle |
Prend en charge les clusters DataLake, DataFlow, personnalisés et OLAP. |
• Déployez manuellement sur une instance ECS. Pour plus de détails, consultez Utiliser EMR CLI pour personnaliser un déploiement d'environnement de passerelle. |
Alternative standard lorsque votre cluster ne prend pas en charge un groupe de nœuds de passerelle. |
|
Cluster de passerelle |
Prend en charge uniquement les clusters Hadoop et Kafka. |
|
Adapté aux clusters Hadoop et Kafka. |
Prérequis
Un cluster de calcul E-MapReduce pour les scénarios DataLake, Dataflow, OLAP ou personnalisé doit être en cours d'exécution. Pour obtenir des instructions sur la création d'un cluster, consultez Créer un cluster.
Limitations
-
Type de cluster : Cette solution s'applique uniquement au déploiement d'un environnement de passerelle pour les clusters DataLake, Dataflow, OLAP et personnalisés. Si le type et la version du cluster sont compatibles, il est recommandé d'utiliser un groupe de nœuds de passerelle.
Pour obtenir des informations sur le déploiement d'un environnement de passerelle pour les clusters Hadoop et Kafka existants, consultez Créer un cluster de passerelle.
RemarqueSeuls les comptes Alibaba Cloud ayant créé des clusters Hadoop ou Kafka avant le 19 décembre 2022 à 17 h 00 (UTC+8) peuvent continuer à en créer.
Installation par écrasement : EMR-CLI déploie les clients de passerelle en mode écrasement. Un redéploiement sur une instance ECS disposant déjà d'une passerelle écrase l'ancien client et installe le nouveau dans le même répertoire.
Déploiement isolé : N'utilisez pas une instance ECS existante de votre cluster EMR (tel qu'un nœud Master, Core ou Task) comme nœud de passerelle. Cela empêche l'environnement client d'interférer avec le fonctionnement normal du cluster.
Services pris en charge : Cette méthode de déploiement prend en charge les clients pour les services suivants : HDFS, YARN, HBase, Hive, Spark 2, Spark 3, JindoSDK, Flink, Sqoop, Impala, Presto, Hudi, Iceberg, Tez et Delta Lake.
Premier déploiement
-
Dans la console ECS, créez une instance. Pour plus d'informations, consultez Créer une instance à l'aide de l'assistant.
RemarqueL'instance ECS ne nécessite pas d'accès au réseau public.
Les paramètres suivants sont recommandés.
|
**Paramètre**
|
**Description**
| | --- | --- | |
Région et zone
|
Même région et même zone que le cluster EMR.
| |
Image
|
Même système d'exploitation que les instances du cluster EMR.
| |
Disque système
|
Un disque ESSD d'au moins 60 GiB est recommandé.
| |
Réseau
|
Même Virtual Private Cloud (VPC) que le cluster EMR.
| |
Groupe de sécurité
|
Utilisez le même groupe de sécurité que le groupe de nœuds maître du cluster EMR. Cela garantit la connectivité réseau entre l'instance ECS et le cluster EMR.
| -
Créez un rôle RAM ECS dédié pour la passerelle EMR.
Connectez-vous à la console RAM en tant qu'administrateur RAM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Role, cliquez sur Create Role.
Dans le panneau Create Role, définissez Principal Type sur Cloud Service et Principal Name sur Elastic Compute Service, puis cliquez sur OK.
Saisissez un Role Name (par exemple, ECSForEMRGatewayRole), puis cliquez sur OK.
-
Accordez des autorisations au rôle RAM.
Dans l'onglet Permission Settings, cliquez sur Add Authorization.
Dans le panneau Add Authorization, sélectionnez System Policy. Recherchez et sélectionnez AliyunEMRFullAccess, AliyunOSSFullAccess et AliyunDLFFullAccess. Ensuite, cliquez sur OK.
Cliquez sur Close.
-
Attachez le rôle RAM à l'instance ECS.
Connectez-vous à la console ECS.
Dans la barre de navigation de gauche, sélectionnez .
Dans la barre de menu supérieure, sélectionnez la région.
Localisez l'instance ECS nouvellement créée et sélectionnez .
Dans la boîte de dialogue qui s'affiche, sélectionnez le rôle ECSForEMRGatewayRole et cliquez sur OK.
Connectez-vous à l'instance ECS. Pour plus d'informations, consultez Se connecter à une instance.
-
Exécutez la commande suivante pour installer EMR-CLI.
regionId=`curl http://100.100.100.200/latest/meta-data/region-id`; curl https://ecm-repo-${regionId}.oss-${regionId}-internal.aliyuncs.com/emrcli/emrcli.sh -o /tmp/emrcli.sh; chmod 755 /tmp/emrcli.sh; sh /tmp/emrcli.sh install ${regionId}Une installation réussie renvoie le message suivant :
install emrcli success -
Exécutez la commande suivante pour déployer le client de passerelle EMR.
emrcli gateway deploy \ --clusterId <ClusterId> \ --appNames <ApplicationName>Remplacez les paramètres suivants par vos valeurs réelles.
|
**Paramètre**
|
**Obligatoire**
|
**Description**
| | --- | --- | --- | |
clusterId
|
Oui
|
L'ID du cluster E-MapReduce.
| |
appNames
|
Non
|
Les noms des applications. Séparez plusieurs noms par une virgule (,), par exemple `HDFS,YARN`.
S'ils sont omis, les clients pour toutes les applications prises en charge dans le cluster sont installés par défaut.
|Un déploiement réussi renvoie le message suivant :
deployGateway successImportantAprès l'installation de la passerelle, la variable d'environnement système
JAVA_HOMEest définie sur/usr/lib/jvm/java-1.8.0. Vous pouvez la modifier dans le fichier /etc/profile.d/emr_env.sh, mais cela peut affecter le fonctionnement de la passerelle. Procédez avec prudence. Reconnectez-vous à l'instance ECS pour appliquer les nouvelles variables d'environnement.
-
Facultatif : Configurez la résolution DNS pour le nœud de passerelle.
ImportantCette étape est requise si la passerelle inclut le service Spark.
Ajoutez une zone. Pour plus d'informations, consultez Ajouter une zone faisant autorité intégrée.
-
Ajoutez un enregistrement DNS. Pour plus d'informations, consultez Ajouter des enregistrements DNS.
Le tableau suivant décrit les paramètres requis.
|
**Paramètre**
|
**Description**
| | --- | --- | |
**Record type**
|
Utilisez la valeur par défaut **A**.
| |
**Hostname**
|
Saisissez le nom d'hôte du nœud de passerelle, par exemple iZ2zea8r0aht2vzbqci****.
Vous pouvez obtenir le nom d'hôte en exécutant la commande `hostname`.
| |
**Record value**
|
Saisissez l'adresse IP interne du nœud de passerelle.
Vous pouvez consulter cette adresse sur la page de gestion des nœuds.
| |
**TTL value**
|
Utilisez la valeur par défaut.
|
Gestion de la passerelle
Une fois la passerelle créée, vous pouvez exécuter des commandes pour mettre à jour les composants client ou synchroniser les configurations lorsque des services sont ajoutés ou modifiés dans le cluster associé.
Mettre à jour les composants client
Si un nouveau service tel que Flink est ajouté au cluster EMR, vous pouvez installer de manière incrémentielle le client correspondant sur le nœud de passerelle. La commande deploy écrase les configurations d'application existantes et installe de manière incrémentielle les nouvelles.
# Example: Add the FLINK client to an existing HDFS and YARN setup
emrcli gateway deploy \
--clusterId <ClusterId> \
--appNames HDFS,YARN,FLINK
Une mise à jour réussie renvoie le message suivant :
deployGateway success
Synchroniser les configurations
Si vous modifiez une configuration de service dans le cluster EMR (par exemple, si vous modifiez core-site.xml dans la console E-MapReduce), vous devez synchroniser manuellement la nouvelle configuration vers le nœud de passerelle.
La synchronisation des configurations écrase les configurations existantes sur la passerelle. Procédez avec prudence.
# Run the synchronization command
emrcli gateway refreshConfigs \
--clusterId <ClusterId> \
--appNames <ApplicationName> # Optional. Specify the applications to synchronize.
Une synchronisation réussie renvoie le message suivant :
refreshConfiguration success
Gestion d'EMR-CLI
Afficher la version d'EMR-CLI
Exécutez la commande suivante pour afficher la version d'EMR-CLI.
emrcli version
La commande renvoie des informations similaires aux suivantes :
2.0.0
Mettre à niveau EMR-CLI
Pour effectuer une mise à niveau vers la dernière version, réexécutez l'étape d'installation d'EMR-CLI décrite dans la section Premier déploiement.
FAQ
Q : Comment changer de cluster de calcul ?
R : Pour changer de cluster de calcul, suivez ces étapes :
Pour éviter toute perte de données, utilisez la commande
mvpour sauvegarder manuellement les fichiers de l'ancien cluster. Sauvegardez le répertoire/opt/apps, le répertoire/etc/taihao-appset le fichier/etc/profile.d/yarn.sh.Suivez les étapes de cette rubrique pour redéployer l'environnement de passerelle pour le nouveau cluster.
> Instance Settings > Attach/Detach RAM Role