Warum kann ich die Apache-Spark-Verlaufsereignisse oder -protokolle nicht über die Spark-Weboberfläche in Amazon EMR anzeigen?

Lesedauer: 3 Minute
0

Ich kann die Apache-Spark-Verlaufsereignisse oder -protokolle nicht über die Spark-Weboberfläche in Amazon EMR anzeigen.

Kurzbeschreibung

Sie können Spark History Server in Amazon EMR wie folgt anzeigen:

  • Zugriff außerhalb des Clusters auf persistente Anwendungsbenutzeroberflächen (ab EMR 5.25.0)
  • Benutzeroberflächen für Cluster-Anwendungen durch Einrichtung eines Webproxys über eine SSH-Verbindung

Lösung

Ich kann meine Spark-Verlaufsereignisse nicht über den persistenten Spark History Server oder die Benutzeroberfläche außerhalb des Clusters anzeigen

Der Zugriff auf Ereignisse des persistenten Spark History Server ist über EMR-Cluster mit folgenden Merkmalen nicht möglich:

  • Mehrere Hauptknoten
  • EMR-Cluster, die in AWS Lake Formation integriert sind
  • Standardverzeichnis, das von HDFS auf ein anderes Dateisystem wie Amazon Simple Storage Service (Amazon S3) geändert wurde

Weitere Informationen finden Sie unter View persistent application user interfaces - Considerations and limitations (Anzeigen persistenter Anwendungsbenutzeroberflächen – Überlegungen und Einschränkungen).

Hinweis: Der persistente Spark History Server eignet sich nicht für Lasttests oder für die Anzeige Tausender parallel ausgeführter Spark-Anwendungen. Verwenden Sie Spark History Server im Cluster, um viele Anwendungen zu laden, zu testen oder anzuzeigen.

Ich kann meine Spark-Verlaufsereignisse nicht über den Spark History Server im Cluster oder die Benutzeroberfläche anzeigen

Der Zugriff auf Ereignisse von Spark History Server im Cluster ist nicht möglich, wenn Sie die Spark-Ereignisse in einem S3-Bucket in Amazon-EMR-Versionen vor 6.3* und 5.30 speichern. Spark History Server in diesen Amazon-EMR-Versionen verfügt nicht über die JAR-Datei emrfs-hadoop-assembly, die für den Zugriff auf S3-Buckets erforderlich ist. Ohne diese JAR-Datei erhalten Sie die folgende Fehlermeldung, wenn Sie versuchen, auf Ereignisse von Spark History Server zuzugreifen:

INFO FsHistoryProvider: History server ui acls disabled; users with admin permissions: ; groups with admin permissions
Exception in thread "main" java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.amazon.ws.emr.hadoop.fs.EmrFileSystem not found

Verwenden Sie die folgende Clusterkonfiguration, um diesen Fehler zu vermeiden. Diese Konfiguration fügt die erforderliche JAR-Datei emrfs-hadoop-assembly zum Klassenpfad von Spark History Server hinzu.

[
  {
    "classification": "spark-defaults",
    "configurations": [],
    "properties": {
      "spark.eventLog.dir": "s3://<yourbucket>/",
      "spark.history.fs.logDirectory": "s3://<yourbucket>/"
    }
  },
  {
    "classification": "spark-env",
    "configurations": [
      {
        "classification": "export",
        "properties": {
          "SPARK_DAEMON_CLASSPATH": "$(ls /usr/share/aws/emr/emrfs/lib/emrfs-hadoop-assembly-*)"
        }
      }
    ],
    "properties": {}
  }
]

In EMR 6.x-Versionen (bis 6.3) führt das Festlegen des Spark-Ereignisprotokollverzeichnisses auf S3 während des Clusterstarts ohne die Datei emrfs-hadoop-assembly zur Beendigung des Clusters. Wenn Sie Änderungen vornehmen, nachdem der Cluster ausgeführt wurde, werden die Konfigurationsänderungen möglicherweise rückgängig gemacht.

Hinweis: Diese Problemumgehung ist für Amazon-EMR-Versionen nach 6.3 und 5.30 nicht erforderlich, da die erforderliche JAR-Datei standardmäßig dem Ordner /usr/lib/spark/jars/ hinzugefügt wird.

Beachten Sie, dass Spark History Server die Anwendungen in der unvollständigen Anwendungsliste nicht anzeigt, wenn Spark-Ereignisse in S3 geschrieben werden. Wenn der Spark-Kontext nicht ordnungsgemäß geschlossen wird, werden die Ereignisprotokolle außerdem nicht ordnungsgemäß zu S3 hochgeladen.

Ich kann die Spark-Verlaufsereignisse für meinen Cluster, der sich in einem privaten Subnetz befindet, nicht anzeigen

Wenn Sie ein privates Subnetz für Ihren Cluster verwenden, stellen Sie sicher, dass die Amazon Virtual Private Cloud (Amazon VPC)-Endpunktrichtlinie für das private Subnetz korrekt ist. Die VPC-Endpunktrichtlinie muss arn:aws:s3:::prod.MyRegion.appinfo.src/* in der S3-Ressourcenliste enthalten. Weitere Informationen finden Sie unter Minimum Amazon S3 policy for private subnet (Amazon-S3-Mindestrichtlinie für ein privates Subnetz).

Ich erhalte die Fehlermeldung „NET:ERR_CERT_COMMON_NAME_INVALID“, nachdem ich die Verschlüsselung während der Übertragung auf der Spark-Benutzeroberfläche aktiviert habe

Dieser Fehler wird durch ein Problem bei der Überprüfung des Browserzertifikats verursacht. Wenn Sie Mozilla Firefox verwenden, wird eine Option angezeigt, mit der Sie das Risiko akzeptieren und das Zertifikat weiterhin verwenden können. Geben Sie in Google Chrome auf der Warnseite thisisunsafe ein, damit Chrome die Zertifikatsüberprüfung überspringt.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr