Amazon Simple Storage Service (S3) est un service de stockage d’objets hautement évolutif, durable et sécurisé proposé par Amazon Web Services (AWS). S3 permet aux entreprises de stocker et de récupérer n’importe quelle quantité de données de n’importe où sur le Web en utilisant ses services de niveau entreprise. S3 est conçu pour être hautement interopérable et s’intègre de manière transparente avec d’autres outils et technologies Amazon Web Services (AWS) et tiers pour traiter les données stockées dans Amazon S3. L’un d’entre eux est Amazon EMR (Elastic MapReduce), qui vous permet de traiter de grandes quantités de données à l’aide d’outils open source tels que Spark.
Apache Spark est un système informatique distribué open source utilisé pour le traitement de données à grande échelle. Spark est conçu pour permettre la vitesse et prend en charge diverses sources de données, y compris Amazon S3. Spark offre un moyen efficace de traiter de grandes quantités de données et d’effectuer des calculs complexes en un minimum de temps.
Memphis.dev est une alternative de nouvelle génération aux courtiers de messages traditionnels.
Un courtier de messages cloud natif simple, robuste et durable, entouré d’un écosystème complet qui permet un développement rentable, rapide et fiable de cas d’utilisation modernes basés sur des files d’attente.
Le modèle courant des courtiers de messages consiste à supprimer les messages après avoir passé la politique de rétention définie, comme l’heure/la taille/le nombre de messages. Memphis propose un deuxième niveau de stockage pour une conservation plus longue, voire infinie, des messages stockés. Chaque message expulsé de la station migrera automatiquement vers le 2e niveau de stockage, qui, dans ce cas, est AWS S3.
Dans ce didacticiel, vous serez guidé tout au long du processus de configuration d’une station Memphis avec une 2e classe de stockage connectée à AWS S3. Un environnement sur AWS. Suivi par la création d’un compartiment S3, la configuration d’un cluster EMR, l’installation et la configuration d’Apache Spark sur le cluster, la préparation des données dans S3 pour le traitement, le traitement des données avec Apache Spark, les meilleures pratiques et le réglage des performances.
Configuration de l’environnement
Memphis
- Pour commencer, installez d’abord Memphis.
- Activez l’intégration AWS S3 via le « Centre d’intégration de Memphis.”
3. Créez une station (sujet) et choisissez une stratégie de rétention.
Chaque message passant la stratégie de rétention configurée sera déchargé vers un compartiment S3.
4. Vérifiez l’intégration AWS S3 nouvellement configurée en tant que 2ème classe de stockage en cliquant sur « Connecter.”
5. Commencez à produire des événements dans votre nouvelle station Memphis.
Créer un compartiment AWS S3
Si vous ne l’avez pas déjà fait, vous devez créer un compte AWS sur la page officielle d’AWS. Ensuite, créez un compartiment S3 dans lequel vous pouvez stocker vos données. Vous pouvez utiliser l’AWS Management Console, l’AWS CLI ou un SDK pour créer un compartiment. Pour ce didacticiel, vous utiliserez la console de gestion AWS ici.
Cliquer sur « Créer un compartiment.”
Procédez ensuite à la création d’un nom de compartiment conforme à la convention de dénomination et choisissez la région dans laquelle vous souhaitez placer le compartiment. Configurez le « Propriété de l’objet » et « Bloquer tous les accès publics” à votre cas d’utilisation.
Assurez-vous de configurer d’autres autorisations de compartiment pour permettre à votre application Spark d’accéder aux données. Enfin, cliquez sur le «Créer un bucket” pour créer le bucket.
Configuration d’un cluster EMR avec Spark installé
Amazon Elastic MapReduce (EMR) est un service Web basé sur Apache Hadoop qui permet aux utilisateurs de traiter de manière rentable de grandes quantités de données à l’aide de technologies Big Data, notamment Apache Spark. Pour créer un cluster EMR avec Spark installé, ouvrez la console EMR ici et sélectionnez « Groupes » sous « DME sur EC2” sur le côté gauche de la page.
Cliquer sur « Créer un cluster” et donnez au cluster un nom descriptif.
Sous « Ensemble d’applications, » sélectionner « Étincelle” pour l’installer sur votre cluster.
Faites défiler jusqu’à « Journaux de cluster » et cochez la case « Publier des journaux spécifiques au cluster sur Amazon S3.”
Cela créera une invite pour entrer l’emplacement Amazon S3 en utilisant le nom du compartiment S3 que vous avez créé à l’étape précédente, suivi de /logs
c’est à dire., s3: //myawsbucket/logs . /logs
sont requis par Amazon pour créer un nouveau dossier dans votre compartiment où Amazon EMR peut copier les fichiers journaux de votre cluster.
Allez dans le « Section Configuration de la sécurité et autorisations« , et saisissez votre paire de clés EC2 ou optez pour l’option d’en créer une.
Cliquez ensuite sur les options déroulantes pour « Rôle de service pour Amazon EMR» et choisissez «AWSServiceRoleForSupportAWSServiceRoleForSupportAWSServiceRoleForSupportAWSServiceRoleForSupport.” Choisissez la même option de menu déroulant pour « Rôle IAM pour le profil d’instance.” Actualisez l’icône si nécessaire pour obtenir ces options de liste déroulante.
Enfin, cliquez sur le « Créer un cluster” pour lancer le cluster et surveiller l’état du cluster pour valider sa création.
Installation et configuration d’Apache Spark sur le cluster EMR
Après avoir créé avec succès un cluster EMR, l’étape suivante consistera à configurer Apache Spark sur le cluster EMR. Les clusters EMR fournissent un environnement géré pour l’exécution des applications Spark sur l’infrastructure AWS, ce qui facilite le lancement et la gestion des clusters Spark dans le cloud. Il configure Spark pour qu’il fonctionne avec vos données et vos besoins de traitement, puis soumet des tâches Spark au cluster pour traiter vos données.
Vous pouvez configurer Apache Spark sur le cluster avec le protocole Secure Shell (SSH). Tout d’abord, vous devez autoriser les connexions de sécurité SSH à votre cluster, qui a été défini par défaut lors de la création du cluster EMR. Un guide sur la façon d’autoriser les connexions SSH peut être trouvé ici.
Pour créer une connexion SSH, vous devez spécifier la paire de clés EC2 que vous avez sélectionnée lors de la création du cluster. Ensuite, connectez-vous au cluster EMR à l’aide du shell Spark en connectant le nœud principal. Vous devez récupérer le DNS public maître du nœud principal en :
- Naviguer vers la gauche de la console AWS.
- Sous EMR sur EC2, choisissez « Groupes.”
- Sélectionnez le cluster du nom DNS public que vous souhaitez obtenir.
Sur votre terminal OS, saisissez la commande suivante :
ssh hadoop@ec2-###-##-##-###.compute-1.amazonaws.com -i ~/mykeypair.pem
Remplace le ec2-###-##-##-###.compute-1.amazonaws.com
avec le nom de votre DNS public maître et le ~/mykeypair.pem
avec le nom de fichier et le chemin de votre .pem
déposer. Un message d’invite apparaîtra et votre réponse devrait être « Oui.” Tapez « sortie” pour fermer la commande SSH.
Préparation des données pour le traitement avec Spark et chargement dans le compartiment S3
Le traitement des données nécessite une préparation avant le téléchargement pour présenter les données dans un format que Spark peut facilement traiter. Le format utilisé dépend du type de données dont vous disposez et de l’analyse que vous prévoyez d’effectuer. Certains formats utilisés incluent CSV, JSON et Parquet.
Créez une nouvelle session Spark et chargez vos données dans Spark à l’aide de l’API appropriée. Par exemple, utilisez le spark.read.csv()
méthode pour lire les fichiers CSV dans un Spark DataFrame.
Amazon EMR, un service géré pour les clusters de l’écosystème Hadoop, peut être utilisé pour traiter les données. Cela réduit le besoin de configurer, d’ajuster et de gérer les clusters. Il propose également d’autres intégrations avec Amazon SageMaker, par exemple, pour démarrer une tâche de formation de modèle SageMaker à partir d’un pipeline Spark dans Amazon EMR.
Une fois vos données prêtes, utilisez le DataFrame.write.format(“s3”)
, vous pouvez lire un fichier CSV du compartiment Amazon S3 dans un Spark DataFrame. Vous devez avoir configuré vos informations d’identification AWS et disposer d’autorisations écrites pour accéder au compartiment S3.
Indiquez le compartiment S3 et le chemin où vous souhaitez enregistrer les données. Par exemple, vous pouvez utiliser le df. write .format( “s3” ). save ( “s3://my-bucket/path/to/data” )
pour enregistrer les données dans le compartiment S3 spécifié.
Une fois les données enregistrées dans le compartiment S3, vous pouvez y accéder à partir d’autres applications ou outils Spark, ou vous pouvez les télécharger pour une analyse ou un traitement plus approfondi. Pour charger le bucket, créez un dossier et choisissez le bucket que vous avez initialement créé. Choisir la « Actions» et cliquez sur «Créer le dossier” dans les éléments déroulants. Vous pouvez maintenant nommer le nouveau dossier.
Pour importer les fichiers de données dans le bucket :
- Sélectionnez le nom du dossier de données.
- Dans le « Télécharger, » sélectionner « Assistant de fichiers», et choisissez «Ajouter des fichiers.”
- Continuez avec la direction de la console Amazon S3 pour télécharger les fichiers et sélectionnez « Commence le téléchargement.”
Il est important de prendre en compte et de garantir les meilleures pratiques de sécurisation de vos données avant de télécharger vos données dans le compartiment S3.
Comprendre les formats de données et les schémas
Les formats de données et les schémas sont deux concepts liés, mais complètement différents et importants, dans la gestion des données. Le format des données fait référence à l’organisation et à la structure des données dans la base de données. Il existe différents formats pour stocker les données, c’est-à-dire CSV, JSON, XML, YAML, etc. Ces formats définissent la manière dont les données doivent être structurées aux côtés des différents types de données et d’applications qui leur sont applicables. Alors que les schémas de données sont la structure de la base de données elle-même. Il définit la disposition de la base de données et garantit que les données sont stockées de manière appropriée. Un schéma de base de données spécifie les vues, les tables, les index, les types et d’autres éléments. Ces concepts sont importants dans l’analyse et la visualisation de la base de données.
Nettoyage et prétraitement des données dans S3
Il est essentiel de revérifier les erreurs dans vos données avant de les traiter. Pour commencer, accédez au dossier de données dans lequel vous avez enregistré le fichier de données dans votre compartiment S3 et téléchargez-le sur votre ordinateur local. Ensuite, vous chargerez les données dans l’outil de traitement des données, qui sera utilisé pour nettoyer et prétraiter les données. Pour ce didacticiel, l’outil de prétraitement utilisé est Amazon Athena, qui permet d’analyser les données non structurées et structurées stockées dans Amazon S3.
1. Accédez à Amazon Athena dans la console AWS.
2. Cliquez sur «Créer » pour créer une nouvelle table, puis « CRÉER UN TABLEAU.”
3. Tapez le chemin de votre fichier de données dans la partie surlignée comme « EMPLACEMENT.”
4. Suivez les invites pour définir le schéma des données et enregistrez la table. Maintenant, vous pouvez exécuter une requête pour valider que les données sont chargées correctement, puis nettoyer et prétraiter les données. Par exemple : Cette requête identifie les doublons présents dans les données :
SELECT row1, row2, COUNT(*)
FROM table
GROUP row, row2
HAVING COUNT(*) > 1;
…