Partilhar via


Configurar Apache Spark e Apache Hadoop em Clusters de Big Data

Importante

O complemento Clusters de Big Data do Microsoft SQL Server 2019 será desativado. O suporte para Clusters de Big Data do SQL Server 2019 será encerrado em 28 de fevereiro de 2025. Todos os usuários existentes do SQL Server 2019 com Software Assurance terão suporte total na plataforma e o software continuará a ser mantido por meio de atualizações cumulativas do SQL Server até esse momento. Para obter mais informações, confira a postagem no blog de anúncio e as opções de Big Data na plataforma do Microsoft SQL Server.

Para configurar o Apache Spark e o Apache Hadoop em Clusters de Big Data, você precisa modificar o perfil de cluster no momento da implantação.

Um cluster de Big Data tem quatro categorias de configuração:

  • sql
  • hdfs
  • spark
  • gateway

sql, hdfs, spark, sql são serviços. Cada serviço é mapeado para a mesma categoria de configuração nomeada. Todas as configurações de gateway vão para a categoria gateway.

Por exemplo, todas as configurações no hdfs de serviço pertencem à categoria hdfs. Observe que todas as configurações do Hadoop (core-site), HDFS e ZooKeeper pertencem à categoria hdfs. Todas as configurações de metastore do Livy, Spark, Yarn, Hive pertencem à categoria spark.

As configurações com suporte listam as propriedades do Apache Spark e do Hadoop que você pode definir ao implantar um Cluster de Big Data do SQL Server.

As seções a seguir listam as propriedades que você não pode modificar em um cluster:

Configurações por meio do perfil do cluster

No perfil de cluster, há recursos e serviços. No momento da implantação, podemos especificar as configurações de uma das duas maneiras:

  • Em primeiro lugar, no nível de recurso:

    Os seguintes exemplos são os arquivos de patch para o perfil:

    { 
           "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" 
             } 
           } 
    } 
    
  • Em segundo lugar, no nível de serviço. Atribua vários recursos a um serviço e especifique as configurações para o serviço.

Confira abaixo um exemplo do arquivo de patch do perfil para definir o tamanho do bloco do HDFS:

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

O hdfs de serviço é definido como:

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

Observação

Configurações de nível de recurso substituem configurações de nível de serviço. Um recurso pode ser atribuído a vários serviços.

Habilitar o Spark no pool de armazenamento

Além das configurações compatíveis do Apache, também oferecemos a capacidade de configurar se os trabalhos do Spark podem ser executados no pool de armazenamento. Esse valor booliano, includeSpark, está no arquivo de configuração bdc.json em spec.resources.storage-0.spec.settings.spark.

Um exemplo de definição de pool de armazenamento no bdc.json pode ser assim:

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

Limitações

As configurações só podem ser especificadas no nível de categoria. Para especificar várias configurações com a mesma subcategoria, não podemos extrair o prefixo comum no perfil de cluster.

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

Próximas etapas