Déployer un cluster Apache Spark en mode gestionnaire/salarié
Apache Spark est une structure de calcul de cluster open source pour l'analyse des données. Oracle Cloud Infrastructure fournit une plate-forme fiable et performante pour l'exécution et la gestion de vos applications Big Data Apache Spark.
Architecture
Cette architecture déploie un cluster Apache Spark sur Oracle Cloud Infrastructure à l'aide du modèle manager/worker. Il dispose d'un noeud de gestionnaire et de trois noeuds de salarié, exécutés sur des instances de calcul.
Le diagramme suivant illustre cette architecture de référence.

Description de l'illustration spark-oci-png.png ci-après
L'architecture comporte les composants suivants :
- Région
Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient un ou plusieurs centres de données, appelés domaines de disponibilité. Les régions sont indépendantes des autres régions et de vastes distances peuvent les séparer (d'un pays à l'autre ou même d'un continent à l'autre).
- Domaine de disponibilité
Les domaines de disponibilité sont des centres de données autonomes et indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui permet de tolérer les pannes. Les domaines de disponibilité ne partagent pas d'infrastructure comme l'alimentation ou le refroidissement, ou le réseau de domaine de disponibilité interne. Il est donc peu probable qu'un échec dans un domaine de disponibilité affecte les autres domaines de disponibilité de la région.
- Domaine d'erreur
Un domaine de panne est un regroupement de matériel et d'infrastructure au sein d'un domaine de disponibilité. Chaque domaine de disponibilité dispose de trois domaines de pannes avec alimentation et matériel indépendants. Lorsque vous distribuez des ressources dans plusieurs domaines de panne, vos applications peuvent tolérer l'échec du serveur physique, la maintenance du système et les pannes d'alimentation dans un domaine de panne.
- Réseau cloud virtuel (VCN) et sous-réseaux
Un VCN est un réseau personnalisé et défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux traditionnels de centres de données, les VCN vous donnent un contrôle complet sur votre environnement réseau. Un VCN peut avoir plusieurs blocs CIDR sans chevauchement que vous pouvez modifier après avoir créé VCN. Vous pouvez segmenter un VCN en sous-réseaux, qui peuvent être étendus à une région ou à un domaine de disponibilité. Chaque sous-réseau se compose d'une plage contiguë d'adresses qui ne chevauchent pas les autres sous-réseaux de VCN. Vous pouvez modifier la taille d'un sous-réseau après la création. Un sous-réseau peut être public ou privé.
- Gestionnaire et salariés Apache Spark
L'instance de calcul hébergeant le gestionnaire Apache Spark est attachée à un sous-réseau public régional. Les travailleurs sont rattachés à un sous-réseau privé régional.
- Mode "block storage"
Avec les volumes de stockage de blocs, vous pouvez créer, attacher, connecter et déplacer des volumes de stockage, et modifier les performances de volume pour répondre à vos besoins en matière de stockage, de performances et d'application. Une fois que vous attachez et connectez un volume à une instance, vous pouvez utiliser le volume comme un disque dur régulier. Vous pouvez également déconnecter un volume et l'attacher à une autre instance sans perdre de données.
Le modèle de démarrage rapide Terraform fourni pour cette architecture fournit un volume de blocs de 700 Go pour chaque noeud de salarié. Lors du déploiement de l'architecture, vous pouvez choisir le nombre et la taille des volumes de blocs.
L'architecture utilise iSCSI, une norme TCP/IP, pour la communication entre les volumes et les instances jointes.
- Passerelle Internet
La passerelle Internet permet le trafic entre les sous-réseaux publics dans un VCN et Internet public.
- Passerelle NAT (Network Address Translation)
Une passerelle NAT permet aux ressources privées d'un VCN d'accéder à des hôtes sur Internet, sans les exposer aux connexions Internet entrantes.
Recommandations
Vos exigences peuvent différer de l'architecture décrite ici. Utilisez les recommandations suivantes comme point de départ.
- VCN
Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher à des sous-réseaux dans VCN. Utilisez les blocs CIDR qui se trouvent dans l'espace d'adresse IP privé standard.
Sélectionnez des blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données sur site ou un autre fournisseur cloud) auquel vous avez l'intention de configurer des connexions privées.
Après avoir créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.
Lorsque vous concevez les sous-réseaux, tenez compte de vos besoins en matière de flux de trafic et de sécurité. Attachez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, qui peut servir de limite de sécurité.
Utilisez des sous-réseaux régionaux.
- Formes de calcul
Cette architecture utilise une image de système d'exploitation Oracle Linux 7.7 avec une forme VM.Standard2.1 pour le gestionnaire et les noeuds de salarié. Si votre application a besoin de plus de mémoire, de noyaux ou de bande passante réseau, vous pouvez choisir une forme différente.
- Apache Spark et Hadoop
Même si Apache Spark peut s'exécuter seul, dans cette architecture, il s'exécute sur Hadoop.
Dans cette architecture, un noeud de gestionnaire unique et trois noeuds de salarié sont déployés dans le cluster Apache Spark.
- Sécurité
-
Utilisez Oracle Cloud Guard pour surveiller et maintenir la sécurité de vos ressources dans Oracle Cloud Infrastructure de manière proactive. Cloud Guard utilise des recettes de détecteur que vous pouvez définir pour examiner vos ressources pour détecter les faiblesses de sécurité et surveiller les opérateurs et les utilisateurs pour les activités à risque. Lorsqu'une fausse configuration ou une activité non sécurisée est détectée, Cloud Guard recommande des mesures correctives et aide à prendre ces mesures, en fonction des recettes de répondeur que vous pouvez définir.
-
Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette définie par Oracle de stratégies de sécurité basées sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir d'Internet public et elles doivent être cryptées à l'aide de clés gérées par le client. Lorsque vous créez et mettez à jour des ressources dans une zone de sécurité, Oracle Cloud Infrastructure valide les opérations par rapport aux stratégies de la recette de zone de sécurité et refuse les opérations qui violent l'une quelconque des stratégies.
-
Remarques
- Performances
Envisagez d'utiliser des formes Bare Metal pour les instances Compute pour le gestionnaire et les noeuds de salarié. Vous pouvez obtenir d'importants avantages en matière de performances en exécutant des applications Big Data sur un cluster Spark Bare Metal.
- Disponibilité
Les domaines de pannes offrent la meilleure résilience au sein d'un domaine de disponibilité unique. Vous pouvez déployer des instances de calcul qui effectuent les mêmes tâches dans plusieurs domaines de disponibilité. Cette conception élimine un seul point de défaillance en introduisant la redondance.
Vous pouvez également envisager de créer un noeud Spark Manager supplémentaire en tant que sauvegarde pour une haute disponibilité.
- Evolutivité
Vous pouvez mettre à l'échelle votre application à l'aide du pool d'instances et des fonctionnalités de redimensionnement automatique.
- A l'aide de pools d'instances, vous pouvez provisionner et créer plusieurs instances de calcul basées sur la même configuration dans la même région.
- La mise à l'échelle automatique permet d'ajuster automatiquement le nombre d'instances de calcul dans un pool d'instances, en fonction de mesures de performance telles que l'utilisation de l'UC.
- Stockage
Vous pouvez utiliser Oracle Cloud Infrastructure Object Storage pour stocker les données au lieu des volumes de blocs. Si vous utilisez le stockage d'objets, créez une passerelle de service pour la connectivité à partir de noeuds dans des sous-réseaux privés.
Oracle propose également Hadoop Distributed File System (HDFS) Connector for Oracle Cloud Infrastructure Object Storage. À l'aide du connecteur HDFS, vos applications Apache Hadoop peuvent lire et écrire des données à destination et à partir du stockage d'objet.
- Responsabilité
Cette architecture utilise Terraform pour créer l'infrastructure et déployer le cluster Spark.
Vous pouvez, à la place, utiliser le service entièrement géré, Oracle Cloud Infrastructure Data Flow, qui fournit une interface utilisateur riche pour permettre aux développeurs et aux data scientists de créer, modifier et exécuter des applications Apache Spark à n'importe quelle échelle sans avoir besoin de clusters, d'une équipe opérationnelle ou de connaissances Spark hautement spécialisées. En tant que service entièrement géré, il n'y a aucune infrastructure à déployer ou à gérer.
- Sécurité
Utilisez des stratégies pour restreindre qui peut accéder à vos ressources Oracle Cloud Infrastructure et quelles actions elles peuvent effectuer.
Déployer
Le code requis pour déployer cette architecture de référence est disponible dans GitHub. Vous pouvez extraire le code dans Oracle Cloud Infrastructure Resource Manager en un seul clic, créer la pile et le déployer. Vous pouvez également télécharger le code de GitHub sur votre ordinateur, personnaliser le code et déployer l'architecture à l'aide de la CLI Terraform.
- Déployer à l'aide d'Oracle Cloud Infrastructure Resource Manager :
- Cliquez sur
Si vous n'êtes pas déjà connecté, entrez les informations d'identification de location et d'utilisateur.
- Examinez et acceptez les conditions générales.
- Sélectionnez la région dans laquelle vous souhaitez déployer la pile.
- Suivez les invites à l'écran et les instructions pour créer la pile.
- Après avoir créé la pile, cliquez sur Actions Terraform et sélectionnez Plan.
- Attendez que le travail soit terminé et examinez le plan.
Pour apporter des modifications, revenez à la page Détails de la pile, cliquez sur Modifier la pile et apportez les modifications requises. Ensuite, réexécutez l'action Plan.
- Si aucune autre modification n'est nécessaire, revenez à la page Détails de pile, cliquez sur Actions Terraform et sélectionnez Appliquer.
- Cliquez sur
- Déployer à l'aide de la CLI Terraform :
- Accédez à GitHub.
- Cloner ou télécharger le référentiel sur votre ordinateur local.
- Suivez les instructions du document
README
.
Journal des modifications
Ce journal répertorie les modifications importantes :
27 avril 2022 |
Ajout de l'option permettant de télécharger des versions modifiables (. SVG et . DRAWIO) du diagramme d'architecture. |
29 janvier 2021 |
|