Q : Qu'est-ce qu'Amazon EMR ?

Amazon EMR est un service Web qui permet aux entreprises, aux chercheurs, aux analystes de données et aux développeurs de traiter de grandes quantités de données de manière simple et économique. Il utilise un logiciel hébergé Hadoop s'exécutant sur l'infrastructure d'Amazon Elastic Compute Cloud (Amazon EC2) et d'Amazon Simple Storage Service (Amazon S3) à l'échelle du Web.

Q : Que puis-je faire avec Amazon EMR ?

En utilisant Amazon EMR, vous pouvez instantanément mettre en service autant (ou aussi peu) de capacités que vous le souhaitez pour effectuer des tâches gourmandes en données dans le cadre d'applications telles que l'indexation Web, l'exploration de données, l'analyse de fichiers journaux, l'apprentissage machine, l'analyse financière, la simulation scientifique et la recherche bio-informatique. Amazon EMR vous permet de vous concentrer sur la lecture à grande vitesse ou l'analyse de vos données sans avoir à vous soucier de l'installation, de la gestion ou du réglage des clusters Hadoop, ou encore de la capacité de calcul sous-jacente.

Amazon EMR est idéal pour les problèmes dont la résolution nécessite le traitement rapide et efficace de grandes quantités de données. Les interfaces de service Web vous permettent de créer des flux de travail de traitement et de surveiller via un programme l'avancement des clusters en cours d'exécution. De plus, vous pouvez utiliser l'interface Web simple d'AWS Management Console pour lancer vos clusters et surveiller le calcul à forte intensité de traitement sur les clusters des instances Amazon EC2.

Q : Qui peut utiliser Amazon EMR ?

Quiconque nécessite un accès simple à une analyse de données puissante peut utiliser Amazon EMR. Vous n'avez pas besoin d'avoir de l'expérience dans le développement de logiciels pour expérimenter plusieurs applications tests disponibles dans le Guide du développeur et sur le blog AWS Big Data.

Q : Que puis-je faire avec Amazon EMR que je ne pouvais pas faire avant ?

Amazon EMR réduit considérablement la complexité de l'installation et de la gestion. et l'ajustement des clusters Hadoop ou la capacité informatique sur laquelle ils se basent. Vous pouvez instantanément faire tourner de grands clusters Hadoop qui démarreront le traitement en quelques minutes, non pas des heures ou des jours. Sauf indication contraire, lorsque votre cluster termine son traitement, il est automatiquement arrêté afin que cessiez de payer pour des ressources dont vous n'avez plus besoin.

En utilisant ce service, vous pouvez rapidement effectuer des tâches à forte intensité de données pour les applications telles que l'indexation Web, l'exploration de données, l'apprentissage machine, l'analyse financière, la simulation scientifique et la recherche bio-informatique.

En tant que développeur informatique, vous pouvez développer et exécuter vos propres applications, plus élaborées, vous permettant d'ajouter des fonctionnalités telles que la planification, les flux de travail, la surveillance ou d'autres caractéristiques.

Q : Quel est le moteur de traitement de données utilisé par Amazon EMR ?

Amazon EMR utilise Apache Hadoop comme moteur de traitement de données distribuées. Hadoop est un logiciel Java open source qui prend en charge des applications à forte intensité de données distribuées s'exécutant sur des clusters importants de matériel. Hadoop met en œuvre un modèle de programmation nommé "MapReduce" dans lequel les données sont divisées en de nombreux petits segments de travail, chacun d'entre eux pouvant être exécuté sur n'importe quel nœud du cluster. Ce logiciel a été largement utilisé par les développeurs, les entreprises et les entreprises en démarrage et s'est avéré être une plate-forme logicielle fiable pour le traitement jusqu'au téra octet de données sur des clusters de milliers de machines.

Q : Qu'est-ce qu'un cluster Amazon EMR ?

Amazon EMR a toujours fait référence à un cluster Amazon EMR (et toutes les étapes de traitement assignées à celui-ci) sous le nom de « cluster ». Chaque cluster dispose d'un identifiant unique commençant par « j- ».

Q : Qu'est-ce qu'une étape de cluster ?

Une étape de cluster est une unité de traitement définie par l'utilisateur; établissant une correspondance approximative vers un algorithme qui manipule les données. Une étape est une application Hadoop MapReduce mise en oeuvre comme une ressource jar (Java) ou un programme de diffusion en continu écrit en Java, Ruby, Perl, Python, PHP,R ou C++. Par exemple, compter la fréquence à laquelle les mots apparaissent dans un document et les sortir triés par nombre, la première étape serait une application MapReduce qui compte les occurrences de chaque mot, et la seconde étape serait une application MapReduce qui trie les données sortantes à partir de la première étape basée sur le nombre.

Q : Quels sont les différents états du cluster ?

STARTING – Le cluster met en service, démarre et configure les instances EC2.
BOOTSTRAPPING – Des actions de démarrage sont en cours d'exécution sur le cluster.
RUNNING – Une étape du cluster est en cours d'exécution.
WAITING – Le cluster est actuellement actif mais n'a aucune étape à exécuter.
TERMINATING – Le cluster est en cours de fermeture.
TERMINATED – Le cluster a été fermé sans erreur.
TERMINATED_WITH_ERRORS – Le cluster a été fermé avec des erreurs.

Q : Quels sont les différents états d'étape ?

PENDING – L'étape est prête à être exécutée.
RUNNING – L'étape est actuellement en cours d'exécution.
COMPLETED – L'étape s'est achevée avec succès.
CANCELLED – L'étape a été annulée avant d'être exécutée, car une étape antérieure a échoué ou parce que le cluster a été interrompu avant qu'elle ne puisse être exécutée.
FAILED – L'étape a échoué pendant qu'elle était en cours d'exécution.

Haut de la page >>


Q : Comment puis-je accéder à Amazon EMR ?

Vous pouvez accéder à Amazon EMR à l'aide d'AWS Management Console, des outils de ligne de commande, des kits SDK ou de l'API EMR.

Q : Comment puis-je lancer un cluster ?

Vous pouvez lancer un cluster via AWS Management Console en remplissant un simple formulaire de demande de cluster. Dans le formulaire de demande, vous spécifiez le nom de votre cluster, l'emplacement de vos données d'entrée dans Amazon S3, votre application de traitement, l'emplacement désiré de la sortie de vos données, et le nombre et le type d'instances Amazon EC2 que vous souhaiteriez utiliser. Vous pouvez éventuellement spécifier un emplacement pour stocker vos fichiers journaux de cluster et la clé SSH pour vous connecter à votre cluster lorsqu'il est en cours d'exécution. Autrement, vous pouvez lancer un cluster en utilisant l'API RunJobFlow ou en utilisant la commande « créer » dans les outils de ligne de commande.

Q : Comment puis-je commencer à utiliser Amazon EMR ?

Pour vous inscrire à Amazon EMR, cliquez sur le bouton « S'inscrire maintenant » sur la page détaillée d'Amazon EMR http://aws.amazon.com/elasticmapreduce. Vous devez être enregistré à Amazon EC2 et Amazon S3 pour accéder à Amazon EMR ; si vous n'êtes pas enregistré à ces services, on vous demandera de le faire pendant le processus d'enregistrement à Amazon EMR. Une fois que vous êtes enregistré, consultez la documentation Amazon EMR qui inclut notre Guide de démarrage – le meilleur endroit pour avancer avec le service.

Q : Comment puis-je arrêter un cluster ?

A tout moment, vous pouvez arrêter un flux de travail via AWS Management Console en sélectionnant un cluster et en cliquant sur le bouton Arrêter. Autrement, vous pouvez utiliser l'API TerminateJobFlows. Si vous arrêtez un cluster en cours d'exécution, tout résultat qui n'aura pas été rendu persistant vers Amazon S3 sera perdu et toutes les instances Amazon EC2 seront fermées.

Q : Amazon EMR prend-il en charge plusieurs clusters simultanément ?

Oui. A tout moment, vous pouvez créer un cluster même si vous exécutez déjà un ou plusieurs clusters.

Q : Combien de clusters puis-je exécuter simultanément ?

Vous pouvez démarrer autant de clusters que vous le souhaitez. Vous êtes limité à 20 instances dans tous vos clusters. Si vous avez besoin de plus d'instances, remplissez le formulaire de demande d'instance Amazon EC2 et votre cas d'utilisation et votre augmentation d'instance seront étudiés. Si votre limite Amazon EC2 a déjà été atteinte, la nouvelle limite sera appliquée à vos flux de travail Amazon EMR.

Haut de la page >>


Q : Où puis-je trouver des exemples de code ?

Consultez les exemples de code dans ces articles et didacticiels.

Q : Comment développer une application de traitement de données?

