eadl:bloc5:fm3:td2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
eadl:bloc5:fm3:td2 [2026/09/27 14:15] – [Préparation — vérifier les éléments disponibles] jcheroneadl:bloc5:fm3:td2 [2026/09/28 07:17] (Version actuelle) – [5.2 Vérifier les chemins S3] jcheron
Ligne 81: Ligne 81:
   - récupérez `mapper.py` et `reducer.py` du TD1 ;   - récupérez `mapper.py` et `reducer.py` du TD1 ;
   - vérifiez que vous avez accès à la console AWS ;   - vérifiez que vous avez accès à la console AWS ;
-  - sélectionnez la région demandée par l’enseignant ; +  - sélectionnez la région AWS ''eu-west-3''.
-  - récupérez ou créez une paire de clés EC2 selon la procédure du cours ; +
-  - identifiez le bucket S3 attribué à votre binôme ou créez-en un uniquement si l’enseignant l’autorise. +
- +
-<WRAP important round> +
-**Ne mettez jamais une clé AWS, un mot de passe, une clé privée SSH ou un jeton dans un fichier envoyé sur S3.** Une clé SSH privée doit rester sur votre poste, avec des permissions restrictives : +
- +
-<sxh bash;gutter:false> +
-chmod 400 ma-cle-emr.pem +
-</sxh> +
-</WRAP>+
  
 ---- ----
Ligne 117: Ligne 107:
 Dans la configuration logicielle : Dans la configuration logicielle :
  
-  - sélectionnez une version EMR disponible et validée par l’enseignant ; +  - sélectionner la version EMR **emr-7.14.0** ; 
-  - conservez une version compatible avec Hadoop, HDFS, YARN et MapReduce Streaming ; +  - choisir l'offre d'applications **Spark Interactive**, qui installe automatiquement Hadoop, YARN, HDFS et MapReduce (inclus dans le socle Hadoop, non affichés séparément dans la liste des applications) ; 
-  - sélectionnez les composants Hadoop nécessaires, notamment **Hadoop**, **YARN**, **MapReduce** et **HDFS** lorsqu’ils sont proposés séparément ; +  - vérifier que Hive, Spark, Livy et JupyterEnterpriseGateway sont bien cochés (sélection par défaut de cette offre) ; 
-  - ne sélectionnez pas de composants inutiles pour ce TD ; +  - ne cocher aucune application supplémentaire (Pig, Oozie, HBase, Presto, Trino, Zeppelin, Flink, TensorFlow, etc.) : elles ne sont pas nécessaires pour ce TD et alourdissent inutilement le démarrage du cluster ; 
-  - notez la version exacte affichée.+  - noter la version exacte affichée dans la console.
  
 <WRAP tip round> <WRAP tip round>
-Les noms de menus et la version exacte peuvent évoluer dans la console. Ce qui compte ici est de relever la **release EMR**, la version Hadoop et les applications réellement installées, plutôt que de recopier aveuglément une capture d’écran.+Les noms de menus et la version exacte peuvent évoluer dans la console. Ce qui compte ici est de relever la **release EMR**, la version Hadoop et les applications réellement installées, plutôt que de recopier aveuglément une capture d'écran.
 </WRAP> </WRAP>
  
 ^ Élément observé ^ Valeur de notre cluster ^ Pourquoi cette valeur ? ^ ^ Élément observé ^ Valeur de notre cluster ^ Pourquoi cette valeur ? ^
