Zephyrnet-logo

Verbeter de monitoring en foutopsporing voor AWS Glue-taken met behulp van nieuwe statistieken voor taakwaarneming | Amazon-webservices

Datum:

Voor elk modern datagedreven bedrijf is het hebben van soepele data-integratiepijplijnen cruciaal. Deze pijplijnen halen gegevens uit verschillende bronnen, transformeren deze en laden deze in bestemmingssystemen voor analyse en rapportage. Als het goed werkt, biedt het tijdige en betrouwbare informatie. Zonder waakzaamheid kunnen de variërende datavolumes, kenmerken en applicatiegedrag er echter voor zorgen dat datapijplijnen inefficiënt en problematisch worden. De prestaties kunnen afnemen of pijpleidingen kunnen onbetrouwbaar worden. Onopgemerkte fouten resulteren in slechte gegevens en hebben een impact op de downstream-analyse. Daarom is robuuste monitoring en probleemoplossing voor datapijplijnen essentieel op de volgende vier gebieden:

  • Betrouwbaarheid
  • Performance
  • Doorvoer
  • Gebruik van middelen

Samen zorgen deze vier aspecten van monitoring voor end-to-end zichtbaarheid en controle over een datapijplijn en de activiteiten ervan.

Vandaag kondigen wij met trots een nieuwe klasse aan Amazon Cloud Watch statistieken gerapporteerd met daarop uw pijplijnen gebouwd AWS lijm voor Apache Spark-taken. De nieuwe statistieken bieden geaggregeerde en fijnmazige inzichten in de status en werking van uw taakuitvoeringen en de gegevens die worden verwerkt. Naast het bieden van inzichtelijke dashboards, bieden de statistieken classificatie van fouten, wat helpt bij de analyse van de hoofdoorzaak van prestatieknelpunten en foutdiagnose. Met deze analyse kunt u de aanbevolen oplossingen en best practices voor het ontwerpen van uw taken en pijplijnen evalueren en toepassen. Als gevolg hiervan profiteert u van een hogere beschikbaarheid, betere prestaties en lagere kosten voor uw AWS Glue voor Apache Spark-workload.

Dit bericht laat zien hoe de nieuwe verbeterde statistieken u helpen bij het monitoren en debuggen van AWS Glue-taken.

Schakel de nieuwe statistieken in

De nieuwe statistieken kunnen worden geconfigureerd via de jobparameter enable-observability-metrics.

De nieuwe statistieken zijn standaard ingeschakeld op de AWS Glue Studio-console. Voer de volgende stappen uit om de statistieken op de AWS Glue Studio-console te configureren:

  1. Kies op de AWS Glue-console: ETL-banen in het navigatievenster.
  2. Onder Uw banen, kies je baan.
  3. Op de Details van de baan tabblad, uitvouwen Geavanceerde eigenschappen.
  4. Onder Statistieken voor de observatie van banenselecteer Schakel het maken van extra observatie-CloudWatch-statistieken in wanneer deze taak wordt uitgevoerd.

Om de nieuwe statistieken in de AWS Glue in te schakelen CreateJob en StartJobRun API's, stel de volgende parameters in in het DefaultArguments eigendom:

  • sleutel - --enable-observability-metrics
  • Waarde - true

Om de nieuwe statistieken in te schakelen in de AWS-opdrachtregelinterface (AWS CLI), stel dezelfde taakparameters in in het --default-arguments argument.

Gebruik geval

Een typische werklast voor AWS Glue voor Apache Spark-taken is het laden van gegevens uit een relationele database naar een datameer met op SQL gebaseerde transformaties. Het volgende is een visuele weergave van een voorbeeldtaak waarbij het aantal werknemers 10 is.

Toen de voorbeeldtaak werd uitgevoerd, werd de workerUtilization De statistieken lieten de volgende trend zien.

