Configurer les moteurs Remote Engine Gen2 pour Amazon EMR - Cloud

Guide de démarrage rapide de Talend Remote Engine Gen2

EnrichVersion
Cloud
EnrichProdName
Talend Cloud
EnrichPlatform
Talend Management Console
Talend Pipeline Designer
task
Déploiement > Déploiement > Exécution de Pipelines
Installation et mise à niveau
Pour que le moteur Remote Engine Gen2 AMI fonctionne avec Amazon EMR, l'instance Livy s'exécutant dans votre moteur distant requiert les fichiers de configuration Hadoop provenant du cluster EMR cible.

Avant de commencer

  • Vous devez avoir un cluster EMR s’exécutant sur le même Cloud privé virtuel (VPC) que votre moteur Remote Engine Gen2. Pour plus d’informations concernant la création de votre groupe de sécurité et de votre VPC, consultez Créer le Remote Engine Gen2 à l'aide d'AWS CloudFormation.
  • Le Remote Engine Gen2 doit avoir accès aux instances maître et subordonnées d'Amazon EMR. Vous pouvez soit configurer les groupes de sécurité des instances d'Amazon EMR pour donner entièrement accès au groupe de sécurité du moteur, soit ouvrir les ports des services YARN trouvables dans la documentation Amazon.
  • Vous devez utiliser l’utilisateur ou l'utilisatrice root pour soumettre les Pipelines via le serveur Livy.
  • Les paramètres d’utilisation de différents computes doivent être définis du côté du cluster, dans le fichier core-site.xml, comme suit :
    <property>
      <name>hadoop.proxyuser.root.groups</name>
      <value>*</value>
    </property>
    <property>
      <name>hadoop.proxyuser.root.hosts</name>
      <value>*</value>
    </property>
    • Vous pouvez configurer le cluster lors de sa création, comme décrit dans la documentation Amazon, avec les paramètres suivants :
      [
        {
          "Classification": "core-site",
          "Properties": {
            "hadoop.proxyuser.root.hosts": "*",
            "hadoop.proxyuser.root.groups": "*"
          }
        }
      ]
    • ou vous pouvez ajouter ce paramètre après le démarrage du cluster, si vous devez le redémarrer, comme décrit dans la documentation Amazon (en anglais) afin de prendre en compte les modifications.
  • Informations relatives aux ports : assurez-vous que l'application Remote Engine Gen2 autorise la connexion au port 9005 depuis les instances d'Amazon EMR.

Procédure

  1. Copiez les fichiers de configuration depuis /etc/hadoop/conf dans le dossier /opt/talend/data/etc/hadoop dans l’instance cliente de Remote Engine Gen2.
    • hdfs-site.xml
    • mapred-site.xml
    • yarn-site.xml :
    • core-site.xml :
  2. Du côté de Remote Engine Gen2, modifiez les fichiers suivants pour répondre aux prérequis de Talend Pipeline Designer :
    • core-site.xml :

      Modifiez la propriété io.compression.codecs avec la valeur
      org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.SnappyCodec
    • hdfs-site.xml :

      Ajoutez la propriété dfs.client.use.datanode.hostname avec la valeur true

    • yarn-site.xml :

      Modifiez la propriété yarn.timeline-service.enabled avec la valeur false

  3. Côté cluster EMR, créez le dossier /user/talend dans HDFS :
    hadoop fs -mkdir -p /user/talend
    hadoop fs -chown -R talend:talend /user/talend
    Remarque : Vous devez vous connecter au nœud maître avec SSH en utilisant l'utilisateur ou l'utilisatrice Hadoop ayant les droits pour exécuter ces commandes.
  4. Côté cluster EMR, créez deux dossiers à l'emplacement de votre choix et donnez-leur la possession root:root.

    Exemple

    hadoop fs -mkdir -p /talend/deps/pdesigner
    hadoop fs -mkdir -p /talend/deps/runtime
    hadoop fs -chown -R root:root /talend/deps
    Remarque : Vous devez donner à l'utilisateur ou l'utilisatrice root la possession de ces dossiers pour que les bibliothèques puissent être chargées avec le script emr-init.sh.
  5. Côté Remote Engine Gen2, exportez les variables d'environnement suivantes :
    • HDFS_DSS_DEPENDENCIES_PATH vers /talend/deps/pdesigner
    • HDFS_RUNTIME_DEPENDENCIES_PATH vers /talend/deps/runtime
  6. Exécutez le script emr-init.sh situé dans /opt/talend/emr.
  7. Redémarrez Livy en exécutant cette commande :
    cd /opt/talend && docker-compose restart livy

Que faire ensuite

  • Connectez-vous à Talend Cloud Management Console, allez dans la page Engines et créez un profil d'exécution Big Data.
  • Définissez les propriétés obligatoires suivantes dans le profil d’exécution (les valeurs peuvent être différentes en fonction de votre configuration) :
    spark.yarn.archive=hdfs:///talend/deps/runtime/spark-runtime.zip
    spark.dss.dependencies.path=hdfs:///talend/deps/pdesigner
  • Liez le profil d’exécution au moteur Remote Engine Gen2 précédemment configuré.