Compartir a través de


Configuración de Apache Spark y Apache Hadoop en clústeres de macrodatos

Importante

El complemento Clústeres de macrodatos de Microsoft SQL Server 2019 se va a retirar. La compatibilidad con Clústeres de macrodatos de SQL Server 2019 finalizará el 28 de febrero de 2025. Todos los usuarios existentes de SQL Server 2019 con Software Assurance serán totalmente compatibles con la plataforma, y el software se seguirá conservando a través de actualizaciones acumulativas de SQL Server hasta ese momento. Para más información, consulte la entrada de blog sobre el anuncio y Opciones de macrodatos en la plataforma Microsoft SQL Server.

Para configurar Apache Spark y Apache Hadoop en clústeres de macrodatos, debe modificar el perfil de clúster en el momento de la implementación.

Un clúster de macrodatos tiene cuatro categorías de configuración:

  • sql
  • hdfs
  • spark
  • gateway

sql, hdfs, spark, sql son servicios. Cada servicio se asigna a la misma categoría de configuración nombrada. Todas las configuraciones de puerta de enlace van a la categoría gateway.

Por ejemplo, todas las configuraciones del servicio hdfs pertenecen a la categoría hdfs. Tenga en cuenta que todas las configuraciones de Hadoop (sitio principal), HDFS y Zookeeper pertenecen a la categoría hdfs; todas las configuraciones de Livy, Spark, Yarn, Hive, Metastore pertenecen a la categoría spark.

Las configuraciones admitidas enumeran las propiedades de Apache Spark y Hadoop que puede configurar al implementar un clúster de macrodatos de SQL Server.

En las secciones siguientes se enumeran las propiedades que no se pueden modificar en un clúster:

Configuraciones a través del perfil de clúster

En el perfil de clúster hay recursos y servicios. En el momento de la implementación, podemos especificar configuraciones de una de estas dos maneras:

  • En primer lugar, a nivel de recurso:

    Los ejemplos siguientes son los archivos de parche del perfil:

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

    O:

    { 
           "op": "add", 
           "path": "spec.resources.gateway.spec.settings", 
           "value": { 
             "gateway": { 
               "gateway-site.gateway.httpclient.socketTimeout": "95s" 
             } 
           } 
    } 
    
  • En segundo lugar, en el nivel de servicio. Asigne varios recursos a un servicio y especifique configuraciones para el servicio.

A continuación se muestra un ejemplo del archivo de revisión del perfil para establecer el tamaño del bloque HDFS:

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

El servicio hdfs se define como:

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

Nota:

Las configuraciones de nivel de recurso invalidan las configuraciones de nivel de servicio. Se puede asignar un recurso a varios servicios.

Habilitar Spark en el grupo de almacenamiento

Además de las configuraciones de Apache admitidas, también ofrecemos la capacidad de configurar si los trabajos de Spark se pueden ejecutar en el grupo de almacenamiento. Este valor booleano, includeSpark, se encuentra en el bdc.json archivo de configuración en spec.resources.storage-0.spec.settings.spark.

Una definición de grupo de almacenamiento de ejemplo en bdc.json puede tener este aspecto:

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

Limitaciones

Las configuraciones solo se pueden especificar en el nivel de categoría. Para especificar varias configuraciones con la misma sub categoría, no se puede extraer el prefijo común en el perfil de clúster.

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

Pasos siguientes