在 HDInsight 上計算 ML 服務的內容選項

重要

此內容已淘汰,未來將不會更新。 Azure HDInsight 3.6 ML 服務 (Machine Learning Server) 叢集類型已于2020年12月31日淘汰

Azure HDInsight 上的 ML 服務控制如何透過設定計算內容來執行呼叫。 此文章概述可用於指定是否以及如何跨邊緣節點核心或 HDInsight 叢集將執行作業平行化的選項。

叢集的邊緣節點提供便利的地方,以便連線到叢集以及執行 R 指令碼。 有了邊緣節點之後,即可選擇跨邊緣節點伺服器的核心,執行 RevoScaleR 的平行分散式函式。 您也可以使用 RevoScaleR 的 Hadoop Map 減少或 Apache Spark 計算內容,在叢集的節點上執行它們。

Azure HDInsight 上的 ML 服務

Azure HDInsight 上的 ML 服務可提供最新的 R 型分析功能。 它可以使用儲存在的 azure blob 儲存體帳戶、Data Lake Store 或本機 Linux 檔案系統中的 Apache Hadoop HDFS 容器中的資料。 由於 ML 服務是以開放原始碼 r 為基礎,因此您建立的 r 型應用程式可以套用任何 8000 + 開放原始碼 r 套件。 它們也可以使用RevoScaleR中的常式,也就是 ML Services 隨附的 Microsoft big data analytics 套件。

邊緣節點的計算內容

一般而言,在邊緣節點上 ML 服務叢集中執行的 R 指令碼會在該節點上的 R 解譯器內執行。 但呼叫 RevoScaleR 函式的步驟則屬例外狀況。 RevoScaleR 呼叫會在計算環境中執行,該環境是由您設定 RevoScaleR 計算內容的方式所決定。 當您從邊緣節點執行 R 指令碼時,可能的計算內容值為:

  • 本機循序 (local)
  • 本機平行 (localpar)
  • Map Reduce
  • Spark

local 和 localpar 選項的差別只在於執行 rxExec 呼叫的方式。 它們都會在所有可用的核心之間,以平行方式執行其他的 rx 函式呼叫,除非已指定,否則皆使用 RevoScaleR numCoresToUse 選項,例如 。 平行執行選項提供最佳效能。

下表摘要說明各種不同的計算內容選項來設定呼叫的執行方式:

計算內容 設定方式 執行內容
本機循序 rxSetComputeContext('local') 跨邊緣節點伺服器的核心平行執行,只有 rxExec 為循序執行
本機平行 rxSetComputeContext('localpar') 跨邊緣節點伺服器的核心平行執行
Spark RxSpark() 跨 HDI 叢集的節點透過 Spark 平行處理分散式執行
Map Reduce RxHadoopMR() 跨 HDI 叢集的節點透過 Map Reduce 平行處理分散式執行

用於決定計算內容的指導方針

在這三個提供平行執行的選項中,選擇哪個選項取決於資料的分析工作本質、大小與位置。 沒有簡單的公式可以告訴您,要使用的計算內容。 不過,有一些指導原則可協助您做出正確的選擇,或至少幫助您縮小選擇範圍,然後再執行效能評定。 這些指導原則包括︰

  • 本機 Linux 檔案系統比 HDFS 還快。
  • 如果資料位於本機,且是 XDF 格式,則重複分析會比較快。
  • 建議您從文字資料來源串流少量資料。 如果資料量比較大,請在分析之前先將它轉換為 XDF。
  • 對於非常大量的資料,將資料複製或串流至邊緣節點以進行分析的額外負荷會變得難以管理。
  • ApacheSpark 在 Hadoop 中的分析速度較 Map Reduce 快。

在給定這些原則的情況下,以下各節提供一些有關選取計算內容的一般準則。

本機

  • 如果要分析的資料量很小,而且不需要重複分析,請使用 本機localpar,直接將它串流到分析常式。
  • 如果要分析的資料量很小或是中等大小,而且需要重複分析,請將它複製到本機檔案系統、匯入至 XDF,然後透過 local 或 localpar 分析。

Apache Spark

  • 如果要分析的資料量很大,請使用 RxHiveDataRxParquetData 將它匯入到 Spark DataFrame,或匯入到 HDFS 中的 XDF (除非儲存體會是問題),然後使用 Spark 計算內容分析。

Apache Hadoop Map Reduce

  • 只有當您在 Spark 計算內容中遇到無法克服問題時,才使用地圖減少計算內容,因為它的速度通常較慢。

rxSetComputeContext 的內嵌說明

如需 RevoScaleR 計算內容的詳細資訊和範例,請參閱 R 中有關 rxSetComputeContext 方法的內嵌說明,例如︰

> ?rxSetComputeContext

您也可以參考 Machine Learning Server 文件中的分散式計算概觀

下一步

在此文章中,您可以了解可用於指定是否以及如何跨邊緣節點核心或 HDInsight 叢集將執行作業平行化的選項。 若要深入了解如何使用 HDInsight 叢集上的 ML 服務,請參閱下列主題: