Настройка Apache Spark и Apache Hadoop в кластерах больших данных

Important

Кластеры больших данных Microsoft SQL Server 2019 прекращены. Поддержка кластеров больших данных SQL Server 2019 закончилась с 28 февраля 2025 г. Дополнительные сведения см. в записи блога объявлений и параметрах больших данных на платформе Microsoft SQL Server.

Чтобы настроить Apache Spark и Apache Hadoop в кластерах больших данных, необходимо изменить профиль кластера во время развертывания.

Кластер больших данных имеет четыре категории конфигурации:

  • sql
  • hdfs
  • spark
  • gateway

sql, hdfs, sparksql — это службы. Каждая служба сопоставляется с той же именованной категорией конфигурации. Все конфигурации шлюза переходят к категории gateway.

Например, все конфигурации в службе hdfs относятся к категории hdfs. Обратите внимание, что все конфигурации Hadoop (core-site), HDFS и Zookeeper относятся к категории hdfs; все конфигурации Livy, Spark, Yarn, Hive, Metastore относятся к категории spark.

Поддерживаемые конфигурации перечисляют свойства Apache Spark и Hadoop, которые можно настроить при развертывании кластера больших данных SQL Server.

В следующих разделах перечислены свойства, которые нельзя изменить в кластере:

Конфигурации с помощью профиля кластера

В профиле кластера есть ресурсы и службы. Во время развертывания можно указать конфигурации одним из двух способов:

  • Во-первых, на уровне ресурса:

    Ниже приведены примеры файлов исправлений для профиля:

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

    Or:

    { 
           "op": "add", 
           "path": "spec.resources.gateway.spec.settings", 
           "value": { 
             "gateway": { 
               "gateway-site.gateway.httpclient.socketTimeout": "95s" 
             } 
           } 
    } 
    
  • Во-вторых, на уровне обслуживания. Назначьте несколько ресурсов службе и укажите конфигурации для службы.

Ниже приведен пример файла исправлений для профиля для задания размера блока HDFS:

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

Служба hdfs определяется следующим образом:

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

Note

Конфигурации уровня ресурсов переопределяют конфигурации уровня обслуживания. Один ресурс можно назначить нескольким службам.

Включение Spark в пуле носителей

Помимо поддерживаемых конфигураций Apache, мы также предлагаем возможность настроить, могут ли задания Spark выполняться в пуле носителей. Это логическое значение includeSpark, находится в файле конфигурации bdc.json по адресу spec.resources.storage-0.spec.settings.spark.

Пример определения пула носителей в bdc.json может выглядеть следующим образом:

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

Limitations

Конфигурации можно указать только на уровне категории. Чтобы указать несколько конфигураций с одной подкатегорией, мы не можем извлечь общий префикс в профиле кластера.

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

Next steps