在大数据群集中配置 Apache Spark 和 Apache Hadoop

重要

Microsoft SQL Server 2019 大数据群集附加产品将停用。 对 SQL Server 2019 大数据群集的支持将于 2025 年 2 月 28 日结束。 具有软件保障的 SQL Server 2019 的所有现有用户都将在平台上获得完全支持,在此之前,该软件将继续通过 SQL Server 累积更新进行维护。 有关详细信息,请参阅公告博客文章Microsoft SQL Server 平台上的大数据选项

为了在大数据群集中配置 Apache Spark 和 Apache Hadoop,需要在部署时修改群集配置文件。

大数据群集具有四个配置类别:

  • sql
  • hdfs
  • spark
  • gateway

sqlhdfssparksql 均为服务。 上述每个服务都对应于名称相同的配置类别。 所有网关配置都将跳到类别 gateway

例如,服务 hdfs 中的所有配置都属于类别 hdfs。 请注意,所有 Hadoop(核心站点)、HDFS 和 Zookeeper 配置都属于 hdfs 类别;所有 Livy、Spark、Yarn、Hive 元存储配置都属于 spark 类别。

支持的配置列出了 Apache Spark 和 Hadoop 属性,你可以在部署 SQL Server 大数据群集时配置这些属性。

以下部分列出了无法在群集中修改的属性:

通过群集配置文件配置

群集配置文件中存在资源和服务。 部署时,我们可以通过以下两种方式之一来指定配置:

  • 第一,在资源级别:

    以下示例是配置文件的修补程序文件:

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

    或:

    { 
           "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" 
        } 
      } 
    } 
  } 
} 

注意

资源级别配置替代服务级别配置。 一个资源可以分配给多个服务。

在存储池中启用 Spark

除了支持的 Apache 配置之外,我们还提供了配置 Spark 作业是否可以在存储池中运行的功能。 此布尔值 includeSparkspec.resources.storage-0.spec.settings.spark 处的配置文件 bdc.json 中。

bdc.json 中的存储池定义示例可能如下所示:

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

限制

只能在类别级别指定配置。 若要指定具有相同子类别的多个配置,我们无法在群集配置文件中提取常用前缀。

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

后续步骤