Konfigurieren von Apache Spark und Apache Hadoop in Big Data-Clustern

Wichtig

Das Microsoft SQL Server 2019-Big Data-Cluster-Add-On wird eingestellt. Der Support für SQL Server 2019-Big Data-Clusters endet am 28. Februar 2025. Alle vorhandenen Benutzer*innen von SQL Server 2019 mit Software Assurance werden auf der Plattform vollständig unterstützt, und die Software wird bis zu diesem Zeitpunkt weiterhin über kumulative SQL Server-Updates verwaltet. Weitere Informationen finden Sie im Ankündigungsblogbeitrag und unter Big Data-Optionen auf der Microsoft SQL Server-Plattform.

Zum Konfigurieren von Apache Spark und Apache Hadoop in Big Data-Clustern müssen Sie das Clusterprofil zum Zeitpunkt der Bereitstellung ändern.

Ein Big Data-Cluster verfügt über vier Konfigurationskategorien:

  • sql
  • hdfs
  • spark
  • gateway

sql, hdfs, spark und sql sind Dienste. Diese Dienste werden der jeweils gleichen benannten Konfigurationskategorie zugeordnet. Alle Gatewaykonfigurationen werden in Kategorie gateway eingeordnet.

Sämtliche Konfigurationen im Dienst hdfs zählen beispielsweise zu Kategorie hdfs. Beachten Sie, dass alle Konfigurationen für Hadoop (core-site), HDFS und Zookeeper zur Kategorie hdfs zählen und alle Konfigurationen für Livy, Spark, Yarn und Hive Metastore zur Kategorie spark.

Unter Unterstützte Konfigurationen sind die Eigenschaften von Apache Spark und Apache Hadoop aufgeführt, die Sie beim Bereitstellen eines Big Data-Clusters in SQL Server konfigurieren können.

In den folgenden Abschnitten sind die Eigenschaften aufgeführt, die Sie in einem Cluster nicht ändern können:

Konfigurationen über das Clusterprofil

Im Clusterprofil gibt es Ressourcen und Dienste. Zum Zeitpunkt der Bereitstellung können Konfigurationen auf zwei Arten angegeben werden:

  • Auf Ressourcenebene:

    In den folgenden Beispielen werden die Patchdateien für das Profil aufgeführt:

    { 
           "op": "add", 
           "path": "spec.resources.zookeeper.spec.settings", 
           "value": { 
             "hdfs": { 
               "zoo-cfg.syncLimit": "6" 
             } 
           } 
    }
    

    Oder:

    { 
           "op": "add", 
           "path": "spec.resources.gateway.spec.settings", 
           "value": { 
             "gateway": { 
               "gateway-site.gateway.httpclient.socketTimeout": "95s" 
             } 
           } 
    } 
    
  • Auf Dienstebene. Weisen Sie einem Dienst mehrere Ressourcen zu, und geben Sie die Konfigurationen für den Dienst an.

Im Folgenden finden Sie ein Beispiel für die Patchdatei für das Profil zum Festlegen der HDFS-Blockgröße:

{ 
      "op": "add", 
      "path": "spec.services.hdfs.settings", 
      "value": { 
        "hdfs-site.dfs.block.size": "268435456" 
     } 
} 

Der Dienst hdfs wird wie folgt definiert:

{ 
  "spec": { 
   "services": { 
     "hdfs": { 
        "resources": [ 
          "nmnode-0", 
          "zookeeper", 
          "storage-0", 
          "sparkhead" 
        ], 
        "settings":{ 
          "hdfs-site.dfs.block.size": "268435456" 
        } 
      } 
    } 
  } 
} 

Hinweis

Konfigurationen auf Ressourcenebene überschreiben Konfigurationen auf Dienstebene. Eine Ressource kann mehreren Diensten zugewiesen werden.

Aktivieren von Spark im Speicherpool

Zusätzlich zu den unterstützten Apache-Konfigurationen bieten wir auch die Möglichkeit an, zu konfigurieren, ob Spark-Aufträge im Speicherpool ausgeführt werden können oder nicht. Der boolesche Wert includeSpark befindet sich in der bdc.json-Konfigurationsdatei unter spec.resources.storage-0.spec.settings.spark.

Ein Beispiel für eine Speicherpooldefinition in der Datei „bdc.json“ sieht wie folgt aus:

...
"storage-0": {
                "metadata": {
                    "kind": "Pool",
                    "name": "default"
                },
                "spec": {
                    "type": "Storage",
                    "replicas": 2,
                    "settings": {
                        "spark": {
                            "includeSpark": "true"
                        }
                    }
                }
            }

Einschränkungen

Konfigurationen können nur auf Kategorieebene festgelegt werden. Sie können das gemeinsame Präfix nicht im Clusterprofil extrahieren, um mehrere Konfigurationen mit derselben Unterkategorie festzulegen.

{ 
      "op": "add", 
      "path": "spec.services.hdfs.settings.core-site.hadoop", 
      "value": { 
        "proxyuser.xyz.users": "*", 
        "proxyuser.abc.users": "*" 
     } 
} 

Nächste Schritte