Merk op dat workerUtilization toonde gedurende de gehele duur waarden tussen 0.20 (20%) en 0.40 (40%). Dit gebeurt meestal wanneer de taakcapaciteit overbezet is en veel Spark-uitvoerders inactief waren, wat tot onnodige kosten leidde. Om de efficiëntie van het gebruik van hulpbronnen te verbeteren, is het een goed idee om dit in te schakelen AWS Glue automatisch schalen. De volgende schermafbeelding laat hetzelfde zien workerUtilization metrische grafiek wanneer AWS Glue Auto Scaling is ingeschakeld voor dezelfde taak.

workerUtilization toonde in het begin een waarde van 1.0 vanwege AWS Glue Auto Scaling en schommelde tussen 0.75 (75%) en 1.0 (100%) op basis van de werklastvereisten.

Query en visualiseer statistieken in CloudWatch

Voer de volgende stappen uit om statistieken op te vragen en te visualiseren op de CloudWatch-console:

  1. Kies op de CloudWatch-console Alle statistieken in het navigatievenster.
  2. Onder Aangepaste naamruimten, kiezen Lijm.
  3. Kies Waarneembaarheidsstatistieken (of Waarneembaarheidsstatistieken per bronof Waarneembaarheidsstatistieken per sink).
  4. Zoek en selecteer de specifieke statistieknaam, taaknaam, taakuitvoerings-ID en observatiegroep.
  5. Op de Grafiekstatistieken tabblad, configureer de gewenste statistiek, periode, enzovoort.

Query-statistieken met behulp van de AWS CLI

Voer de volgende stappen uit voor het uitvoeren van query's met behulp van de AWS CLI (voor dit voorbeeld vragen we naar de statistiek voor het gebruik van werknemers):

  1. Maak een JSON-bestand met metrische definitie (geef uw AWS Glue-taaknaam en taakuitvoerings-ID op):
    $ cat multiplequeries.json
    [
      {
        "Id": "avgWorkerUtil_0",
        "MetricStat" : {
          "Metric" : {
            "Namespace": "Glue",
            "MetricName": "glue.driver.workerUtilization",
            "Dimensions": [
              {
                  "Name": "JobName",
                  "Value": "<your-Glue-job-name-A>"
              },
              {
                "Name": "JobRunId",
                "Value": "<your-Glue-job-run-id-A>"
              },
              {
                "Name": "Type",
                "Value": "gauge"
              },
              {
                "Name": "ObservabilityGroup",
                "Value": "resource_utilization"
              }
            ]
          },
          "Period": 1800,
          "Stat": "Minimum",
          "Unit": "None"
        }
      },
      {
          "Id": "avgWorkerUtil_1",
          "MetricStat" : {
          "Metric" : {
            "Namespace": "Glue",
            "MetricName": "glue.driver.workerUtilization",
            "Dimensions": [
               {
                 "Name": "JobName",
                 "Value": "<your-Glue-job-name-B>"
               },
               {
                 "Name": "JobRunId",
                 "Value": "<your-Glue-job-run-id-B>"
               },
               {
                 "Name": "Type",
                 "Value": "gauge"
               },
               {
                 "Name": "ObservabilityGroup",
                 "Value": "resource_utilization"
               }
            ]
          },
          "Period": 1800,
          "Stat": "Minimum",
          "Unit": "None"
        }
      }
    ]

  2. Voer de ... uit get-metric-data opdracht:
    $ aws cloudwatch get-metric-data --metric-data-queries file://multiplequeries.json 
         --start-time '2023-10-28T18:20' 
         --end-time '2023-10-28T19:10'  
         --region us-east-1
    {
        "MetricDataResults": [
          {
             "Id": "avgWorkerUtil_0",
             "Label": "<your label A>",
             "Timestamps": [
                   "2023-10-28T18:20:00+00:00"
             ], 
             "Values": [
                   0.06718750000000001
             ],
             "StatusCode": "Complete"
          },
          {
             "Id": "avgWorkerUtil_1",
             "Label": "<your label B>",
             "Timestamps": [
                  "2023-10-28T18:20:00+00:00"
              ],
              "Values": [
                  0.5959183673469387
              ],
              "StatusCode": "Complete"
           }
        ],
        "Messages": []
    }