-| Région AWS |  | même région pour limiter les transferts et simplifier l’accès |  +| Région AWS (sélecteur en haut à droite de la console, choisie avant de créer le cluster) | (ex. eu-west-3) | même région pour limiter les transferts et simplifier l'accès | 
-| Release EMR |  | version imposée ou validée par l’enseignant |  +| Release EMR | emr-7.14.0 | dernière version stable en 7.x, compatible Hadoop 3.x | 
-| Hadoop |  | stockage et traitements étudiés dans le TD1 |  +| Offre d'applications | Spark Interactive | inclut Hadoop, Hive, Spark, Livy, JupyterEnterpriseGateway | 
-| YARN |  | gestion des ressources et des applications |  +| Hadoop | 3.4.2 | stockage et traitements étudiés dans le TD1 | 
-| MapReduce |  | exécution du job Streaming |  +| YARN | inclus avec Hadoop 3.4.2 | gestion des ressources et des applications | 
-| HDFS |  | comparaison avec le stockage local du TD1 | +| MapReduce | inclus avec Hadoop 3.4.2 | exécution du job Streaming | 
 +| HDFS | inclus avec Hadoop 3.4.2 | comparaison avec le stockage local du TD1 | 
 +| Hive | 3.1.3 | non utilisé directement dans ce TD, mais installé par défaut avec l'offre | 
 +| Spark | 3.5.x | traitements distribués étudiés dans les missions suivantes | 
 +| Applications non sélectionnées | Pig, Oozie, HBase, Presto, Trino, Zeppelin, Flink, TensorFlow, Zookeeper, Phoenix, Hue, JupyterHub, HCatalog, AmazonCloudWatchAgent | hors périmètre du TD (streaming, NoSQL, ML, orchestration, monitoring avancé) |
  
 +<WRAP info round>
 +**Remarque** : YARN, HDFS et MapReduce ne sont pas des cases à cocher séparées dans la console EMR — ils font partie intégrante du socle Hadoop installé dès que "Hadoop" est sélectionné (ce qui est automatique avec l'offre Spark Interactive). Il n'y a donc pas de choix à faire les concernant, seulement à vérifier leur présence et leur version dans les détails du cluster une fois créé.
 +</WRAP>
 ===== 1.3 Comprendre les nœuds ===== ===== 1.3 Comprendre les nœuds =====
  
-Dans la section matériel / instance groups ou instance fleets, choisissez une configuration pédagogique petite. Une configuration typique est :+Dans la section matériel, la console AWS propose un choix entre **groupes d'instances uniformes** (par défaut) et **flottes d'instances flexibles**. Gardez le mode par défaut pour ce TD.
  
-  * **1 nœud primaire (master)** ; +La console affiche alors trois rôles :
-  * **2 nœuds core** ; +
-  * **0 ou 1 nœud task** selon le quota et la consigne de l’enseignant.+
  
-Le type d’instance doit être celui autorisé dans votre compte de formation. Pour ce TD, cherchez une instance généraliste peu coûteuse, avec suffisamment de mémoire pour Hadoop. Ne choisissez pas une instance accélérée ou surdimensionnée « pour aller plus vite » sans validation.+  * **Primaire** ; 
 +  * **Unité principale** ; 
 +  * **Tâche - 1** (et suivantes si plusieurs nœuds de ce type). 
 + 
 +Remplacez le type d'instance par défaut par une instance généraliste standard, plus universellement compatible :
  
 <sxh text> <sxh text>
-Exemple pédagogique à adapter aux quotas du compte : +Configuration recommandée pour ce TD : 
-  Primary / Master : 1 instance généraliste +  Primaire         : m5.xlarge 
-  Core            : 2 instances généralistes +  Unité principale : m5.xlarge 
-  Task            : 0 au départ+  Tâche - 1        : m5.xlarge
 </sxh> </sxh>
  
-^ Groupe EMR ^ Nombre choisi ^ Type d’instance ^ Rôle attendu ^ +^ Groupe EMR ^ Nombre choisi ^ Type d'instance ^ Rôle attendu ^ 
-| Primary / Master |  |  | services de coordination, NameNode, ResourceManager |  +| Primaire | 1 | m5.xlarge | services de coordination, NameNode, ResourceManager | 
-| Core |  |  | stockage HDFS et exécution YARN |  +| Unité principale | 1 | m5.xlarge | stockage HDFS et exécution YARN | 
-| Task |  |  | exécution YARN sans stockage HDFS durable du cluster | +| Tâche - 1 | 1 | m5.xlarge | exécution YARN sans stockage HDFS durable du cluster | 
 + 
 +<WRAP tip round> 
 +La famille **m5** est une famille d'instances généralistes (x86_64, Intel), le choix le plus répandu et documenté pour EMR/Hadoop. Elle offre un bon équilibre CPU/mémoire, suffisant pour ce TD. 
 + 
 +À noter : avec une seule instance d'unité principale, la réplication HDFS par défaut (facteur 3) ne peut pas être pleinement respectée (il faudrait au moins 3 instances d'unité principale pour avoir 3 copies sur des machines différentes). C'est acceptable dans ce contexte pédagogique à petite échelle, mais c'est un point à mentionner dans vos observations si on vous interroge sur la tolérance aux pannes de ce cluster. 
 +</WRAP> 
  
 ===== 1.4 Faire le rapprochement avec le TD1 ===== ===== 1.4 Faire le rapprochement avec le TD1 =====
Ligne 174: Ligne 180:
   - Le nombre de nœuds choisi suffit-il à démontrer une tolérance de panne réelle ? Pourquoi ?   - Le nombre de nœuds choisi suffit-il à démontrer une tolérance de panne réelle ? Pourquoi ?
  
-===== 1.5 Configurer les rôles IAM =====+===== 1.5 Réseau =====
  
-La console propose des rôles IAM pour EMR et EC2, souvent créés automatiquement ou sélectionnés parmi des rôles par défaut :+Sur un compte AWS standard, un **VPC par défaut** existe déjà dans chaque région, avec un subnet public dans chaque zone de disponibilité. EMR le sélectionne automatiquement : **il n'y a rien à créer ni configurer manuellement** pour ce TD.
  
-  - rôle de service EMR ; +Dans la section réseau de l'assistant de création :
-  - profil d’instance EC2 pour les nœuds ; +
-  - rôle souvent associé à l’auto-scaling selon les options retenues.+
  
-Utilisez les rôles pédagogiques déjà fournis lorsque l’enseignant les a préparés. Sinon, choisissez l’option de création recommandée par la console, sans ajouter de permissions administrateur « pour simplifier ».+  1. vérifiez que le VPC proposé est bien le VPC par défaut (``vpc-xxxxxxxx (default)``) ; 
 +  2. un subnet est présélectionné : laissez la valeur proposée ; 
 +  3. les security groups sont créés automatiquement par EMR (un pour le master, un pour les core/task) si vous ne modifiez rien.
  
-^ Élément IAM ^ Valeur sélectionnée ^ À quoi sert-il ? ^ +Notez les valeurs proposées automatiquement :
-| EMR service role |  | autoriser EMR à gérer les ressources nécessaires |  +
-| EC2 instance profile |  | permettre aux instances d’appeler les services autorisés, notamment S3 selon la configuration |  +
-| Rôle d’auto-scaling |  | seulement si l’option est utilisée | +
  
-<WRAP important round> +^ Paramètre réseau ^ Valeur ^ Observation ^ 
-**Ne confondez pas authentification et autorisation.** La clé SSH permet l’accès système à une instance autorisée. Les rôles IAM permettent aux services et aux instances d’appeler d’autres services AWS. Une clé SSH ne donne pas, à elle seule, les droits S3.+| VPC |  | par défaut |  
 +| Subnet |  | public (zone de disponibilité) |  
 +| Security group master |  | créé automatiquement par EMR |  
 +| Security group core/task |  | créé automatiquement par EMR |  
 +| Adresse publique du master |  | oui, par défaut sur subnet public |  
 + 
 +<WRAP tip round> 
 +Le security group du master créé par défaut n'autorise pas le SSH entrant. Il faudra l'ouvrir manuellement après la création du cluster (voir section suivante) pour pouvoir vous connecter.
 </WRAP> </WRAP>
  
-Question : quelles permissions minimales votre job doit-il avoir pour lire `s3://.../input/` et écrire `s3://.../output/` ? Pourquoi est-il préférable de limiter les droits au bucket et aux préfixes du TD ?+Répondez :
  
-===== 1.6 Choisir le réseau =====+  - Pourquoi un cluster peut-il avoir besoin d'une communication interne même si vous ne vous connectez qu'au master ? 
 +  - Pourquoi les nœuds core et task ne doivent-ils généralement pas être ouverts directement à Internet ? 
 +  - Dans Docker Compose, quelles règles de réseau étaient implicites ou locales ? 
 +===== 1.6 Paire de clés EC2 (accès SSH) =====
  
