Configurer Apache Spark et Apache Hadoop dans les clusters Big Data

Important

Le module complémentaire Clusters Big Data Microsoft SQL Server 2019 sera mis hors service. La prise en charge de la plateforme Clusters Big Data Microsoft SQL Server 2019 se terminera le 28 février 2025. Tous les utilisateurs existants de SQL Server 2019 avec Software Assurance seront entièrement pris en charge sur la plateforme, et le logiciel continuera à être maintenu par les mises à jour cumulatives SQL Server jusqu’à ce moment-là. Pour plus d’informations, consultez le billet de blog d’annonce et les Options Big Data sur la plateforme Microsoft SQL Server.

Pour configurer Apache Spark et Apache Hadoop dans des clusters Big Data, vous devez modifier le profil des clusters au moment du déploiement.

Un cluster Big Data comporte quatre catégories de configuration :

  • sql
  • hdfs
  • spark
  • gateway

sql, hdfs, spark et sql sont des services. À chacun d’eux est associée une catégorie de configuration du même nom. Toutes les configurations de passerelle sont affectées à la catégorie gateway.

Par exemple, toutes les configurations dans le service hdfs appartiennent à la catégorie hdfs. Notez que toutes les configurations Hadoop (core-site), HDFS et ZooKeeper appartiennent à la catégorie hdfs, et toutes les configurations Livy, Spark, YARN, Hive et Metastore à la catégorie spark.

La page Configurations prises en charge répertorie les propriétés Apache Spark & Hadoop que vous pouvez configurer lorsque vous déployez un cluster Big Data SQL Server.

Les sections suivantes répertorient les propriétés que vous ne pouvez pas modifier dans un cluster :

Configurations par profil de cluster

Le profil du cluster comporte des ressources et des services. Au moment du déploiement, nous pouvons spécifier les configurations de deux manières :

  • Premièrement, au niveau de la ressource :

    Les exemples suivants sont les fichiers de correctif pour le profil :

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

    Ou :

    { 
           "op": "add", 
           "path": "spec.resources.gateway.spec.settings", 
           "value": { 
             "gateway": { 
               "gateway-site.gateway.httpclient.socketTimeout": "95s" 
             } 
           } 
    } 
    
  • Deuxièmement, au niveau du service. Attribuez plusieurs ressources à un service et spécifiez les configurations pour le service.

Voici un exemple de fichier correctif pour le profil pour la définition de la taille de bloc HDFS :

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

Le service hdfs est défini comme suit :

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

Notes

Les configurations au niveau de la ressource remplacent les configurations au niveau du service. Une ressource peut être attribuée à plusieurs services.

Activer Spark dans le pool de stockage

Outre les configurations Apache prises en charge, vous pouvez également autoriser ou non l’exécution de travaux Spark dans le pool de stockage. Cette valeur booléenne, includeSpark, se trouve dans le fichier de configuration bdc.json à l’emplacement spec.resources.storage-0.spec.settings.spark.

Un exemple de définition de pool de stockage dans bdc.json peut se présenter comme suit :

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

Limites

Les configurations peuvent être spécifiées au niveau de la catégorie uniquement. Pour spécifier plusieurs configurations avec la même sous-catégorie, nous ne pouvons pas extraire le préfixe commun dans le profil du cluster.

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

Étapes suivantes