Perspectives

Amazon EMR, une plateforme Hadoop facile à mettre en place

Actian Corporation

3 mai 2016

graphiques et diagrammes de performance des données

Récemment, j'ai aidé un client à évaluer Actian Vector in Hadoop (VectorH) pour voir s'il pouvait maintenir une performance de " quelques secondes " alors que la taille des données passait de un à des dizaines de milliards de lignes (ce qui a été le cas, mais ce n'est pas le sujet de cet article).

Le client en question n'était que modérément investi dans Hadoop et cherchait donc un moyen d'établir l'environnement sans avoir à se plonger dans les détails de Hadoop. Cela correspond parfaitement à la vision d'Actian pour les versions Hadoop de ses logiciels - permettre aux clients d'exécuter des applications réelles pour les utilisateurs professionnels dans Hadoop sans avoir à entrer dans les aspects "lourds" pour les développeurs que Hadoop exige généralement.

Actian a lancé un outil d'approvisionnement appelé Actian Management Console (AMC) qui installera et configurera le système d'exploitation, Hadoop et le logiciel Actian d'un simple clic sur un bouton, ce qui sera idéal pour ce client. AMC prend actuellement en charge les nuages Amazon EC2 et Rackspace.

Cependant, au moment de l'évaluation, AMC n'était pas disponible. Nous avons donc cherché autre chose et avons pensé essayer EMR (Elastic MapReduce) d'Amazon, qui est un moyen rapide de mettre en place un Cluster Hadoop et de le faire fonctionner avec un minimum d'effort. Cet article examine ce que nous avons trouvé et énumère les avantages et les inconvénients.

Avantages et inconvénients d'Amazon EMR

EMR est très facile à mettre en place - il suffit d'aller dans la console Amazon, de sélectionner les types d'instances que vous voulez et leur nombre, d'appuyer sur le bouton et, en quelques minutes, vous avez un Cluster Hadoop opérationnel. Cette partie serait plus rapide à mettre en place et à faire fonctionner que d'utiliser l'AMC pour provisionner un cluster à partir de zéro puisque EMR pré-créé certaines de ces étapes d'installation pour les accélérer pour vous.

Par défaut, vous obtenez la saveur Hadoop d'Amazon, qui est une forme d'Apache Hadoop à laquelle sont appliqués la plupart des correctifs et ajustements recommandés. Il est toutefois possible de spécifier Hortonworks, Cloudera et MapR à utiliser avec EMR, ainsi que d'autres modules complémentaires tels qu'Apache Spark et Apache Zeppelin. Dans ce cas, nous avons utilisé la distribution Apache Hadoop par défaut.

Les puristes d'Hadoop peuvent avoir les sourcils froncés par certains des termes utilisés - par exemple, les DataNodes sont appelés nœuds "centraux" dans EMR, et le NameNode est appelé nœud "maître" (pour ceux qui ne connaissent pas EMR et VectorH, sachez que le terme "maître" est utilisé dans les deux cas, pour des choses différentes).

La configuration de certains éléments est automatiquement ajustée en fonction de la taille du cluster. Par exemple, le facteur de réplication HDFS est fixé à un pour les clusters de moins de 4 nœuds, à deux pour les clusters de 2 à 10 nœuds, puis aux trois habituels pour les clusters de plus de 10 nœuds. Ces propriétés, ainsi que d'autres, peuvent être définies explicitement dans la séquence de démarrage via les options "bootstrap".

Cela nous amène à la principale chose dont il faut être conscient lorsqu'on utilise EMR - dans EMR, tout (y compris Hadoop) est transitoire ; lorsque vous redémarrez le cluster, tout est supprimé et reconstruit à partir de zéro. Si vous souhaitez une persistance de la configuration, vous devez le faire dans les options de démarrage. De même, si vous souhaitez que les données soient persistantes après le redémarrage du cluster, vous devez les placer en externe dans un système tel que S3. EMR peut lire et écrire directement dans S3, vous n'avez donc pas besoin de copier les données brutes de S3 dans HDFS juste pour pouvoir charger les données dans VectorH - vous pouvez charger directement à partir de S3 en utilisant quelque chose comme le nouveau chargeur Spark d'Actian.

Cela peut sembler un inconvénient, et c'est effectivement le cas pour certaines utilisations, mais cela ne fait que refléter l'objectif d'EMR. EMR n'a jamais été conçu pour héberger à long terme un DataLake persistant, mais plutôt comme un environnement transitoire de type "démarrage, traitement, puis arrêt" pour l'exécution de tâches de type MapReduce. Amazon dirait probablement que S3 devrait être l'emplacement des données persistantes.

Dans notre cas, nous testions une base de données dede haute performance - définitivement un service "à longue durée de vie" avec des exigences de données persistantes - donc dans ce sens, EMR n'était peut-être pas un si bon choix. Cependant, bien que nous ayons dû recharger la base de données plusieurs fois après avoir voulu reconfigurer le cluster, nous nous sommes rapidement adaptés au provisionnement à partir de zéro en construisant un script de provisionnement rudimentaire (aidé ici par la vitesse de chargement rapide de VectorH et le fait qu'il n'a pas besoin d'index) et cela a donc très bien fonctionné en tant qu'environnement de test.

