Configurare Apache Spark e Apache Hadoop nei cluster Big Data

Importante

Il componente aggiuntivo per i cluster Big Data di Microsoft SQL Server 2019 verrà ritirato. Il supporto per i cluster Big Data di SQL Server 2019 terminerà il 28 febbraio 2025. Tutti gli utenti esistenti di SQL Server 2019 con Software Assurance saranno completamente supportati nella piattaforma e fino a quel momento il software continuerà a ricevere aggiornamenti cumulativi di SQL Server. Per altre informazioni, vedere il post di blog relativo all'annuncio e Opzioni per i Big Data nella piattaforma Microsoft SQL Server.

Per configurare Apache Spark e Apache Hadoop nei cluster Big Data, è necessario modificare il profilo del cluster al momento della distribuzione.

Un cluster Big Data ha quattro categorie di configurazione:

  • sql
  • hdfs
  • spark
  • gateway

sql, hdfs, spark, sql sono servizi. Ogni servizio è mappato alla categoria di configurazione con lo stesso nome. Tutte le configurazioni del gateway sono associate alla categoria gateway.

Ad esempio, tutte le configurazioni nel servizio hdfs appartengono alla categoria hdfs. Si noti che tutte le configurazioni di Hadoop (core-site), HDFS e Zookeeper appartengono alla categoria hdfs. Tutte le configurazioni di Livy, Spark, Yarn, Hive e Metastore appartengono alla categoria spark.

Configurazioni supportate elenca le proprietà di Apache Spark e Hadoop che è possibile configurare quando si distribuisce un cluster Big Data di SQL Server.

Le sezioni seguenti elencano le proprietà non è possibile modificare in un cluster:

Configurazioni tramite il profilo cluster

Nel profilo cluster sono disponibili risorse e servizi. In fase di distribuzione, è possibile specificare le configurazioni in uno dei due modi seguenti:

  • Prima di tutto, a livello di risorsa:

    Gli esempi seguenti sono i file di patch per il profilo:

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

    Oppure:

    { 
           "op": "add", 
           "path": "spec.resources.gateway.spec.settings", 
           "value": { 
             "gateway": { 
               "gateway-site.gateway.httpclient.socketTimeout": "95s" 
             } 
           } 
    } 
    
  • In secondo luogo, a livello di servizio. Assegnare più risorse a un servizio e specificare le configurazioni per il servizio.

Di seguito è riportato un esempio del file di patch per il profilo per l'impostazione delle dimensioni del blocco HDFS:

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

Il servizio hdfs è definito come segue:

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

Nota

Le configurazioni a livello di risorsa sostituiscono le configurazioni a livello di servizio. Una risorsa può essere assegnata a più servizi.

Abilitare Spark nel pool di archiviazione

Oltre alle configurazioni Apache supportate, viene anche offerta la possibilità di specificare se i processi Spark possono essere eseguiti o meno nel pool di archiviazione. Questo valore booleano, includeSpark, si trova nel file di configurazione bdc.json in spec.resources.storage-0.spec.settings.spark.

Un esempio di definizione del pool di archiviazione in bdc.json può essere simile al seguente:

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

Limiti

Le configurazioni possono essere specificate solo a livello di categoria. Per specificare più configurazioni con la stessa sottocategoria, non è possibile estrarre il prefisso comune nel profilo cluster.

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

Passaggi successivi