-Dans la section réseau :+Pour pouvoir se connecter en SSH au nœud primaire du cluster (console, exécution manuelle de commandes Hadoop, consultation de fichiers de logs), une **paire de clés EC2** est nécessaire.
  
-  1. sélectionnez le VPC pédagogique indiqué ; +  - Si vous possédez déjà une paire de clés EC2 dans la région utilisée, vous pouvez la réutiliser. 
-  2. choisissez le subnet autorisé ; +  - Sinon, créez-en une nouvelle **avant** de lancer le cluster :
-  3. si le master doit être joint en SSH depuis Internet, vérifiez que le subnet est public et qu’une route vers une Internet Gateway existe, selon la consigne de l’enseignant ; +
-  4. choisissez ou créez les security groups recommandés par la formation ; +
-  5. activez l’accès SSH uniquement depuis votre adresse IP lorsque la console le permet, jamais depuis `0.0.0.0/0` sauf démonstration explicitement encadrée et immédiatement supprimée.+
  
-Notez :+<sxh text> 
 +Étapes (en dehors de la création du cluster EMR) : 
 +  EC2 > Réseau et sécurité > Paires de clés > Créer une paire de clés 
 +  Nom : td-hadoop-votrenom 
 +  Type de clé : RSA 
 +  Format de fichier privé : 
 +     - .pem si vous vous connectez depuis Linux/Mac ou WSL 
 +     - .ppk si vous utilisez PuTTY sous Windows 
 +</sxh>
  
-^ Paramètre réseau ^ Valeur ^ Observation ^ +<WRAP important> 
-| VPC |  |  |  +Le fichier de clé privée est **téléchargé une seule fois**. Conservez-le précieusement (par exemple dans votre dossier utilisateur, avec des droits restreints) : il ne pourra pas être retéléchargé depuis la console AWS.
-| Subnet |  | public, privé ou autre |  +
-| Security group master |  | ports autorisés |  +
-| Security group core/task |  | accès interne entre nœuds |  +
-| Adresse publique du master |  | oui / non | +
  
-Répondez :+Sous Linux/Mac, pensez à restreindre les droits du fichier avant de l'utiliser : 
 +<sxh bash> 
 +chmod 400 td-hadoop-votrenom.pem 
 +</sxh> 
 +</WRAP>
  