La deuxième chose dont il faut être conscient avec EMR, en particulier pour ceux qui sont habitués à Hadoop, est que (au moins avec le Hadoop par défaut que nous utilisions) certaines des facilités normales ne sont pas présentes. La chose que nous avons le plus remarquée est l'absence des commandes habituelles de démarrage et d'arrêt des démons Hadoop. Nous avons essayé de redémarrer les DataNodes pour permettre les lectures en circuit court et nous avons trouvé cela un peu difficile - en fin de compte, nous avons dû redémarrer le cluster de toute façon et nous avons donc ajouté cela dans les options de démarrage.

Un autre aspect sur lequel vous n'avez pas de contrôle avec EMR est l'utilisation d'un groupe de placement AWS. Normalement, dans AWS, si vous voulez un cluster très performant, vous devez vous assurer que les différents nœuds sont "proches" en termes d'emplacement physique, ce qui permet de minimiser la latence du réseau. Avec EMR, il ne semble pas y avoir de moyen de le spécifier. Il se peut qu'EMR soit en fait un peu malin et qu'il le fasse pour vous de toute façon. Il se peut aussi que, lorsqu'on a affaire à des clusters plus importants, les groupes de placement deviennent un peu impraticables. Quoi qu'il en soit (ou autrement), notre configuration n'a pas utilisé de groupes de placement spécifiques. Même sans eux, les performances étaient bonnes.

En fait, les performances étaient suffisamment bonnes pour que le client signale que les résultats étaient meilleurs que ceux de leurs tests comparables sur Amazon Redshift !

En résumé, cet exercice a montré qu'il est possible d'utiliser Amazon EMR comme environnement Hadoop "à démarrage rapide", même pour des services de longue durée comme Actian VectorH. Hormis l'absence de certains aspects - dont la plupart peuvent être traités via les options de démarrage - EMR se comporte comme une distribution Hadoop normale. En raison de sa nature transitoire, EMR ne devrait être envisagé que pour les cas d'utilisation qui sont transitoires (y compris les tests de services à longue durée de vie).

Les clients qui souhaitent provisionner Hadoop pour la production en un clic de bouton dans des systèmes tels qu'Amazon EC2 devraient envisager une installation avec la console de gestion d'Actian, disponible dès à présent sur http://esd.actian.com.

logo avatar actian

À propos d'Actian Corporation

Actian facilite l'accès aux données. Notre plateforme de données simplifie la façon dont les gens connectent, gèrent et analysent les données dans les environnements cloud, hybrides et sur site . Avec des décennies d'expérience dans la gestion des données et l'analyse, Actian fournit des solutions de de haute performance qui permettent aux entreprises de prendre des décisions basées sur les données. Actian est reconnu par les principaux analystes et a reçu des prix de l'industrie pour sa performance et son innovation. Nos équipes partagent des cas d'utilisation éprouvés lors de conférences (par exemple, Strata Data) et contribuent à des projets à code source ouvert. Sur le blog d'Actian, nous couvrons des sujets allant de l'ingestion de données en temps réel à l'analyse pilotée par l'IA.