Vous pouvez développer une tâche de traitement de données sur votre bureau, par exemple, en utilisant des plug-ins Eclipse ou NetBeans tels que les outils IBM MapReduce pour Eclipse (http://www.alphaworks.ibm.com/tech/mapreducetools). Ces outils facilitent le développement, le débogage de tâches MapReduce et les testent localement sur votre machine. De plus, vous pouvez développer votre cluster directement sur Amazon EMR en utilisant une ou plusieurs instances.

Q : Quels sont les avantages des outils de ligne de commande ou des API par rapport à AWS Management Console, et inversement ?

Les outils de ligne de commande fournissent la possibilité de lancer et de surveiller via un programme l'avancement des clusters en cours, de créer une fonctionnalité supplémentaire personnalisée autour des clusters (comme les séquences avec de multiples étapes de traitement, de planification, de flux de travail ou de surveillance) ou de créer des outils à valeur ajoutée ou des applications pour d'autres clients Amazon EMR. Par contraste, AWS Management Console fournit une interface graphique facile à utiliser pour le lancement et la surveillance de vos clusters directement de votre navigateur Web.

Q : Puis-je ajouter des étapes à un cluster qui est déjà en cours d'exécution ?

Oui. Une fois que le travail est en cours, vous pouvez ajouter d'autres étapes en option par l'intermédiaire de l'API AddJobFlowSteps. L'API AddJobFlowSteps ajoute de nouvelles étapes à la fin de la séquence d'étape. Il se peut que vous vouliez utiliser cette API pour mettre en œuvre une logique conditionnelle dans votre cluster ou pour le débogage.

Q : Puis-je exécuter un cluster persistant ?

Oui. Les clusters d'Amazon EMR lancés avec l'indicateur –alive continueront jusqu'à ce qu'ils soient explicitement terminés. Cela permet aux clients d'ajouter des étapes dans un cluster à la demande. Vous devriez peut-être utiliser ce procédé pour déboguer votre application sans avoir à attendre de manière répétée que le cluster démarre. Vous pouvez aussi utiliser un cluster persistant pour exécuter un cluster d'entrepôt de données à exécution longue. Il est possible de le combiner à des entrepôts de données et des packages analytiques qui s'exécutent par dessus Hadoop, tels que Hive et Pig.

Q : Puis-je recevoir une notification quand mon cluster a terminé ses étapes ?

Vous pouvez vous abonner à Amazon SNS et le cluster publiera sur votre rubrique SNS lorsque cela est terminé. Vous pouvez également afficher la progression de votre cluster sur AWS Management Console ou utiliser la ligne de commande, SDK ou les API pour obtenir un statut sur le cluster.

Q : Quels sont les langages de programmation qu'Amazon EMR prend en charge ?

Vous pouvez utiliser Java pour mettre en oeuvre les ressources jar Hadoop personnalisées. Autrement, vous pouvez utiliser d'autres langages y compris Perl, Python, Ruby, C++, PHP, et R via Hadoop Streaming. Veuillez consulter le Guide du développeur pour des instructions sur l'utilisation d'Hadoop Streaming.

Q : Quelles sont les versions de systèmes d'exploitation prises en charge par Amazon EMR ?

Actuellement, Amazon EMR prend en charge Debian/Squeeze en 32 et 64 bits.

Q : Puis-je afficher l'interface utilisateur Hadoop pendant que mon cluster est en cours d'exécution ?

Oui. Veuillez vous référer à la section Hadoop UI dans le Guide du développeur pour des instructions sur la façon d'accéder à Hadoop UI.

Q : Est-ce qu'Amazon EMR prend en charge les packages tiers ?

Oui. La manière recommandée pour installer des packages tiers sur votre cluster est d'utiliser les actions de démarrage. Autrement, vous pouvez grouper n'importe quelles archives tierces directement dans votre Mapper ou Reducer exécutable. Vous pouvez également charger des exécutables compilés de façon statique en utilisant le mécanisme de cache distribué Hadoop.

Q : Quelles sont les versions Hadoop prises en charge par Amazon EMR ?

Pour connaître les dernières versions prises en charge par Amazon EMR, veuillez consulter cette documentation.

Q : Puis-je utiliser un moteur de traitement de données autre qu'Hadoop ?

Oui, certains clients EMR utilisent Spark and Shark (mapreduce et entreposage de données dans la mémoire) comme moteur de traitement. Reportez-vous à cet article pour obtenir des instructions sur la procédure à suivre.

Q : Est-ce qu'Amazon participe aux améliorations d'Hadoop via la communauté open source ?

Oui. Amazon EMR est actif parmi la communauté open source et contribue à de nombreux correctifs vers la source Hadoop.

Q : La version d'Hadoop prise en charge par Amazon EMR est-elle mise à jour ?

Amazon EMR met régulièrement à jour sa version prise en charge de Hadoop, basée sur les versions Hadoop de la communauté. Il se peut qu'Amazon EMR choisisse de passer outre certaines mises à jour Hadoop.

Q : Dans quels délais les anciennes versions Hadoop cessent-elles d'être prise en charge par Amazon EMR ?

Le service Amazon EMR retire l'assistance pour les anciennes versions Hadoop plusieurs mois après sa dépréciation. Cependant, les APIs d'Amazon EMR sont rétrocompatibles, donc si vous créez des outils sur ces APIs, ils fonctionneront même quand Amazon EMR met à jour la version Hadoop qu'il utilise.

Haut de la page >>


Q : Comment puis-je déboguer mon cluster ?

Vous sélectionner d'abord le cluster que vous voulez déboguer, ensuite vous cliquez sur le bouton Débogage pour accéder au débogage d'une fenêtre de cluster dans AWS Management Console. Ceci vous permettra de suivre l'avancement et d'identifier les problèmes dans les étapes, travaux, tâches ou tentatives de tâches de vos clusters. Autrement vous pouvez utiliser le protocole SSH dans les instances Amazon Elastic Compute Cloud (Amazon EC2) qui exécutent votre cluster et utilisent votre débogueur de ligne de commande pour dépanner le cluster.

Q : Qu'est-ce que l'outil de débogage de cluster ?

La fenêtre de débogage de cluster est une partie de AWS Management Console dans laquelle il peut suivre l'avancement et identifier les problèmes lors des étapes, travaux, tâches et tentatives de tâches de vos clusters. Pour avoir accès à l'outil de débogage de cluster, sélectionnez d'abord le cluster que vous voulez déboguer et ensuite cliquez sur le bouton Déboguer.

Q : Comment puis-je activer le débogage de mon cluster ?

Pour permettre le débogage, il vous faut installer l'indicateur Activer le débogage quand vous créez un cluster dans AWS Management Console. Vous avez aussi la possibilité de saisir les indicateurs --enable-debugging et --log-uri dans le client de ligne de commande lors de la création du cluster.

Q : Où puis-je trouver des instructions sur l'utilisation de la fenêtre de débogage de cluster ?

Veuillez consulter la section AWS Management Console du Guide du développeur pour obtenir des instructions sur la façon d'accéder et d'utiliser le débogage de fenêtre de cluster.

Q : Quels types de clusters puis-je déboguer avec la fenêtre de débogage de cluster ?

Vous pouvez déboguer tous les types de flux de travail actuellement pris en charge par Amazon EMR, y compris les ressources jar personnalisées, le streaming, Hive et Pig.

Q : Pourquoi dois-je m'inscrire à Amazon SimpleDB pour utiliser le débogage de cluster ?

Amazon EMR stocke les informations sur les travaux, tâches et tentatives d'exécution Hadoop sous votre compte dans Amazon SimpleDB. Vous pouvez vous inscrire à Amazon SimpleDB ici.

Q : Puis-je utiliser la fonction de débogage de cluster sans souscription à Amazon SimpleDB ?

Vous pourrez parcourir des étapes de cluster et des journaux d'étapes, mais ne pourrez pas consulter des travaux, tâches ou tentatives d'exécution si vous n'êtes pas inscrit à Amazon SimpleDB.

Q : Puis-je effacer les données de l'historique du cluster à partir d'Amazon SimpleDB ?

Oui. Vous pouvez effacer les domaines Amazon SimpleDB qu'Amazon EMR a créés en votre nom. Veuillez consulter la documentation Amazon SimpleDB pour obtenir des instructions.

Haut de la page >>


Q : Comment puis-je transférer mes données vers Amazon S3 ?

Vous pouvez utiliser les API Amazon S3 pour télécharger les données vers Amazon S3. Autrement, vous pouvez utiliser de nombreux clients open source ou commerciaux pour télécharger facilement des données vers Amazon S3.

Q : Comment puis-je obtenir les journaux des clusters achevés ?

Les journaux système Hadoop, ainsi que les journaux utilisateur, sont placés dans le compartiment Amazon S3 que vous spécifiez quand vous créez un cluster.

Q : Compressez-vous les journaux ?

Non. Actuellement Amazon EMR ne compresse pas les journaux puisqu'il les déplace vers Amazon S3.

Q : Puis-je charger mes données à partir d'Internet ou depuis un service autre qu'Amazon S3 ?

Oui. Votre application Hadoop peut charger les données depuis n'importe quel emplacement sur Internet ou depuis d'autres services AWS. Sachez que si vous chargez des données à partir d'Internet, des frais de bande passante EC2 s'appliqueront. Amazon EMR propose également un accès aux données de DynamoDB basé sur Hive.

Haut de la page >>


Q : Le service Amazon EMR peut-il estimer le temps nécessaire au traitement de mes données d'entrée ?

Non. Comme chaque cluster et chaque donnée d'entrée sont différents, nous ne pouvons pas estimer la durée de votre travail.

Q : Combien coûte Amazon EMR ?

Comme pour le reste d'AWS, vous payez seulement ce que vous utilisez. Il n'y a pas de frais minimum et d'engagement d'avance ou de contrats à long terme. Les tarifs Amazon EMR s'ajoutent aux tarifs Amazon EC2 et Amazon S3 normaux.

Pour obtenir des informations sur les tarifs d'Amazon EMR, rendez-vous sur la page des tarifs d'EMR.

Les frais Amazon EC2, Amazon S3 et Amazon SimpleDB sont facturés séparément. La tarification d'Amazon EMR se fait à la seconde pour chaque type d'instance (avec un forfait d'une minute minimum) du moment où le cluster est demandé au moment où il est terminé. Pour des détails supplémentaires sur les types d'instances Amazon EC2, les tarifs d'instances ponctuelles Amazon EC2, les tarifs d'instances Amazon EC2 réservées, les tarifs d'Amazon S3 ou les tarifs d'Amazon SimpleDB, suivez les liens ci-dessous :

Types d'instances Amazon EC2

Tarifs d'instances réservées Amazon EC2

Tarifs d'instances ponctuelles Amazon EC2

Tarification Amazon S3

Tarification Amazon SimpleDB

Q : Quelles sont les dates de début et de fin de facturation pour mon cluster Amazon EMR ?

La facturation commence lorsque Amazon EMR lance l'exécution de votre cluster. Vous recevez seulement une facture concernant les ressources que vous consommez vraiment. Par exemple, supposons que vous ayez lancé 100 petites instances standard Amazon EC2 pour un flux de travail Amazon EMR, avec un coût Amazon EMR différentiel à savoir 0,015 USD l'heure. Les instances Amazon EC2 commenceront à démarrer immédiatement, mais elles ne commenceront pas nécessairement au même moment. Amazon EMR effectuera un suivi du début de chaque instance et la vérifiera dans le cluster de façon à ce qu'il puisse accepter les tâches de traitement.

Pendant les 10 premières minutes suivant le lancement de votre demande, soit Amazon EMR commence votre flux de travail (si toutes vos instances sont disponibles), soit Amazon EMR vérifie autant d'instances que possible. Une fois la période des 10 minutes passée, Amazon EMR commencera à traiter (et à facturer) votre flux de travail dès que 90 % de vos instances demandées sont disponibles. Tandis que les 10 % restants de vos instances demandées sont vérifiés, Amazon EMR commence à facturer également ces instances.

Ainsi, dans l'exemple ci-dessus, si les 100 instances demandées sont disponibles, 10 minutes après avoir lancé une demande de lancement, vous serez facturé 1,50 USD de l'heure (100 * 0,015 USD) pendant la durée nécessaire à l'achèvement du cluster. Si seulement 90 de vos instances demandées sont disponibles une fois la série des 10 minutes passée, vous serez facturé 1,35 USD de l'heure (90 * 0,015 USD) pour la durée nécessaire au fonctionnement du nombre d'instances de votre cluster. Quand les 10 instances restantes sont archivées, vous serez facturé 1,50 USD de l'heure (100 * 0,015 USD) pour la durée nécessaire à l'achèvement du solde du cluster.

Chaque cluster fonctionnera jusqu'à ce que le suivant arrive : vous arrêtez le cluster avec l'appel de l'API TerminateJobFlows (ou un outil équivalent), le cluster se ferme de lui-même, ou le cluster est terminé à cause d'une défaillance du logiciel ou du matériel.

Q : Où puis-je suivre mon utilisation d'Amazon EMR, d'Amazon EC2 et d'Amazon S3 ?

Vous pouvez effectuer le suivi de votre utilisation dans Billing & Cost Management Console.

Q : Comment calculez-vous le nombre d'heures-instances normalisées affichées dans la console ?

Dans AWS Management Console, chaque cluster possède une colonne Heures-instances normalisées qui affiche le nombre approximatif d'heures de calcul utilisées par le cluster, arrondi à l'heure la plus proche. Les heures-instances normalisées sont des heures de temps de calcul basées sur la norme de 1 heure d'utilisation de m1.small = 1 heure de temps de calcul normalisée. Le tableau suivant présente le facteur de normalisation utilisé pour calculer les heures-instances normalisées pour les différentes tailles d'instance :

Taille d'instance Facteur de normalisation
Small 1
Medium 2
Large 4
Xlarge 8
2xlarge 16
4xlarge 32
8xlarge 64

Par exemple, si vous exécutez un cluster r3.8xlarge à 10 nœuds pendant une heure, le nombre total d'heures-instances normalisées affiché dans la console sera de 640 (10 (nombre de nœuds) x 64 (facteur de normalisation) x 1 (nombre d'heures d'exécution du cluster) = 640).

 

Il s'agit d'un nombre approximatif qui ne doit pas être utilisé à des fins de facturation. Veuillez vous reporter à Billing & Cost Management Console pour connaître l'utilisation d'Amazon EMR facturable. Veuillez noter que nous avons récemment modifié le facteur de normalisation pour refléter de manière appropriée le poids des instances. Le facteur de normalisation n'a pas d'impact sur votre facture mensuelle.

Q : Amazon EMR prend-il en charge les instances Amazon EC2 à la demande, ponctuelles et réservées ?

Oui. Amazon EMR prend en charge à la fois des instances à la demande, ponctuelles et réservées de manière transparente. Cliquez ici pour en savoir plus sur les instances Amazon EC2 réservées. Cliquez ici pour en savoir plus sur les instances ponctuelles Amazon EC2.


Q : vos prix sont-ils toutes taxes comprises ?

Sauf indication contraire, nos prix n'incluent pas les taxes et redevances applicables, y compris la TVA et les taxes sur les ventes applicables.Pour les clients dont l'adresse de facturation est située au Japon, l'utilisation de services AWS est soumise à la taxe sur la consommation applicable dans ce pays. En savoir plus.

Haut de la page >>


Q : Comment puis-je empêcher d'autres personnes de consulter mes données pendant l'exécution du cluster ?

Amazon EMR commence vos instances dans vos groupes de sécurité Amazon EC2, une pour le groupe maître et une autre pour les esclaves. Le groupe de sécurité maître a un port ouvert pour la communication avec le service. Il a également un port SSH ouvert pour vous permettre d'utiliser le protocole SSH vers les instances, en utilisant la clé spécifiée au démarrage. Les esclaves commencent en groupe de sécurité séparé, ce qui permet seulement une interaction avec l'instance maître. Par défaut, les deux groupes de sécurité sont définies afin de ne pas autoriser l'accès à des ressources externes, y compris les instances Amazon EC2 appartenant à d'autres clients. Puisqu'il s'agit de groupes de sécurité à l'intérieur de votre compte, vous pouvez les reconfigurer en utilisant les outils standard EC2 ou le tableau de bord. Cliquez ici pour en savoir plus sur les groupes de sécurité EC2.

Q : Quel est le niveau de sécurité de mes données ?

Amazon S3 fournit les mécanismes d'authentification pour s'assurer que les données stockées sont sécurisées contre un accès non autorisé. Sauf indication contraire par le client qui télécharge les données, seul ce client peut accéder aux données. Les clients Amazon EMR peuvent également choisir d'envoyer les données à Amazon S3 en utilisant le protocole HTTPS pour une transmission sécurisée. De plus, Amazon EMR utilise toujours HTTPS pour envoyer des données entre Amazon S3 et Amazon EC2. Pour une sécurité renforcée supplémentaire, il se peut que les clients encryptent les données d'entrée avant de les télécharger vers Amazon S3 (en utilisant un outil de compression des données quelconque); ensuite ils ont besoin d'une étape de décryptage jusqu'au début de leur flux de travail quand Amazon EMR va chercher les données depuis Amazon S3.

Q : Puis-je obtenir un historique de tous les appels API EMR effectués sur mon compte pour un audit de sécurité ou de conformité ?

Oui. AWS CloudTrail est un service Web qui enregistre les appels d'API AWS pour votre compte et vous les présente sous forme de fichier journal. L'historique des appels d'API AWS généré par CloudTrail permet de réaliser une analyse de sécurité, le suivi des modifications au niveau des ressources, ainsi que l'audit de conformité. Pour en savoir plus sur CloudTrail, consultez la page de présentation détaillée d'AWS CloudTrail et, pour l'activer, utilisez AWS Management Console de CloudTrail.

Haut de la page >>


Q : Comment les zones de disponibilité sont-elles utilisées dans Amazon EMR ?

Amazon EMR lance tous les nœuds pour un cluster donné dans la même zone de disponibilité Amazon EC2. Exécuter un cluster dans la même zone améliore la performance des flux de travail parce que cela fournit un taux supérieur d'accès aux données. Par défaut, Amazon EMR choisit la zone de disponibilité avec les ressources les plus disponibles dans lesquelles vous pouvez exécuter votre flux de travail. Cependant, vous pouvez spécifier une autre zone de disponibilité si nécessaire.

Q : Dans quelles régions le service Amazon EMR est-il disponible ?

Pour obtenir la liste des régions prenant en charge Amazon EMR AWS, veuillez consulter le tableau des régions AWS de toute l'infrastructure mondiale AWS.

Q : Quelle région sélectionner pour exécuter mes clusters ?

Quand vous créez un cluster, vous devez généralement sélectionner la région dans laquelle vos données sont situées.

Q : Puis-je utiliser des données de la région UE dans un cluster qui s'exécute dans la région USA et vice versa ?

Oui, vous pouvez. Si vous transférez des données d'une région à l'autre, vous serez facturé pour les frais de bande passante. Pour les informations sur la facturation de la bande passante, visitez la section facturation à la page de détails EC2.

Q : En quoi la région AWS GovCloud (USA) est-elle différente ?

La région AWS GovCloud (USA) est destinée aux clients et agences de l'administration américaine. Elle respecte la réglementation américaine contre le trafic d'armes au niveau international (ITAR). Au sein de la région GovCloud, EMR ne prend pas en charge les instances ponctuelles ou la fonction d'activation du débogage. La console de gestion EMR n'est pour l'instant pas disponible dans la région GovCloud.

Haut de la page >>


Q : Comment Amazon EMR utilise-t-il Amazon EC2 et Amazon S3 ?

Les clients téléchargent leurs données d'entrée et une application de traitement de données dans Amazon S3. Amazon EMR lance ensuite un nombre d'instances Amazon EC2 comme spécifié par le client. Le service commence l'exécution du cluster tandis qu'il dépile les données d'entrée depuis Amazon S3 en utilisant le protocole S3N vers les instances Amazon EC2 lancées. Une fois le flux de travail fini, Amazon EMR transfère les données de sortie vers Amazon S3, ou les clients peuvent alors les récupérer ou les utiliser comme des données d'entrée dans un autre flux de travail.

Q : Comment les calculs sont-ils exécutés dans Amazon EMR ?

Amazon EMR utilise le moteur de traitement de données Hadoop pour effectuer les calculs mis en œuvre dans le modèle de programmation MapReduce. Le client met en œuvre son algorithme en termes de fonctions map() et reduce(). Le service démarre un nombre d'instances Amazon EC2 spécifié par le client, comprenant un maître et de plusieurs esclaves. Amazon EMR exécute le logiciel Hadoop sur ces instances. Le nœud maître divise les données d'entrée en blocs, et répartit le traitement des blocs au nœud esclave. Chaque nœud esclave gère ensuite la fonction map sur les données qui lui ont été attribuées, en générant des données intermédiaires. Les données intermédiaires sont ensuite triées et partagées, et envoyées vers des processus qui appliquent la fonction de réducteur sur ces données. Ces processus fonctionnent aussi sur les nœuds esclaves. Finalement, les sorties depuis les tâches de réducteur sont collectées en fichiers. Il se peut qu'un seul « cluster » implique une séquence de telles étapes MapReduce.

Q : Quel est le niveau de fiabilité d'Amazon EMR ?

Amazon EMR gère un cluster Amazon EC2 d'instances de calcul en utilisant des réseaux de centres de données et d'infrastructure hautement disponibles et ayant fait leurs preuves. Amazon EMR utilise des logiciels Hadoop tolérants à la panne, reconnus dans l'industrie, comme son moteur de traitement de données. Hadoop partage les données en de multiples sous-ensembles et assigne chaque sous-ensemble à plus d'une instance Amazon EC2. Ainsi, dans l'éventualité d'une défaillance d'une instance Amazon EC2 à traiter un sous-ensemble de données, les résultats d'une autre instance Amazon EC2 peuvent être utilisés.

Q : Dans quels délais mon cluster sera-t-il opérationnel et prêt à traiter mes données d'entrée ?

Amazon EMR commence presque instantanément la mise en service des ressources d'instances Amazon EC2 à la demande. Si les instances ne sont pas disponibles, Amazon EMR continuera d'essayer de mettre en service les ressources pour votre flux de travail jusqu'à ce qu'elles soient approvisionnées ou jusqu'à ce que vous annuliez votre demande. La mise en service d'instance est faite sur la base du meilleur service et dépend du nombre d'instances requises, du moment où le cluster a été créé et du nombre total de demandes dans le système. Une fois que les ressources ont été mises en service, il faut moins de 15 minutes pour commencer le traitement.

Afin de garantir la capacité de vos clusters au moment où vous en avez besoin, vous pouvez payer des frais ponctuels pour les instances Amazon EC2 réservées afin de réserver la capacité d'instance dans le cloud à un taux horaire réduit. Comme pour les instances à la demande, les clients paient des frais seulement pendant les périodes d'exécution de leurs instances. De cette manière, les instances réservées permettent aux commerces ayant des besoins en instance connus de maintenir l'élasticité et la flexibilité des instances à la demande, tout en réduisant davantage leurs coûts d'utilisation prévisibles.

Q : Quels sont les types d'instances Amazon EC2 pris en charge par Amazon EMR ?

Amazon EMR prend en charge 12 types d'instance EC2, y compris les instances de type Standard, CPU élevée, mémoire élevée, unités de calcul en cluster et stockage élevé. Les instances Standard offrent des ratios mémoire/CPU adaptés à la plupart des applications à usage général. Les instances à CPU élevée possèdent, proportionnellement, plus de ressources CPU que de mémoire (RAM) et conviennent aux applications nécessitant des calculs intensifs. Les instances à mémoire élevée offrent d'importantes capacités de mémoire pour les applications à trafic élevé. Les instances de calcul en cluster fournissent, proportionnellement, des CPU élevées avec des performances réseau accrues. Elles conviennent aux applications de calcul haute performance (HPC, High Performance Computing) et à d'autres applications exigeantes en termes de performances réseau. Les instances à stockage élevé offrent 48 To de stockage sur 24 disques et sont idéales pour les applications nécessitant un accès séquentiel à des jeux de données particulièrement volumineux, notamment pour l'entreposage de données et le traitement des fichiers journaux. Consultez la page de tarification EMR pour en savoir plus sur les types d'instances disponibles et les tarifs par région.

Q : Comment sélectionner le type d'instance Amazon EC2 approprié ?

Quand vous choisissez des types d'instances, vous devriez considérer les caractéristiques de votre application en ce qui concerne votre utilisation de ressources et sélectionner la famille d'instance optimale. L'un des avantages d'Amazon EMR avec Amazon EC2 est que vous êtes facturé à l'utilisation, ce qui le rend pratique et peu coûteux pour tester la performance de vos flux de travail sur différents types et quantités d'instances. Un moyen efficace pour déterminer le type d'instance le plus approprié est de lancer plusieurs petits clusters et de tester vos clusters.

Q : Comment sélectionner le nombre d'instances approprié pour mon cluster ?

Le nombre d'instances à utiliser dans votre cluster dépend de l'application et devrait être fonction à la fois de la quantité de ressources requises pour stocker et traiter vos données et de la quantité de temps acceptable à l'achèvement de votre travail. En règle générale, nous recommandons que vous limitiez 60 % de votre espace disque pour le stockage des données que vous allez traiter, laissant le reste pour les sorties intermédiaires. Ainsi, pour une réplication 3x donnée sur HDFS, si vous espériez traiter 5 To sur des instances m1.xlarge, qui disposent de 1 690 Go d'espace disque, nous recommandons que votre cluster contienne au moins (5 To x 3) / (1 690 Go x 0,6) = 15 nœuds principaux m1.xlarge. Vous pouvez augmenter ce nombre si votre flux de travail génère une grande quantité de données intermédiaires ou a des exigences E/S importantes. Vous pouvez aussi inclure des nœuds de tâches supplémentaires pour améliorer la performance de traitement. Consultez la page Types d'instances Amazon EC2 pour en savoir plus sur le stockage d'instance local pour chaque configuration.

Q : Combien de temps faut-il pour exécuter mon cluster ?

Cela dépend de plusieurs facteurs, notamment le type de cluster, la quantité de données d'entrée, ainsi que le nombre et le type d'instances Amazon EC2 que vous choisissez.

Q : Si le nœud maître d'un cluster tombe en panne, Amazon EMR peut-il le récupérer ?

Non. Si le nœud maître baisse, votre cluster sera interrompu et vous devrez exécuter de nouveau votre travail. Amazon EMR ne prend pas en charge actuellement les basculements automatiques des nœuds maîtres ou la récupération d'état du nœud maître. Dans le cas d'un échec du nœud maître, AWS Management console affiche le message « Le nœud maitre a été interrompu » ; ceci vous indique que vous devez commencer un nouveau cluster. Les clients peuvent instrumenter le point de contrôle dans leurs clusters pour sauvegarder des données immédiates (données créées au milieu d'un cluster qui n'a pas encore été réduit) sur Amazon S3. Ceci permettra de reprendre le cluster à partir du point de contrôle en cas d'échec.

Q : Si un nœud esclave d'un cluster tombe en panne, Amazon EMR peut-il passer outre ?

Oui. Amazon EMR est tolérant aux pannes pour les échecs esclaves et continue l'exécution du travail si un nœud esclave baisse. Amazon EMR fournit également une nouveau nœud en cas d'échec d'un nœud principal. Cependant, Amazon EMR ne remplacera pas les nœuds si tous les nœuds du cluster sont perdus.

Q : Puis-je utiliser le protocole SSH sur mes nœuds de cluster ?

Oui. Vous pouvez utiliser le protocole SSH sur vos nœuds de cluster et exécuter les commandes Hadoop directement à partir de là. Si vous avez besoin d'utiliser le protocole SSH dans un nœud esclave, vous devez d'abord utiliser le protocole SSH jusqu'au nœud maître et utiliser ensuite le protocole SSH dans le nœud esclave.

Q : Puis-je utiliser les instances Microsoft Windows avec Amazon EMR ?

A l'heure actuelle, Amazon EMR prend en charge Debian/Lenny en modes 32 et 64 bit. Nous sommes toujours à l'écoute des avis de nos clients et nous ajouterons plus de capacités au fil du temps afin d'aider nos clients à résoudre leurs problèmes professionnels de traitement à grande vitesse de données.

Q : Qu'est ce qu'Amazon EMR Boostrap Actions ?

Bootstrap Actions est une caractéristique dans Amazon EMR qui fournit aux utilisateurs un moyen d'exécuter un paramétrage personnalisé, antérieur à l'exécution du flux de travail. Bootstrap Actions peut être utilisé pour installer un logiciel ou pour configurer des instances avant d'exécuter votre cluster. Pour en savoir plus sur les actions d'amorçage (bootstrap), consultez le manuel Amazon Elastic MapReduce Developer Guide.

Q : Comment puis-je utiliser les scripts Bootstrap Action ?

Vous pouvez écrire un script Bootstrap Action dans n'importe quel langage déjà installé sur l'instance du cluster, y compris Bash, Perl, Python, Ruby, C++, ou Java. Plusieurs actions de démarrages pré-définies sont disponibles. Une fois le script écrit, vous devez le télécharger vers Amazon S3 et référencez son emplacement quand vous commencez un cluster. Veuillez consulter le "Guide du développeur" : http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/ pour obtenir des détails sur la façon d'utiliser Bootstrap Actions.

Q : Comment puis-je configurer les paramètres Hadoop pour mon cluster ?

La configuration Hadoop par défaut d'EMR est adaptée à la majorité des charges de travail. Toutefois, en fonction des exigences spécifiques de mémoire et de traitement de votre cluster, il peut être plus adapté de personnaliser ces paramètres. Par exemple, si les tâches de votre cluster utilisent intensivement la mémoire, vous pouvez choisir d'utiliser moins de tâches par nœud principal et de réduire la taille du segment de mémoire du pistage de votre travail. Dans cette situation, une action de démarrage prédéfinie est disponible pour configurer votre cluster au lancement. Consultez la section Configure Memory Intensive Bootstrap Action du manuel destiné aux développeurs pour en savoir plus sur la configuration et les instructions d'utilisation. Une action de démarrage prédéfinie supplémentaire est disponible et vous permet de personnaliser vos paramètres de cluster sur n'importe quelles valeurs de votre choix. Consultez la section Configure Hadoop Bootstrap Action DU manuel destiné aux développeurs pour connaître les instructions d'utilisation.

Q : Puis-je modifier le nombre de nœuds esclaves dans un cluster en cours d'exécution ?

Oui. Il y a deux types de nœuds maîtres: (1) les nœuds principaux qui à la fois hébergent des données persistantes en utilisant HDFS et exécutent des tâches Hadoop et (2) les nœuds de tâches qui exécutent seulement des tâches Hadoop. Tandis qu'un cluster est en cours d'exécution, vous pouvez augmenter le nombre de nœuds principaux et vous pouvez soit augmenter soit diminuer le nombre de nœuds de tâches. Ceci peut être fait via l'API, JAVA SDK ou via la ligne de commande client. Consultez la section Resize a Running Cluster du manuel EMR Developer Guide pour obtenir des détails sur la façon de modifier la taille de votre cluster en cours d'exécution.

Q : Quand utiliser des nœuds principaux plutôt que des nœuds de tâches ?

Comme les nœuds principaux hébergent des données persistantes dans HDFS et ne peuvent pas être supprimés, ils doivent être réservés à la capacité requise jusqu'à la fin du cluster. Comme les nœuds de tâches peuvent être ajoutés ou supprimés et ne doivent pas contenir HDFS, ils sont idéaux pour une capacité requise seulement sur une base temporaire.

Q : Pourquoi modifier le nombre de nœuds esclaves dans mon cluster en cours d'exécution ?

Plusieurs scénarii existent où vous pouvez vouloir modifier le nombre de nœuds esclaves dans un cluster en cours d'exécution. Si votre cluster s'exécute plus lentement que prévu, ou que les exigences de rythme changent, vous pouvez augmenter le nombre de nœuds principaux pour augmenter la performance du cluster. Si différentes phases de votre cluster ont des exigences de capacité différentes, vous pouvez commencer avec un petit nombre de nœuds principaux et augmenter ou diminuer le nombre de nœuds de tâches pour satisfaire les exigences de capacités variables de votre cluster.

Q : Puis-je modifier automatiquement le nombre de nœuds esclaves entre les étapes du cluster ?

Oui. Vous pouvez inclure une étape pré-définie dans votre cluster qui redimensionne automatiquement un cluster entre les étapes, connues comme ayant des exigences de capacité différentes. Comme toutes les étapes sont garanties de s'exécuter de façon séquentielle, ceci vous permet de définir le nombre de nœuds esclaves qu'exécutera une étape de cluster donné.

Q : Comment permettre à d'autres utilisateurs IAM d'accéder à mon cluster ?

Afin de créer un cluster visible par tous les utilisateurs IAM, procédez comme suit au sein de l'interface de ligne de commande EMR : ajoutez l'indication --visible-to-all-users au moment où vous créez le cluster. Exemple : elastic-mapreduce --create --visible-to-all-users. Dans la console de gestion, sélectionnez simplement Visible to all IAM Users dans le volet Advanced Options de l'assistant de création de cluster.

Afin qu'un cluster existant devienne visible par tous les utilisateurs IAM, vous devez utiliser l'interface de ligne de commande EMR. Utilisez --set-visible-to-all-users et spécifiez l'identifiant du cluster. Exemple : elastic-mapreduce --set-visible-to-all-users true --jobflow j-xxxxxxx. Seul le créateur du cluster peut effectuer cette tâche.

Pour en savoir plus, consultez la section Configuring User Permissions du manuel EMR Developer Guide.

Haut de la page >>


Q : A quelles ressources Amazon EMR puis-je ajouter une balise ?

Vous pouvez ajouter des balises à un cluster Amazon EMR actif. Un cluster Amazon EMR se compose d'instances Amazon EC2, et une balise ajoutée à un cluster Amazon EMR est répercutée sur chaque instance Amazon EC2 active du cluster en question. Vous ne pouvez pas ajouter, modifier ou supprimer des balises des clusters interrompus ou des instances Amazon EC2 terminées qui faisaient partie d'un cluster actif.

Q : Les balises Amazon EMR sont-elles compatibles avec les autorisations liées aux ressources pour les utilisateurs IAM ?

Non, Amazon EMR ne prend pas en charge les permissions liées aux ressources par balise. Cependant, il convient de noter que les balises répercutées sur les instances Amazon EC2 se comportent comme des balises Amazon EC2 normales. Une politique IAM pour Amazon EC2 agira donc sur les balises répercutées depuis Amazon EMR si ces dernières répondent aux exigences de cette politique.

Q : Combien de balises puis-je ajouter à une ressource ?

Vous pouvez ajouter jusqu'à 10 balises sur un cluster Amazon EMR.

Q : Est-ce que mes balises Amazon EMR sur un cluster figurent sur chaque instance Amazon EC2 du cluster en question ? Si je supprime une balise sur mon cluster Amazon EMR, cette balise sera-t-elle automatiquement supprimée de toutes les instances EC2 associées ?

Oui, Amazon EMR répercute les balises ajoutées à un cluster sur toutes les instances EC2 sous-jacentes du cluster en question. Si vous ajoutez une balise à un cluster Amazon EMR, la balise apparaîtra aussitôt sur les instances Amazon EC2 liées. De même, si vous supprimez une balise d'un cluster Amazon EMR, la balise sera également supprimée des instances Amazon EC2 associées. Toutefois, si vous utilisez les politiques IAM pour Amazon EC2 et prévoyez d'utiliser la fonctionnalité d'ajout de balises d'Amazon EMR, vous devriez vérifier que vous disposez de la permission d'utiliser les API de balises Amazon EC2 CreateTags et DeleteTags.

Q : Comment puis-je faire apparaître mes balises dans mon relevé de facturation pour fractionner les coûts ?

Sélectionnez les balises que vous souhaitez utiliser dans votre rapport de facturation AWS ici. Puis, pour consulter le coût de vos ressources combinées, vous pouvez organiser vos données de facturation en fonction des ressources présentant les mêmes valeurs de clé de balise.

Q : Comment puis-je déterminer quelles instances Amazon EC2 font partie d'un cluster Amazon EMR ?

Une instance Amazon EC2 associée à un cluster Amazon EMR bénéficie de deux balises de système :

  • aws:elasticmapreduce:instance-group-role=CORE
    • Key = instance-group role ; Value = [CORE or TASK] 
  • aws:elasticmapreduce:job-flow-id=j-12345678
    • Key = job-flow-id ; Value = [JobFlowID]

Q : Puis-je modifier les balises directement sur les instances Amazon EC2 ?

Oui, vous pouvez ajouter ou supprimer des balises directement sur les instances Amazon EC2 faisant partie d'un cluster Amazon EMR. Néanmoins, nous vous déconseillons de faire cela, car le système de balise d'Amazon EMR ne procédera pas à la synchronisation des changements effectués directement sur une instance Amazon EC2 associée. Nous vous recommandons d'ajouter et de supprimer les balises des clusters Amazon EMR depuis la console, la ligne de commande ou l'API Amazon EMR afin de vous assurer que le cluster et les instances Amazon EC2 associées disposent des bonnes balises.

Haut de la page >>

Q : Que puis-je faire aujourd'hui que je ne pouvais pas faire auparavant ?

La plupart des instances EC2 sont fournies avec une capacité de stockage fixe qui leur est propre, appelée « stockage d'instance ». Vous pouvez maintenant ajouter des volumes EBS aux instances dans votre cluster Amazon EMR, afin de modifier la capacité de stockage d'une instance donnée. Cette fonctionnalité vous permet également d'exécuter des clusters Amazon EMR sur des familles d'instances EBS uniquement, comme les instances M4 et C4.

Q : Quels sont les avantages associés à l'ajout de volumes EBS à une instance exécutée sur Amazon EMR ?

L'ajout de volumes EBS à une instance est avantageux dans les situations suivantes :

  1. Vos besoins de traitement sont si élevés que vous avez besoin d'une plus grande capacité de stockage HDFS (ou local) que celle proposée aujourd'hui sur une instance donnée. Avec la prise en charge des volumes EBS, vous pouvez modifier la capacité de stockage d'une instance par rapport à la capacité de calcul fournie par l'instance. En optimisant la capacité de stockage de votre instance, vous faites des économies.
  2. Vous exécutez une famille d'instance ancienne génération (comme les familles M1 et M2) et vous désirez passer à la famille d'instance dernière génération, mais vous êtes limité par la capacité de stockage disponible par nœud sur les types d'instance nouvelle génération. Vous pouvez maintenant utiliser l'un des types d'instance nouvelle génération et ajouter des volumes EBS pour optimiser la capacité de stockage.  Des comparatifs réalisés en interne indiquent qu'il est possible d'économiser de l'argent et d'améliorer les performances en passant d'une famille d'instance ancienne génération (M1 ou M2) à une famille nouvelle génération (M4, C4 et R3).  L'équipe d'Amazon EMR recommande d'exécuter votre application pour arriver à la bonne conclusion.
  3. Vous désirez utiliser ou migrer vers la famille M4 ou C4 nouvelle génération EBS uniquement.

Q : Puis-je conserver mes données sur un volume EBS après la suppression d'un cluster ?

A l'heure actuelle, Amazon EMR efface les volumes quand le cluster est supprimé. Si vous désirez conserver vos données au-delà du cycle de vie d'un cluster, nous vous conseillons d'utiliser Amazon S3 comme magasin de données.

Q : Quels types de volumes EBS puis-je associer à une instance ?

Amazon EMR vous permet d'utiliser différents types de volume EBS : les disques SSD à usage général (GP2), les volumes magnétiques et les Provisioned IOPS (SSD).

Q : Qu'arrive-t-il aux volumes EBS quand je supprime mon cluster ?

Amazon EMR efface les volumes quand le cluster EMR est supprimé.

Q : Puis-je utiliser un volume EBS avec une instance déjà dotée d'un stockage d'instance ?

Oui. Il est possible d'ajouter des volumes EBS à des instances dotées d'un stockage d'instance.

Q : Puis-je associer un volume EBS à un cluster en cours d'exécution ?

Non. A l'heure actuelle, il est seulement possible d'ajouter des volumes EBS au lancement d'un cluster.

Q : Puis-je prendre des instantanés de volumes depuis un cluster ?

L'API d'EBS vous permet de prendre un instantané (snapshot) d'un cluster. Cependant, Amazon EMR ne vous permet pas, à l'heure actuelle, de faire une restauration depuis un instantané.

Q : Puis-je utiliser des volumes EBS chiffrés ?

Non, les volumes chiffrés ne sont pas pris en charge dans la version actuelle.

Q : Que se passera-t-il si je retire un volume associé à un cluster en cours d'exécution ?

Le retrait d'un volume associé à un cluster en cours d'exécution sera considéré comme une défaillance de nœud.  Amazon EMR remplacera le nœud et le volume EBS par des dispositifs identiques.

Haut de la page >>


Q : Qu'est-ce qu'Apache Hive ?

Hive est un entrepôt de données open source et un package analytique qui s'exécute au-dessus d'Hadoop. Hive est exploité avec langage de base SQL appelé Hive QL qui permet aux utilisateurs de structurer, résumer et interroger des sources de données stockées dans Amazon S3. Hive QL va au-delà du SQL standard, en ajoutant une assistance de première catégorie en ce qui concerne les fonctions map/réduire et les types de données complexes extensibles définies par l'utilisateur comme Json et Thrift. Cette capacité permet le traitement de sources de données complexes et même non structurées comme les documents textes et les fichiers journaux. Hive permet les extensions utilisateurs via les fonctions définies par l'utilisateur, écrites en Java et déployées par le stockage dans Amazon S3.

Q : Que puis-je faire avec Hive s'exécutant sur Amazon EMR ?

En utilisant Hive avec Amazon EMR, vous pouvez mettre en œuvre des applications élaborées de traitement de données avec un langage familier du type SQL et des outils faciles à utiliser avec Amazon EMR. Avec Amazon EMR, vous pouvez transformer vos applications Hive en entrepôts de données fiables pour exécuter les tâches telles que des analyses de données, la surveillance et des tâches de veille économique.

Q : En quoi Hive est-il différent des systèmes traditionnels SGBDR ?

Les systèmes SGBDR traditionnels fournissent les sémantiques de transaction et les propriétés ACID. Ils permettent également aux tables d'être indexées et mises en cache, de façon à ce que de petites quantités de données puissent être récupérées très rapidement. Ils fournissent une mise à jour rapide de petites quantités de données et le renforcement de contraintes d'intégrité référentielle. Traditionnellement, ils s'exécutent sur une seule machine de grande taille et ne fournissent pas d'assistance pour l'exécution des fonctions map et réduire sur la table ; ils ne fournissent pas non plus d'assistance en ce qui concerne les types complexes de données, définis par l'utilisateur.

Par opposition, Hive exécute des demandes similaires à SQL en utilisant MapReduce. En conséquence, il est optimisé dans les numérisations de tables entières pendant qu'il fonctionne sur un cluster de machines et est par conséquent capable de traiter de très grandes quantités de données. Hive fournit des tables partitionnées, ce qui lui permet de numériser une partition de table plutôt que la table entière pour la requête qu'il est entrain d'exécuter, si c'est approprié.

Les systèmes SGRBD traditionnels sont meilleurs pour les situations dans lesquelles la sémantique transactionnelle et l'intégrité référentielle sont requises et de petites mises à jour fréquentes effectuées. Hive est meilleur pour le rapport hors ligne, la transformation et l'analyse de grands ensembles de données ; par exemple, effectuer une analyse de parcours d'un grand site ou d'un ensemble de sites.

L'une des méthodes courantes est d'exporter les données des systèmes SGRBD dans Amazon S3 lorsque l'analyse hors ligne peut être effectuée en utilisant les flux de travail Amazon EMR exécutant Hive.

Q : Comment commencer à utiliser Hive exécuté sur Amazon EMR ?

Il est préférable de revoir tout d'abord notre didacticiel écrit ou vidéo, disponible sur http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2862

Q : Existe-t-il de nouvelles fonctionnalités dans Hive, qui sont spécifiques à Amazon EMR ?

Oui. Quatre nouvelles caractéristiques existent et font de Hive un outil encore plus puissant quand il est utilisé avec Amazon EMR, y compris :

a/ La capacité de charger des partitions de table automatiquement depuis Amazon S3. Auparavant, pour importer une table partitionnée, vous aviez besoin d'une autre instruction de table séparée pour chaque partition individuelle de la table. Amazon EMR inclut maintenant un nouveau type d'instruction pour le langage Hive : « alter table recover partitions. » Cette instruction vous permet d'importer facilement des tables simultanément dans de nombreux clusters sans avoir à entretenir un magasin de métadonnées partagées. Utilisez cette fonctionnalité pour lire à partir des tables dans lesquelles des processus externes déposent des données, par exemple des fichiers journaux.

b/ La capacité à spécifier un magasin de métadonnées hors instance. Par défaut, le magasin de métadonnées dans lequel Hive stocke son schéma d'informations dans le nœud maître et cesse d'exister quand le cluster se termine. Cette caractéristique vous permet d'annuler l'emplacement du magasin de métadonnées à utiliser, par exemple une instance MySQL que vous faites déjà fonctionner dans EC2.

c/ Écrire des données directement vers Amazon S3. Quand elle écrit des données sur des tables sur Amazon S3, la version de Hive installée dans Amazon EMR écrit directement sur Amazon S3 sans l'utilisation de fichiers temporaires. Ceci produit une amélioration de performance considérable mais signifie que HDFS et S3 se comportent différemment du point de vue de Hive. Vous ne pouvez pas lire et modifier la même table à l'intérieur de la même instruction si cette table est placée dans Amazon S3. Si vous voulez mettre à jour une table placée dans S3, créez alors une table temporaire dans le fichier système SDFS local du cluster, modifiez les résultats de cette table, ensuite copiez-les vers Amazon S3.

d/ Accéder aux ressources situées dans Amazon S3. La version Hive installée dans Amazon EMR vous permet de référencer des ressources, telles que les scripts pour des opérations map et reduce personnalisées ou des bibliothèques supplémentaires situées dans Amazon S3, directement au sein de votre script Hive (par ex., add jar s3://elasticmapreduce/samples/hive-ads/libs/jsonserde.jar).

Q : Quels sont les types de clusters Hive pris en charge ?

Deux types de clusters sont pris en charge avec Hive : le mode interactif et le mode lot. Dans un mode interactif, un client peut démarrer un cluster et exécuter des scripts Hive de façon interactive et directement sur le nœud maître. Traditionnellement, ce mode est utilisé pour faire des analyses de données ad hoc et pour le développement d'application. Dans le mode lot, le script Hive est stocké dans Amazon S3 et référencé au début du cluster. Traditionnellement, le mode lot est utilisé pour des séquences qui peuvent être répétées telles que la génération de rapport.

Q : Comment puis-je lancer un cluster Hive ?

Les clusters en mode lot et en mode interactif peuvent tous être démarrés à partir d'AWS Management Console, du client de ligne de commande EMR ou des API. Veuillez vous référer à la section Utiliser Hive dans le Guide du développeur pour plus d'informations sur la façon de lancer un cluster Hive.

Q : Quand utiliser Hive plutôt que PIG ?

Hive et PIG fournissent tous les deux des langages de traitement de données de haut niveau avec une assistance pour les types de données complexes dans le cadre du fonctionnement de grands ensembles de données. Le langage Hive est une variante de SQL et est ainsi plus accessible aux personnes déjà familières avec les bases de données SQL et les bases de données relationnelles. Hive prend en charge les tables partitionnées, ce qui permet aux flux de travail de Amazon EMR de détruire seulement la partition de table appropriée à la requête en cours d'exécution plutôt que de numériser une table entière. PIG et Hive ont tous deux une optimisation de plan de requête. PIG est capable d'optimiser à travers un script entier pendant que des requêtes Hive sont optimisées au niveau de l'instruction.

Finalement, le choix qui consiste à utiliser Hive ou PIG dépendra des exigences exactes du domaine d'application et des préférences des ingénieurs de mise en application et de ceux qui écrivent des requêtes.

Q : Quelles sont les versions Hive prises en charge par Amazon EMR ?

Amazon EMR prend en charge différentes versions de Hive, notamment la version 0.11.0.

Q : Puis-je écrire simultanément sur une table à partir de deux clusters ?

Non. Hive ne prend pas en charge l'écriture simultanée sur des tables. Vous devriez éviter d'écrire simultanément sur la même table ou de lire à partir d'une table pendant que vous écrivez dessus. Hive a un comportement non déterministe quand il lit et écrit en même temps ou écrit et modifie en même temps.

Q : Puis-je partager des données entre des clusters ?

Oui. Vous pouvez lire des données dans Amazon S3 à l'intérieur d'un script Hive en ayant des instructions « créer une table externe » en amont de votre script. Vous avez besoin d'une instruction de création de table pour chaque ressource externe à laquelle vous avez accès.

Q : Devrais-je exécuter un grand cluster et le partager entre plusieurs utilisateurs ou exécuter de plusieurs clusters de plus petite taille ?

Amazon EMR fournit une opportunité unique afin de vous permettre d'utiliser les deux méthodes. D'un côté un important cluster peut être plus efficace pour le traitement de charges de travail par lot réguliers. D'un autre côté, si vous avez besoin d'effectuer des requêtes ou des charges de travail ad hoc qui varient dans le temps, vous pouvez choisir de créer plusieurs clusters séparés, adaptés à une tâche spécifique de partage de sources de données stockées dans Amazon S3.

Q : Puis-je accéder à une ressource script ou jar qui est sur mon système de fichiers local ?

Non. Vous devez télécharger le script ou la ressource jar vers Amazon S3 ou le nœud maître du cluster avant qu'il puisse être référencé. Pour télécharger vers Amazon S3, vous pouvez utiliser les outils, y compris s3cmd, jets3t ou S3Organizer.

Q : Puis-je exécuter un cluster persistant exécutant plusieurs requêtes Hive ?

Oui. Vous exécutez un cluster selon un mode d'arrêt manuel de façon à ce qu'il ne s'arrête pas entre des étapes Hive. Pour réduire le risque de perte de données, nous vous recommandons de conserver périodiquement toutes vos données importantes dans Amazon S3. Une bonne habitude consiste à transférer régulièrement votre travail vers un nouveau cluster pour tester votre processus de récupération en cas de défaillance d'un nœud maître.

Q : Des utilisateurs multiples peuvent-ils exécuter des étapes Hive sur la même base de données ?

Oui. Les scripts Hive exécutés par des utilisateurs multiples sur des clusters séparés peuvent contenir des instructions de tables externes pour importer simultanément des données sources qui résident dans Amazon S3.

Q : Est-il possible que plusieurs utilisateurs exécutent des requêtes sur le même cluster ?

Oui. Dans le mode lot, les étapes sont en série. Les utilisateurs multiples peuvent ajouter des étapes Hive au même cluster, cependant, les étapes seront exécutées en série. Dans le mode interactif, plusieurs utilisateurs peuvent se connecter sur le même cluster et exécuter les instructions Hive simultanément.

Q : Est-ce que les données peuvent être partagées entre des utilisateurs AWS multiples ?

Oui. Les données peuvent être partagées en utilisant un mécanisme de partage Amazon S3 standard, décrit ici http://docs.amazonwebservices.com/AmazonS3/latest/index.html?S3_ACLs.html

Q : Est-ce que Hive prend en charge l'accès à partir de JDBC ?

Oui. Hive fournit un lecteur JDBC, qui peut être utilisé pour exécuter les instructions Hive via un programme. Pour démarrer un service JDBC dans votre flux de travail, vous devez passer un paramètre facultatif dans la ligne de commande client Amazon EMR. Vous devez également établir un tunnel SSH parce que le groupe de sécurité ne permet pas de connexions externes.

Q : Quelle est la procédure de mise à jour des packages sur les AMI EMR ?

Nous gérons un ensemble de logiciels sélectionnés à partir de Debian/stable y compris des versions provisoires de sécurité. Nous mettrons à jour un package chaque fois qu'il sera mis à jour dans Debian/stable. Le progiciel « r-recommended » sur notre image est à jour avec Debian/table (http://packages.debian.org/search?keywords=r-recommended).

Q : Puis-je mettre à jour mes propres packages sur les clusters EMR ?

Oui. Vous pouvez utiliser des actions de démarrage pour installer des mises à jour des packages sur vos clusters.

Q : Puis-je traiter des données DynamoDB avec Hive ?

Oui. Définissez simplement une table Hive externe basée sur votre table DynamoDB. Vous pouvez ensuite utiliser Hive pour analyser les données stockées dans DynamoDB et soit recharger les résultats dans DynamoDB, soit les archiver dans Amazon S3. Pour plus d'informations, veuillez consulter notre Guide du développeur.

Haut de la page >>


 

Q : Qu'est-ce qu'Impala ?

Impala est un outil open source dans l'écosystème Hadoop. Il est utilisé pour effectuer des requêtes interactives et ad hoc à l'aide de la syntaxe SQL. A l'inverse de MapReduce, Impala exploite un moteur de traitement massivement parallèle (MPP) similaire à celui des systèmes de gestion de base de données relationnelle traditionnels (SGBDR). Avec cette architecture, vous pouvez rapidement interroger vos données dans HDFS ou les tables HBase, exploiter la capacité d'Hadoop à traiter divers types de données et fournir un schéma lors de l'exécution de cet outil. De ce fait, Impala génère des analyses interactives et à faible latence. En outre, Impala utilise le Hive metastore pour stocker les informations relatives aux données d'entrée, y compris le nom de partition et le type de données. Impala sur Amazon EMR nécessite également des AMI exécutant Hadoop 2.x ou version ultérieure. Cliquez ici pour en savoir plus sur cet outil.

Q : Que puis-je faire avec Impala s'exécutant sur Amazon EMR ?

A l'instar de Hive avec Amazon EMR, exploiter Impala avec Amazon EMR peut mettre en place des applications de traitement de données sophistiquées avec la syntaxe SQL. Cependant, Impala est conçu pour s'exécuter plus rapidement dans certains cas d'utilisation (voir ci-dessous). Avec Amazon EMR, vous pouvez utiliser Impala comme un entrepôt de données fiable pour exécuter les données telles que des tâches analytiques de données, de surveillance et d'informatique décisionnelle. Voici les trois cas d'utilisation de cet outil :

  • Utilisation d'Impala à la place de Hive sur les clusters de longue durée pour effectuer les requêtes ad hoc. Avec Impala, les requêtes interactives ne prennent que quelques secondes, ce qui en fait un excellent outil pour les requêtes rapides. Vous pouvez exécuter Impala sur le même cluster que vos flux de travail exécutés par lots MapReduce, utiliser Impala sur un cluster d'analyses de longue durée avec Hive et Pig ou créer un cluster spécifiquement ajusté pour les requêtes Impala.
  • Utilisation d'Impala à la place de Hive pour les travaux ETL exécutés par lots sur les clusters Amazon EMR transitoires. Impala est plus rapide que Hive pour de nombreuses requêtes, ce qui fournit de meilleures performances pour ces charges de travail. A l'instar de Hive, Impala utilise SQL, de sorte que les requêtes puissent être facilement modifiées depuis Hive vers Impala.
  • Utilisation d'Impala en parallèle d'un outil d'informatique décisionnelle tiers. Connectez un pilote client ODBC ou JDBC à votre cluster pour utiliser Impala comme moteur de puissants outils et tableaux de bord de virtualisation.

Les clusters Impala exécutés par lots et interactifs peuvent être créés dans Amazon EMR. Pour les instances, vous pouvez bénéficier d'un cluster Amazon EMR de longue durée exécutant Impala pour les requêtes ad hoc et interactives ou utiliser des clusters transitoires Impala pour les flux de travail ETL rapides.

Q : En quoi Impala est-il différent des systèmes SGBDR classiques ?

Les systèmes de gestion de base de données relationnelle traditionnels (SGBDR) fournissent les sémantiques de transaction et les propriétés d'atomicité, de cohérence, d'isolation et de durabilité (ACID) aux bases de données. Ils permettent également aux tables d'être indexées et mises en cache, de façon à ce que de petites quantités de données puissent être récupérées très rapidement, fournissent des mises à jour rapides de petites quantités de données et le renforcement de contraintes d'intégrité référentielle. Traditionnellement, ils s'exécutent sur une seule machine de grande taille et ne fournissent pas d'assistance pour ce qui concerne les types complexes de données définis par l'utilisateur. Impala utilise un système d'interrogation distribué similaire à ceux des systèmes SGBDR (RDBMS), mais interroge les données stockées dans HDFS et utilise le Hive metastore pour conserver les informations relatives aux données d'entrée. Comme pour Hive, le schéma d'une requête est fourni lors de l'exécution d'Impala, permettant de changer plus facilement de schéma. En outre, Impala peut interroger différents types de données complexes et exécuter les fonctions définies par l'utilisateur. Cependant, comme Impala traite les données stockées dans la mémoire, vous devez bien comprendre les limites matérielles de votre cluster et optimiser vos requêtes pour obtenir les meilleures performances.

Q : En quoi Impala est-il différent de Hive ?

Impala exécute les requêtes SQL à l'aide d'un moteur de traitement massivement parallèle (MPP), tandis que Hive exécute les requêtes SQL au moyen de MapReduce. Impala évite le temps système de Hive destiné à créer des travaux MapReduce, ce qui lui confère des délais d'interrogation plus courts que Hive. Cependant, Impala a recours à des ressources mémoire considérables et la mémoire disponible du cluster constitue une contrainte pesant sur la quantité de mémoire pouvant être consommée par chaque requête. Hive n'est pas limité de la même manière et peut traiter des ensembles de données plus volumineux avec le même matériel. En général, vous devriez utiliser Impala pour les requêtes rapides et interactives et Hive pour les charges de travail ETL sur de larges ensembles de données. Impala est conçu pour être rapide et est idéal pour les requêtes ad hoc, mais il nécessite une quantité de mémoire considérable pour exécuter les requêtes coûteuses ou traiter des ensembles de données très volumineux. C'est pourquoi Hive est recommandé pour les charges de travail où la rapidité n'est pas aussi capitale que l'achèvement de la tâche. Cliquez ici pour consulter l'évaluation comparative des performances d'Impala et de Hive.

Q : Puis-je utiliser Hadoop 1 ?

Non, Impala requiert Hadoop 2 et ne s'exécute pas sur un cluster avec une AMI exécutant Hadoop 1.x.

Q : Quels types d'instances devrais-je utiliser pour mon cluster Impala ?

Pour profiter de la meilleure expérience avec Impala, nous vous recommandons d'utiliser des instances optimisées pour la mémoire pour votre cluster. Toutefois, nous avons démontré qu'Impala est également plus performant que Hive lors de l'utilisation de types d'instances standard. Nous vous suggérons de lire la section Performance Testing and Query Optimization de l'Amazon EMR Developer’s Guide pour mieux estimer les ressources mémoire dont votre cluster aura besoin en fonction de votre ensemble de données et des types de requêtes. Le type de compression, les partitions et la requête réelle (nombre de jonctions, taille du résultat, etc.) jouent tous un rôle dans la quantité de mémoire nécessaire. Vous pouvez utiliser l'instruction EXPLAIN pour estimer la quantité de mémoire et autres ressources nécessaires à une requête Impala.

Q : Que se passe-t-il si la mémoire est saturée lors d'une requête ?

Si la mémoire est saturée, les requêtes échoueront et le démon Impala sur le nœud touché s'arrêtera. Amazon EMR redémarrera ensuite le démon sur le nœud de sorte qu'Impala soit prêt à exécuter une autre requête. Vos données dans HDFS sur le nœud restent disponibles, car c'est plus le démon exécuté sur le nœud, que le nœud en lui-même, qui s'arrête. Concernant les analyses ad hoc avec Impala, le délai d'interrogation peut souvent se mesurer en secondes. Par conséquent, si une requête échoue, vous pouvez rapidement déceler le problème et être en mesure de soumettre une nouvelle requête.

Q : Est-ce qu'Impala prend en charge les fonctions définies par l'utilisateur ?

Oui, Impala prend en charge les fonctions définies par l'utilisateur (UDF). Vous pouvez écrire des UDF spécifiques Impala dans Java ou C++. Vous pouvez également modifier les UDF ou les fonctions d'agrégat définies par l'utilisateur créées pour Hive afin de les utiliser avec Impala. Pour en savoir sur les UDF Hive, cliquez ici.

Q : Où sont stockées les données qu'Impala interroge ?

Impala interroge les données stockées dans HDFS ou dans les tables HBase.

Q : Puis-je exécuter Impala et MapReduce en même temps sur un cluster ?

Oui, vous pouvez mettre en place un cluster partagé avec Impala et MapReduce. Cependant, vous devez vous assurer d'allouer des ressources (mémoire, disque et CPU) à chaque application utilisant YARN ou Hadoop 2.x. Les ressources allouées devront dépendre des besoins du travail que vous prévoyez d'exécuter sur chaque application.

Q : Est-ce qu'Impala prend en charge les pilotes ODBC et JDBC ?

Alors que vous pouvez utiliser des pilotes ODBC, Impala est également un moteur idéal pour les outils tiers connectés à l'aide des pilotes JDBC. Vous pouvez télécharger et installer le pilote client JDBC pour Impala à partir du fichier suivant : http://elasticmapreduce.s3.amazonaws.com/libs/impala/1.2.1/impala-jdbc-1.2.1.zip. Depuis l'ordinateur client sur lequel vous avez installé l'outil d'informatique décisionnelle, connectez le pilote JDBC au nœud maître d'un cluster à l'aide de SSH ou d'une connexion VPN sur le port 21050. Pour en savoir plus, consultez la documentation Open an SSH Tunnel to the Master Node.

Haut de la page >>


Q : Qu'est-ce qu'Apache Pig ?

Pig est un package analytique open source qui s'exécute au-dessus de Hadoop. Pig est exploité avec un langage de base SQM appelé Pig Latin qui permet aux utilisateurs de structurer, résumer et interroger des sources de données stockées dans Amazon S3. Tout comme les opérations de type SQL, Pig Latin ajoute également une assistance de première catégorie pour les fonctions map/réduire et les types de données complexes et extensibles définis par l'utilisateur. Cette capacité permet le traitement de sources de données complexes et même non structurées comme les documents textes et les fichiers journaux. Pig permet les extensions utilisateurs par les fonctions définies par l'utilisateur, écrites en Java et déployées par le stockage dans Amazon S3.

Q : Que puis-je faire avec Pig s'exécutant sur Amazon EMR ?

En utilisant Pig avec Amazon EMR, vous pouvez mettre en œuvre des applications élaborées de traitement de données avec un langage familier du type de SQL et des outils faciles à utiliser avec Amazon EMR. Avec Amazon EMR, vous pouvez transformer vos applications Pig en entrepôts de données fiables pour exécuter les données telles que des tâches analytiques de données, de surveillance et des tâches de veille économique.

Q : Comment commencer à utiliser Pig exécuté sur Amazon EMR ?

La meilleure façon de débuter est de revoir votre tutoriel vidéo ou votre tutoriel écrit, situé ici http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2735&categoryID=269

Q : Existe-t-il de nouvelles fonctionnalités dans Pig, qui sont spécifiques à Amazon EMR ?

Oui. Trois nouvelles caractéristiques existent et font de Pig un outil encore plus puissant quand il est utilisé avec Amazon EMR, y compris :

a/ Accéder au fichiers systèmes multiples. Par défaut, un travail Pig peut seulement accéder à un système de fichier distant, qu'il soit dans un magasin HDFS ou un compartiment S3, pour des données d'entrée, de sortie ou temporaires. EMR a étendu Pig de telle façon qu'un travail puisse accéder à autant de systèmes de fichiers. Un avantage de cette caractéristique est que les données temporaires internes au travail sont toujours stockées sur le HDFS local, qui conduit à l'amélioration des performances.

b/ Charger des ressources à partir de S3. EMR a étendu Pig afin que les ressources JAR et les scripts personnalisés puissent être chargés à partir du système de fichiers S3, par exemple via « REGISTER s3:///my-bucket/piggybank.jar »

c/ Fonction Piggybank additionnelle pour le traitement String et DateTime. Ils sont documentés ici http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2730.

Q : Quels sont les types de clusters Pig pris en charge ?

Deux types de clusters sont pris en charge avec Pig : le mode interactif et le mode lot. Dans un mode interactif, un client peut démarrer un cluster, et exécuter des scripts Pig de façon interactive et directement sur le nœud maître. Traditionnellement, ce mode est utilisé pour faire des analyses de données ad hoc et pour le développement d'application. Dans le mode lot, le script Pig est stocké dans Amazon S3 et référencé au début du cluster. Traditionnellement, le mode lot est utilisé pour des séquences qui peuvent être répétées telles que la génération de rapport.

Q : Comment puis-je lancer un cluster Pig ?

Les clusters en mode lot et en mode interactif peuvent tous être démarrés à partir d'AWS Management Console, du client de ligne de commande EMR ou des API.

Q : Quelles sont les versions de Pig prises en charge par Amazon EMR ?

Amazon EMR prend en charge différentes versions de Pig, notamment la version 0.11.1.

Q : Puis-je écrire simultanément sur un compartiment S3 à partir de deux clusters ?

Oui, vous pouvez modifier le même compartiment à partir de deux clusters simultanés.

Q : Puis-je partager des données d'entrée dans S3 entre deux clusters ?

Oui, vous pouvez lire les mêmes données dans S3 à partir de deux clusters simultanés.

Q : Est-ce que les données peuvent être partagées entre des utilisateurs AWS multiples ?

Oui. Les données peuvent être partagées en utilisant un mécanisme de partage Amazon S3 standard, décrit ici http://docs.amazonwebservices.com/AmazonS3/latest/index.html?S3_ACLs.html

Q : Devrais-je exécuter un grand cluster et le partager entre plusieurs utilisateurs ou exécuter de plusieurs clusters de plus petite taille ?

Amazon EMR fournit une opportunité unique afin de vous permettre d'utiliser les deux méthodes. D'un côté un important cluster peut être plus efficace pour le traitement de charges de travail par lot réguliers. D'un autre côté, si vous avez besoin d'effectuer des requêtes ou des charges de travail ad hoc qui varient dans le temps, vous pouvez choisir de créer plusieurs clusters séparés, adaptés à une tâche spécifique de partage de sources de données stockées dans Amazon S3.

Q : Puis-je accéder à une ressource script ou jar qui est sur mon système de fichiers local ?

Non. Vous devez télécharger le script ou la ressource jar vers Amazon S3 ou le nœud maître du cluster avant qu'il puisse être référencé. Pour télécharger vers Amazon S3, vous pouvez utiliser les outils, y compris s3cmd, jets3t ou S3Organizer.

Q : Puis-je exécuter un cluster persistant exécutant plusieurs requêtes Pig ?

Oui. Vous exécutez un cluster selon un mode d'arrêt manuel de façon à ce qu'il ne s'arrête pas entre des étapes Pig. Pour réduire le risque de perte de données, nous vous recommandons de conserver périodiquement toutes vos données importantes dans Amazon S3. Une bonne habitude consiste à transférer régulièrement votre travail vers un nouveau cluster pour tester votre processus de récupération en cas de défaillance d'un nœud maître.

Q : Est-ce que Pig prend en charge l'accès à partir de JDBC ?

Non. Pig ne prend pas en charge l'accès via JDBC.

Haut de la page >>


Q : Qu'est-ce qu'Apache HBase ?

HBase est une base de données open source, non relationnelle et distribuée, conçue sur le modèle de BigTable de Google. Elle a été développée dans le cadre du projet Apache SofwareFoundation de Hadoop et elle s'exécute au-dessus du système de fichiers distribués Hadoop (HDFS) afin de lui fournir des capacités comparables à celles de BigTable. HBase offre un stockage tolérant aux pannes et efficace de volumes importants de données dispersées, qui utilise la compression et le stockage basés sur des colonnes. En outre, il permet de rechercher rapidement des données, car celles-ci sont stockées en mémoire au lieu d'un disque. Il est optimisé pour les opérations d'écriture séquentielle et très efficace pour l'insertion, la mise à jour et la suppression de lots. Il fonctionne de manière fluide avec Hadoop en partageant son système de fichiers et en servant d'entrée et de sortie directe pour les tâches dans Hadoop. Il intègre également Apache Hive, ce qui permet les requêtes de type SQL sur les tables HBase, se joint aux tables basées sur Hive et permet la prise en charge de la connectivité des bases de données Java (JDBC).

Q : Existe-t-il de nouvelles fonctionnalités dans HBase, qui sont spécifiques à Amazon EMR ?

Avec Amazon EMR, vous pouvez sauvegarder HBase dans AmazonS3 (totale ou incrémentielle, manuelle ou automatisée) et vous pouvez restaurer à partir d'une sauvegarde précédemment créée. En savoir plus à propos de HBase et d'EMR.

Q : Quelles sont les versions de HBase prises en charge dans Amazon EMR ?

Amazon EMR prend en charge HBase 0.94.7 et HBase 0.92.0. Pour utiliser HBase 0.94.7, vous devez indiquer la version AMI 3.0.0. Si vous utilisez le CLI, vous devez utiliser la version 2013-10-07 ou ultérieure.

Haut de la page >>


Q : Que permet de faire le connecteur EMR à Kinesis ?

Le connecteur permet à EMR de lire et d'interroger directement des données provenant de flux Kinesis. Vous pouvez désormais procéder au traitement par lot de flux Kinesis à l'aide des outils existants de l'écosystème Hadoop tels que Hive, Pig, MapReduce, Hadoop Streaming et Cascading.

Q : Quelles sont les nouvelles possibilités offertes par le connecteur EMR à Kinesis ?

En temps normal, pour lire et traiter des données provenant d'un flux Kinesis, vous devez écrire, déployer et tenir à jour des applications de traitement de flux indépendantes. Cela prend du temps et demande beaucoup d'efforts. Cependant, grâce à ce connecteur, vous pouvez commencer à lire et analyser un flux Kinesis en écrivant un simple script Hive ou Pig. Autrement dit, vous pouvez analyser des flux Kinesis en utilisant SQL. Vous pouvez, bien sûr, utiliser d'autres outils de l'écosystème Hadoop si vous le souhaitez. Vous n'avez pas besoin de développer ni de tenir à jour des applications de traitement supplémentaires.

Q : Pour quels types d'utilisateurs cette fonctionnalité peut-elle s'avérer utile ?

Cette intégration devrait profiter aux types d'utilisateurs suivants :

  • Les utilisateurs Hadoop souhaitant mettre à profit les nombreux outils de l'écosystème Hadoop pour analyser des flux Kinesis
  • Les utilisateurs Kinesis recherchant une méthode simple pour mettre en place des processus de traitement des flux et d'ETL des données Kinesis
  • Les analystes d'affaires et professionnels de l'informatique souhaitant réaliser une analyse ad-hoc des données de flux Kinesis à l'aide d'outils courants tels que SQL (via Hive) ou de langages de script tels que Pig

Q : Quels sont les principaux cas d'utilisation de cette intégration ?

Voici quelques-uns des cas d'utilisation spécifiques permis par cette intégration :

  • Analyse de fichiers journaux de diffusion continue : Vous pouvez analyser les fichiers journaux Web de vos flux de diffusion continue afin de générer la liste des 10 principales erreurs par région, navigateur et domaine d'accès, et de l'actualiser à intervalles de quelques minutes.
  • Processus de traitement de données complexes : Vous pouvez combiner un flux Kinesis à des données stockées dans S3, HDFS et des tables DynamoDB. Vous pouvez écrire des requêtes associant des données de parcours de navigation provenant de Kinesis à des informations sur une campagne publicitaire stockées dans une table DynamoDB, dans le but d'identifier les catégories de publicité les plus efficaces parmi celles affichées sur des sites Web donnés.
  • Requêtes ponctuelles : Vous pouvez charger périodiquement des données provenant de Kinesis dans HDFS et les exporter dans une table Impala locale permettant d'effectuer des requêtes analytiques rapides et interactives.

Q : Quelle version de l'AMI EMR dois-je choisir pour utiliser le connecteur ?

Vous devez utiliser la version 3.0.4 de l'AMI EMR ou une version ultérieure.

Q : Le connecteur constitue-t-il un outil indépendant ?

Non, il s'agit d'un composant intégré à la distribution d'Hadoop proposée par Amazon. Le connecteur est disponible dans les versions 3.0.4 et ultérieures de l'AMI EMR. Pour utiliser cette fonctionnalité, le client doit simplement mettre en service un cluster avec une AMI de version 3.0.4 ou ultérieure.

Q : Quel est le format de données requis pour permettre à EMR de lire les données d'un flux Kinesis ?

L'intégration entre EMR et Kinesis n'impose pas de format de données particulier. Vous pouvez lire tous les formats des données. Chaque enregistrement Kinesis est présenté à Hadoop en tant qu'enregistrement standard pouvant être lu avec n'importe quel framework MapReduce Hadoop. Les différents frameworks tels que Hive, Pig et Cascading intègrent des composants facilitant la sérialisation et la désérialisation. Les développeurs peuvent ainsi interroger facilement des données dans de nombreux formats, sans avoir à implémenter de code personnalisé. Par exemple, dans Hive, les utilisateurs peuvent lire des données issues de fichiers JSON, XML et SEQ en utilisant le SerDe Hive approprié lors de la définition d'une table. Pig propose un composant similaire, appelé Loadfunc/Evalfunc, de même que Cascading avec Tap. Les utilisateurs Hadoop peuvent exploiter l'ensemble de l'écosystème d'adaptateurs Hadoop sans avoir à écrire de code spécifique. Vous pouvez également implémenter des formats de désérialisation personnalisés pour lire des données spécifiques à un domaine avec l'un de ces outils.

Q : Comment analyser un flux Kinesis avec Hive dans EMR ?

Créez une table qui référence un flux Kinesis. Vous pouvez alors analyser la table dans Hive selon la procédure habituelle. Pour plus de détails, consultez nos didacticiels.

Q : J'utilise Hive, comment puis-je créer des requêtes qui combinent des données de flux Kinesis à d'autres sources de données ?

Commencez par créer une table qui référence un flux Kinesis. Une fois la table Hive créée, vous pouvez l'associer à des tables renvoyant vers d'autres sources données comme Amazon S3, Amazon Dynamo DB et HDFS. Cette procédure permet d'associer efficacement des données provenant de flux Kinesis à d'autres sources de données.

Q : Cette intégration est-elle uniquement disponible pour Hive ?

Non, vous pouvez utiliser Hive, Pig, MapReduce, Hadoop Streaming et Cascading.

Q : Comment puis-je configurer des tâches planifiées devant s'exécuter sur un flux Kinesis ?

Le connecteur d'entrée EMR Kinesis propose des fonctionnalités qui vous aident à configurer et gérer des tâches périodiques planifiées dans des moteurs de planification classiques de type Cron. Vous pouvez, par exemple, développer un script Hive qui s'exécute toutes les n minutes. Dans les paramètres de configuration des tâches, vous pouvez attribuer un nom logique à la tâche. Ce nom logique est un intitulé qui indique au connecteur d'entrée EMR Kinesis que les différentes instances de la tâche font partie du même calendrier périodique. Le nom logique permet au processus d'exploiter le système d'itérations, présenté ci-après.

MapReduce est un framework de traitement par lot. Pour analyser un flux Kinesis à l'aide d'EMR, ce flux doit donc être divisé en lots. Chaque lot constitue une itération. Ces itérations portent chacune un numéro, en partant de 0. Les limites des itérations sont définies par un numéro de début de séquence et un numéro de fin de séquence. Les itérations sont ensuite traitées de manière séquentielle par EMR.

En cas d'échec d'une tentative, le connecteur d'entrée EMR Kinesis relancera le traitement de l'itération correspondant au nom logique, à partir du numéro de début de séquence connu de l'itération. Grâce à cette fonctionnalité, les tentatives successives sur une même itération concernent exactement les mêmes enregistrements d'entrée du flux Kinesis que les tentatives précédentes. Cela garantit la cohérence (idempotence) du traitement du flux Kinesis.

Vous pouvez spécifier des noms logiques et des itérations en tant que paramètres d'exécution dans les outils Hadoop que vous utilisez. Par exemple, la section consacrée à l'exécution de requêtes avec points de contrôle de ce didacticiel comprend un exemple de code pour une requête Hive planifiée spécifiant un nom logique de requête, avec passage à l'itération suivante à chaque exécution réussie de la tâche.

Vous pourrez également trouver un exemple de script de planification cron dans les didacticiels.

Q : Où sont stockées les métadonnées des noms logiques et itérations ?

Les métadonnées permettant au connecteur d'entrée EMR Kinesis de fonctionner selon des processus de planification périodique sont stockées dans Amazon DynamoDB. Vous devez mettre en service une table Amazon DynamoDB et la désigner en tant que paramètre d'entrée de la tâche Hadoop. Pour garantir la réussite de l'intégration, veillez à configurer le débit d'E/S par seconde approprié pour la table. Référez-vous au didacticiel de mise en route pour en savoir plus sur la configuration des tables Amazon DynamoDB.

Q : Que se passe-t-il en cas d'échec du traitement d'une itération ?

Les identificateurs d'itération sont des valeurs indiquées par l'utilisateur pour l'associer à des limites spécifiques (numéros de début et de fin de séquence) au sein d'un flux Kinesis. Les données comprises dans ces limites sont chargées pendant la phase de traitement (« Map ») de la tâche MapReduce. Cette phase, gérée par le framework, est automatiquement relancée (trois fois par défaut) en cas d'échec de la tâche. Si toutes les tentatives échouent, vous disposez encore d'options permettant de relancer le traitement à partir de la dernière limite de données traitée avec succès, ou de limites de données précédentes. Pendant le traitement, vous pouvez contrôler ce comportement en indiquant le paramètre kinesis.checkpoint.iteration.no. Référez-vous au didacticiel de mise en route pour en savoir plus sur la configuration de cette valeur dans les différents outils de l'écosystème Hadoop.

Q : Puis-je exécuter plusieurs requêtes sur une même itération ?

Oui, vous pouvez sélectionner une itération ayant déjà fait l'objet d'une requête en définissant le paramètre kinesis.checkpoint.iteration.no lors de traitements ultérieurs. En utilisant ce paramètre, vous avez la certitude que les exécutions successives sur une même itération concernent exactement les mêmes enregistrements d'entrée du flux Kinesis que les exécutions précédentes.

Q : Que se passe-t-il si les enregistrements d'une itération ont expiré dans le flux Kinesis ?

Dans le cas où le numéro de début et/ou de fin de séquence d'une itération concerne des enregistrements du flux Kinesis ayant expiré, la tâche Hadoop échoue. Vous devez alors utiliser un autre nom logique pour traiter les données depuis le début du flux Kinesis.

Q : Puis-je transférer des données depuis EMR vers le flux Kinesis ?

Non. A l'heure actuelle, le connecteur EMR Kinesis ne permet pas d'écrire des données dans un flux Kinesis.

Q : Le connecteur d'entrée EMR Hadoop pour Kinesis permet-il le traitement de flux en continu ?

Le framework Hadoop MapReduce est un système de traitement par lot. En tant que tel, il ne prend pas en charge les requêtes en continu. Il existe cependant un certain nombre de frameworks émergents de l'écosystème Hadoop, tels que Twitter Storm et Spark Streaming, qui permettent aux développeurs de créer des applications de traitement de flux en continu. Un connecteur Storm pour Kinesis est disponible sur cette page GitHub. Vous pouvez consulter un didacticiel expliquant comment configurer Spark Streaming sur EMR et exécuter des requêtes en continu ici.

Les développeurs peuvent, en outre, utiliser la bibliothèque client Kinesis pour développer des applications de traitement de flux en temps réel. Vous trouverez des informations plus complètes sur le développement d'applications Kinesis personnalisées dans la documentation de Kinesis, disponible ici.

Q : Puis-je indiquer des informations d'identification pour accéder à un flux Kinesis géré par un autre compte AWS ?

Oui. Vous pouvez lire les flux d'un autre compte AWS en indiquant les informations d'identification d'accès du compte auquel appartient ce flux Kinesis. Par défaut, le connecteur Kinesis utilise les informations d'identification d'accès fournies par l'utilisateur au moment de la création du cluster. Vous pouvez utiliser des informations d'identification différentes pour accéder à des flux d'autres comptes AWS : pour cela, définissez les paramètres kinesis.accessKey et kinesis.secretKey. Les exemples suivants vous montrent comment définir les paramètres kinesis.accessKey et kinesis.secretKey dans Hive et Pig.

Exemple de code pour Hive :
...
STORED BY
'com.amazon.emr.kinesis.hive.KinesisStorageHandler'
TBLPROPERTIES(
"kinesis.accessKey"="AwsAccessKey",
"kinesis.secretKey"="AwsSecretKey",
);

Exemple de code pour Pig :

raw_logs = LOAD 'AccessLogStream' USING com.amazon.emr.kinesis.pig.Kin
esisStreamLoader('kinesis.accessKey=AwsAccessKey', 'kinesis.secretKey=AwsSecretKey'
) AS (line:chararray);

Q : Puis-je exécuter plusieurs requêtes en parallèle sur un même flux Kinesis ? Cela influera-t-il sur les performances ?

Oui, il est possible d'exécuter plusieurs requêtes en parallèle sur un même flux en utilisant des noms logiques différents pour chaque requête. Cependant, les opérations de lecture depuis une partition du flux Kinesis sont soumises à une limitation de débit de 2 Mo/s. Ainsi, si N requêtes s'exécutent en parallèle sur le même flux, chacune d'elle obtiendra un débit en sortie d'environ (2/N) Mo/s par partition composant le flux. Cela risque de ralentir le traitement et, dans certains cas, d'entraîner l'échec des requêtes.

Q : Puis-je associer et analyser plusieurs flux Kinesis dans EMR ?

Oui. Dans Hive, par exemple, vous pouvez créer deux tables associées à des flux Kinesis différents, puis créer des jointures entre les tables.

Q : Le connecteur EMR Kinesis peut-il gérer les événements de dimensionnement Kinesis, par exemple les fusions et subdivisions ?

Oui. L'implémentation peut gérer les événements de scission et de subdivision. Le connecteur Kinesis relie chaque partition Kinesis (unité de mesure logique au sein d'un flux Kinesis) aux tâches de traitement Hadoop MapReduce. Chaque partition unique existant au sein d'un flux pendant la période logique d'une itération entraîne la création d'une tâche de mappage. En cas de division ou de fusion d'une partition, Kinesis crée de nouveaux ID de partition uniques. En conséquence, le framework MapReduce met en service des tâches de mappage supplémentaires pour la lecture depuis Kinesis. Toutes ces opérations sont transparentes pour l'utilisateur.

Q : Que se passe-t-il si mon flux contient des périodes de « silence » ?

L'implémentation vous permet de configurer un paramètre appelé kinesis.nodata.timeout. Imaginons, par exemple, le scénario suivant : le paramètre kinesis.nodata.timeout est défini sur 2 minutes et vous souhaitez exécuter une requête Hive toutes les 10 minutes. Des données sont par ailleurs venues s'ajouter au flux depuis la dernière itération (il y a 10 minutes). Cependant, aucun nouvel enregistrement n'est transmis actuellement, ce qui signifie que le flux connaît une période de silence. Dans ce cas, lorsque l'itération actuelle de la requête est lancée, le connecteur Kinesis ne trouve aucun nouvel enregistrement en cours de transmission. Le connecteur continue à interroger le flux pendant 2 minutes. Si aucun enregistrement n'est reçu dans cet intervalle, le connecteur interrompt la requête et traite uniquement les enregistrements qui ont déjà été lus dans le lot actuel du flux. Cependant, si de nouveaux enregistrements arrivent avant que la durée définie pour kinesis.nodata.timeout soit écoulée, le connecteur patiente pendant un intervalle de temps supplémentaire, correspondant au paramètre kinesis.iteration.timeout. Pour savoir comment définir ces paramètres, consultez les didacticiels.

Q : Comment déboguer une requête qui échoue systématiquement pour chaque itération ?

En cas d'échec du traitement, vous pouvez utiliser les mêmes outils que ceux auxquels vous avez actuellement recours pour déboguer des tâches Hadoop, notamment la console Web Amazon EMR, qui vous aide à identifier les journaux d'erreurs et à y accéder. Pour plus de détails sur le débogage des tâches EMR, consultez cette page.

Q : Que se passe-t-il si je spécifie une table DynamoDB à laquelle je n'ai pas accès ?

La tâche échoue et l'exception est enregistrée dans les fichiers journaux d'erreurs de la tâche.

Q : Que se passe-t-il si la tâche s'exécute correctement, mais que l'enregistrement de points de contrôle dans DynamoDB échoue ?

La tâche échoue et l'exception est enregistrée dans les fichiers journaux d'erreurs de la tâche.

Q : Comment puis-je maximiser le débit en lecture depuis le flux Kinesis vers EMR ?

Le débit provenant du flux Kinesis augmente proportionnellement à la taille d'instance utilisée et à la taille des enregistrements du flux Kinesis. Nous vous recommandons d'utiliser des instances m1.xlarge ou de taille supérieure pour les nœuds maîtres et principaux afin d'exploiter au mieux cette fonctionnalité.

Haut de la page >>