-  - Pourquoi un cluster peut-il avoir besoin d’une communication interne même si vous ne vous connectez qu’au master ? +Dans la configuration du cluster EMR, section **Sécurité**, sélectionnez cette paire de clés dans le menu déroulant **Paire de clés EC2 (SSH)**. 
-  - Pourquoi les nœuds core et task ne doivent-ils généralement pas être ouverts directement à Internet ? + 
-  - Dans Docker Compose, quelles règles de réseau étaient implicites ou locales ?+===== 1.7 Rôles IAM ===== 
 + 
 +EMR nécessite deux rôles IAM pour fonctionner : 
 + 
 +  * un **rôle de service EMR** (permet à EMR de gérer les ressources EC2, réseau, etc. en votre nom) ; 
 +  * un **rôle de profil d'instance EC2** (attaché aux nœuds du cluster, permet l'accès à S3, CloudWatch, etc.). 
 + 
 +Dans la section **Rôle IAM**, AWS propose deux options pour chacun de ces deux rôles : 
 + 
 +  * **Choisir une fonction du service existant** : sélectionne un rôle déjà créé auparavant ; 
 +  * **Créer une fonction du service** : AWS crée automatiquement le rôle nécessaire. 
 + 
 +<WRAP tip round> 
 +**Cas attendu : votre compte est un compte AWS standard (personnel, free tier ou passé en basic)** 
 + 
 +Sur ce type de compte, vous disposez normalement des droits IAM complets. Choisissez **Créer une fonction du service** pour les deux champs. AWS génère automatiquement les rôles nécessaires, généralement nommés : 
 +  - ``EMR_DefaultRole`` ou ``AmazonEMR-ServiceRole-xxxx`` (rôle de service) ; 
 +  - ``EMR_EC2_DefaultRole`` ou ``AmazonEMR-InstanceProfile-xxxx`` (profil d'instance EC2). 
 + 
 +Ces rôles seront ensuite proposés automatiquement lors des prochaines créations de cluster. C'est le cas normal et attendu pour ce TD. 
 +</WRAP> 
 + 
 +<WRAP important> 
 +**Cas exceptionnel : erreur de création (droits IAM restreints ou rôle déjà partiellement créé)** 
 + 
 +Il peut arriver, même sur un compte standard, qu'**un des deux rôles existe déjà** (par exemple suite à un essai antérieur) **sans que le second n'existe**. Ce n'est pas incohérent : ce sont deux ressources IAM indépendantes. 
 + 
 +Si vous tentez **Créer une fonction du service** pour le champ **Fonction du service EC2** et obtenez une erreur du type : 
 + 
 +<code> 
 +Échec de la création du rôle EMR_EC2_DefaultRole. Vous n'obtenez peut-être pas l'autorisation nécessaire pour effectuer cette action. 
 +</code> 
 + 
 +**Marche à suivre dans ce cas :** 
 + 
 +  - Retournez sur **Choisir une fonction du service existant** pour le champ **Fonction du service EC2** ; 
 +  - vérifiez si un rôle apparaît dans la liste déroulante, par exemple ``EMR_EC2_DefaultRole`` (déjà créé lors d'un essai précédent) ; 
 +  - sélectionnez-le s'il apparaît. 
 + 
 +**Si l'erreur persiste ou si aucun rôle n'apparaît**, signalez-le à l'enseignant : cela peut indiquer une restriction particulière sur votre compte à vérifier. 
 +</WRAP>
  
-===== 1.7 Associer la clé SSH et créer le cluster =====+===== 1.8 Associer la clé SSH et créer le cluster =====
  
 1. Sélectionnez la paire de clés EC2 fournie ou créée pour le TD. 1. Sélectionnez la paire de clés EC2 fournie ou créée pour le TD.
Ligne 232: Ligne 290:
 </WRAP> </WRAP>
  
-===== Bilan de la mission 1 ===== 
- 
-Complétez : 
- 
-  - Le temps entre le clic sur « créer » et l’état utilisable est de : `__________`. 
-  - Les choix qui ont demandé le plus de réflexion sont : `__________`. 
-  - La différence principale entre un cluster EMR et les conteneurs du TD1 est : `__________`. 
- 
----- 
  
 ====== Mission 2 — Explorer le cluster depuis le master ====== ====== Mission 2 — Explorer le cluster depuis le master ======
Ligne 256: Ligne 305:
 </sxh> </sxh>
  
-Le nom d’utilisateur dépend de l’image et de la configuration affichées par l’enseignant. Pour une AMI EMR standard, `hadoop` est couramment utilisé ; ne remplacez pas ce nom au hasard si la consigne de votre compte indique autre chose.+Le nom d’utilisateur dépend de l’image. Pour une AMI EMR standard, `hadoop` est couramment utilisé ; ne remplacez pas ce nom au hasard si la consigne de votre compte indique autre chose.
  
 À la première connexion, vérifiez l’empreinte proposée. Si vous obtenez `Permission denied (publickey)`, contrôlez le chemin de la clé, `chmod 400`, le nom d’utilisateur et la règle SSH du security group. À la première connexion, vérifiez l’empreinte proposée. Si vous obtenez `Permission denied (publickey)`, contrôlez le chemin de la clé, `chmod 400`, le nom d’utilisateur et la règle SSH du security group.
Ligne 571: Ligne 620:
 </sxh> </sxh>
  
-Hadoop refuse généralement d’écrire dans un répertoire de sortie déjà présent. Utilisez un nouveau préfixe ou supprimez uniquement votre ancien résultat de test si l’enseignant l’autorise.+Hadoop refuse généralement d’écrire dans un répertoire de sortie déjà présent.
  
 ===== 5.3 Lancer le job ===== ===== 5.3 Lancer le job =====
  • eadl/bloc5/fm3/td2.1790511343.txt.gz
  • Dernière modification : il y a 23 heures
  • de jcheron