web-dev-qa-db-fra.com

Pouvons-nous considérer AWS Glue comme un remplacement pour EMR?

Juste une question rapide à clarifier de Masters, car AWS Glue en tant qu'outil ETL, peut fournir aux entreprises des avantages tels que la maintenance minimale ou inexistante du serveur, des économies de coûts en évitant le sur-approvisionnement ou le sous-approvisionnement des ressources, en plus de fonctionner sur spark, I cherche des clarifications, si AWS Glue peut remplacer EMR?

Si les deux peuvent coexister, comment EMR peut-il jouer un rôle avec AWS Glue?

Merci et salutations

Yuva

12
Yuva

Selon ma compréhension, la colle ne peut pas remplacer le DME. Cela dépend en fait de votre cas d'utilisation. Il y a quelques limitations avec la colle ETL;

  • Il ne prend pas en charge les --packages.
  • Vous n'avez pas de stockage interne pour stocker les données temporaires.

Avec le catalogue de colle, vous pouvez afficher les données dans Athena, mais il a aussi quelques limitations comme ne peut pas créer de table en tant que sélection, ne peut pas créer de vue, etc. Vous pouvez utiliser le catalogue de données de colle dans EMR pour surmonter les limitations d'Athena.

Ainsi, actuellement, glue peut remplacer le magasin de métadonnées persistantes.

0
ctrl-c

Mon expérience avec Glue jusqu'à présent n'a pas fourni quelque chose. significatif par rapport au DME. En outre, j'ai vu quelques limitations dans Glue telles que les bibliothèques, le stockage temporaire, etc. par exemple, lire des fichiers CSV à 1 ligne, ignorer tout le fichier s'il manque un en-tête, etc.

Je cherche toujours à savoir si Glue ajuste dynamiquement le cluster en fonction de la charge des requêtes. Si je ne trouve pas qch. bon, je pense que je vais référer mon entreprise pour changer de DME avec plus de flexibilité.

2
ylcnky

BTW, vous pouvez également configurer toute la configuration intégrée en passant les paramètres au travail de colle:
ex.

--conf value: spark.yarn.executor.memoryOverhead=1024   
--conf value: spark.driver.memory=10g  

Cela peut aider à rendre Glue Job plus flexible.

1
esinik

Vous pouvez réellement exécuter des tâches Spark "sans serveur" sur AWS Glue. Nous utilisons AWS Glue comme une solution "Spark sans serveur" à mise à l'échelle automatique: les tâches obtiennent automatiquement un cluster attribué à partir de l'AWS géré = Spark pool de clusters. Le kit SDK AWS Glue et le catalogue Glue peuvent être ignorés et le script généré automatiquement peut être remplacé par un code Spark. Les dépendances peuvent être mises en package) et poussé à S3.

Cependant, les options de configuration sont limitées. Les paramètres de mise à l'échelle sont limités à WorkerType et NumberOfWorkers, ou à la magie MaxCapacity. La taille du cluster n'est pas automatiquement mise à l'échelle avec les fichiers ouverts en dehors du SDK Glue.

Exemple d'extrait de configuration CloudFormation:

  MyJob:                                                                                                                                                                                                
    Type: "AWS::Glue::Job"                                                                                                                                                                                     
    Properties:                                                                                                                                                                                                
      Command:                                                                                                                                                                                                 
        Name: "glueetl"                                                                                                                                                                                        
        ScriptLocation: "SOME_S3_MAIN_CLASS_LOCATION"
      AllocatedCapacity: 3
      DefaultArguments:                                                                                                                                                                                        
        "--job-language": scala                                                                                                                                                                                
        "--class": some.class.path.inside.jar.MyJob                                                                                                                                           
        "--enable-metrics": true                                                                                                                                                                               
        "--extra-jars": "SOME_S3_JAR_LOCATION"

Plus d'options de configuration peuvent être trouvées dans les documents Glue CloudFormation: https://docs.aws.Amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job- arguments par défaut

0
Turiphro

AWS Glue vs Amazon EMR

Cette image donne une image très claire de la différence entre les deux. Il faut donc vraiment tenir compte du fait qu'ils sont différents à différents niveaux.

Compte tenu de leur capacité à gérer les opérations ETL, je vous suggère d'opter pour AWS Glue.

AWS Glue est conçu pour exécuter les opérations d'extraction, de transformation et de chargement pour l'analyse des mégadonnées. Amazon EMR peut également être utilisé pour les opérations ETL, parmi de nombreuses autres opérations de base de données.

Mais, AWS Glue est plus rapide qu'Amazon EMR étant une plate-forme ETL uniquement. En tant que plate-forme sans serveur, AWS Glue a l'avantage sur EMR en termes de flexibilité opérationnelle.

https://www.knowledgenile.com/blogs/aws-glue-vs-emr/#Performance

0
MichaelF823