在巨量資料叢集中設定 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 類別。

支援的設定會列出您可以在部署 SQL Server 巨量資料叢集時設定的 Apache Spark 與 Hadoop 屬性。

下列各節列出您在叢集中無法修改的屬性:

透過叢集設定檔進行設定

在叢集設定檔中有資源和服務。 在部署階段,我們可以使用下列兩種方式之一來指定組態:

  • 第一種,在資源層級:

    下列範例是設定檔的修補檔案:

    { 
           "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 作業是否可在存放集區中執行的功能。 includeSpark 這個布林值位於 spec.resources.storage-0.spec.settings.sparkbdc.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": "*" 
     } 
} 

下一步