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
y sql
son servicios. Cada servicio se asigna a la misma categoría de configuración con nombre. Todas las configuraciones de puerta de enlace se corresponden 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 y Metastore de Hive pertenecen a la categoría spark
.
Configuraciones admitidas muestra propiedades de Apache Spark y Hadoop que se pueden configurar al implementar un clúster de macrodatos de SQL Server.
En las siguientes secciones se enumeran las propiedades que no puede modificar en un clúster:
- Configuraciones de
spark
no admitidas - Configuraciones de
hdfs
no admitidas - Configuraciones de
gateway
no admitidas
Configuraciones mediante el perfil de clúster
En el perfil de clúster hay recursos y servicios. En tiempo de implementación, se pueden especificar configuraciones de una de estas dos maneras:
En primer lugar, en el nivel de recurso:
Los ejemplos siguientes son los archivos de revisión para el 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.
El siguiente es un ejemplo del archivo de revisión para el perfil para establecer el tamaño de bloque de 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 de nivel de servicio. Un recurso se puede asignar a varios servicios.
Habilitación de Spark en el bloque de almacenamiento
Además de las configuraciones de Apache admitidas, también se ofrece la posibilidad de configurar si los trabajos de Spark se pueden ejecutar o no en el grupo de almacenamiento. Este valor booleano, includeSpark
, se encuentra en el archivo de configuración bdc.json
, en spec.resources.storage-0.spec.settings.spark
.
Una definición de grupo de almacenamiento de ejemplo en bdc.json puede tener el siguiente 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 subcategorí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": "*"
}
}