Een CloudWatch-alarm maken

U kunt op statische drempels gebaseerde alarmen maken voor de verschillende statistieken. Voor instructies, zie Creëer een CloudWatch-alarm op basis van een statische drempel.

Voor scheefheid kunt u bijvoorbeeld een alarm instellen skewness.stage met een drempelwaarde van 1.0, en skewness.job met een drempel van 0.5. Deze drempel is slechts een aanbeveling; u kunt de drempel aanpassen op basis van uw specifieke gebruikssituatie (sommige taken zullen naar verwachting scheef zijn en dit is geen probleem om u zorgen over te maken). Onze aanbeveling is om de metrische waarden van uw taakuitvoeringen enige tijd te evalueren voordat u de afwijkende waarden kwalificeert en de drempelwaarden voor alarm configureert.

Andere verbeterde statistieken

Voor een volledige lijst met andere verbeterde statistieken die beschikbaar zijn bij AWS Glue-taken, raadpleegt u Monitoring met AWS Glue Observability-statistieken. Met deze statistieken kunt u de operationele inzichten van uw taken vastleggen, zoals het gebruik van bronnen (geheugen en schijf), genormaliseerde foutklassen zoals compilatie en syntaxis, gebruikers- of servicefouten en doorvoer voor elke bron of sink (records, bestanden, partities en bytes gelezen of geschreven).

Dashboards voor de observatie van taken

U kunt de waarneembaarheid van uw AWS Glue-taken verder vereenvoudigen met behulp van dashboards voor de inzichtstatistieken die realtime monitoring mogelijk maken met behulp van Amazon beheerde Grafana, en maak visualisatie en analyse van trends mogelijk met Amazon QuickSight.

Conclusie

Dit bericht demonstreerde hoe de nieuwe verbeterde CloudWatch-statistieken u helpen bij het monitoren en debuggen van AWS Glue-taken. Met deze verbeterde statistieken kunt u problemen gemakkelijker in realtime identificeren en oplossen. Dit resulteert in AWS Glue-opdrachten met een hogere uptime, snellere verwerking en lagere uitgaven. Het uiteindelijke voordeel voor u is een effectievere en geoptimaliseerde AWS Glue voor Apache Spark-workloads. De statistieken zijn beschikbaar in alle door AWS Glue ondersteunde regio's. Bekijken!


Over de auteurs

Noritaka Sekiyama is een Principal Big Data Architect in het AWS Glue-team. Hij is verantwoordelijk voor het bouwen van software-artefacten om klanten te helpen. In zijn vrije tijd fietst hij graag met zijn nieuwe racefiets.

Shenoda Guirguis is een Senior Software Development Engineer in het AWS Glue-team. Zijn passie ligt in het bouwen van schaalbare en gedistribueerde data-infrastructuur/verwerkingssystemen. Als hij de kans krijgt, houdt Shenoda van lezen en voetballen.

Sean Ma is een Principal Product Manager in het AWS Glue-team. Hij heeft meer dan 18 jaar ervaring in het innoveren en leveren van zakelijke producten die de kracht van data voor gebruikers ontsluiten. Naast zijn werk houdt Sean van duiken en universiteitsvoetbal.

Mohit Saxena is een Senior Software Development Manager bij het AWS Glue-team. Zijn team richt zich op het bouwen van gedistribueerde systemen om klanten met interactieve en eenvoudig te gebruiken interfaces in staat te stellen petabytes aan gegevens efficiënt te beheren en naadloos te transformeren over datameren op Amazon S3, databases en datawarehouses in de cloud.

spot_img

Laatste intelligentie

spot_img