Monitoring Apache Spark

在您安裝 Instana 代理程式之後,會自動部署並安裝 Apache Spark 感應器。

支援的版本

目前支援的 Spark 版本是從 1.4.x 到 2.4.x。

感應器 (資料收集)

Spark 應用程式

Spark 應用程式的兩個主要元件是驅動程式程序和執行程式程序。 執行程式程序只包含與作業執行相關的資料。 驅動程式是主要處理程序,負責協調 Spark 應用程式的執行。 因此,它包含 Spark 應用程式的效能及執行的所有相關資料,也包含 Spark 應用程式的每一個執行程式的相關資料。

Instana 會從驅動程式 JVM 收集所有 Spark 應用程式資料 (包括執行程式資料)。 若要監視 Spark 應用程式, Instana 代理程式需要安裝在 Spark 驅動程式 JVM 執行所在的主機上。

請注意,有兩種方式可將 Spark 應用程式提交至叢集管理程式。 視此選項的設定方式而定,可以變更驅動程式 JVM 執行的位置。

  • 部署模式叢集: 當您使用選項 --deploy-mode cluster(例如 ./spark-submit --class org.apache.spark.examples.JavaWordCount --master yarn --deploy-mode cluster /path/to/app.jar) 提交時, Spark 驅動程式 JVM 正在叢集管理程式的其中一個工作者節點上執行。 如果 Instana 代理程式安裝在工作者節點上,則會自動探索 Spark 應用程式 (驅動程式)
  • 部署模式用戶端: 當您使用選項 --deploy-mode client或不使用選項 --deploy-mode (預設值為 client) 提交時,例如 ./spark-submit --class org.apache.spark.examples.JavaWordCount --master yarn --deploy-mode client /path/to/app.jar./spark-submit --class org.apache.spark.examples.JavaWordCount --master yarn /path/to/app.jar, Spark 驅動程式 JVM 在執行此指令的主機上執行。 若要讓 Instana 能夠監視此 Spark 應用程式,必須在執行 Spark 提交的主機上安裝 Instana 代理程式。

視 Spark 應用程式 Instana 監視器的類型而定,會收集不同的資料:

批次應用程式

  • 工作
  • 階段
  • 最長完成階段
  • 執行程式

多媒體串流應用程式

  • 批次處理
  • 排程延遲
  • 延遲總計
  • 處理時間
  • 輸出作業
  • 輸入記錄
  • 接收端
  • 執行程式

Spark Application on AWS EMR

Instana 會透過 Spark 驅動程式來偵測及監視 Spark 應用程式,因此若要取得 Spark 應用程式的可見性,請在 EMR 叢集中的 EC2 實例上安裝代理程式。 當您從主要節點部署 Spark 應用程式並使用部署模式 client時,只要在 EMR 叢集的主要節點上安裝代理程式即可。

如果您不想將 Spark 應用程式 JAR 複製到主要節點,並且想要從其他位置 (例如從 S3 儲存區) 以 cluster 模式部署 Spark 應用程式,則必須在 EMR 叢集中的所有節點上安裝代理程式。 這是因為驅動程式已排定在工作者節點上。

最佳方法是建立 EMR 叢集,並在進階配置中選取已安裝 Instana 代理程式的自訂 AMI 映像檔。 如需如何使用自訂 AMI 來啟動 EMR 叢集的相關資訊,請參閱 AWS 說明文件。 若要建置已安裝 Instana 代理程式的 AMI 映像檔,請參閱 AWS 說明文件。 當系統提示透過 SSH 進入 EC2 實例來安裝軟體時,請使用位於 Instana「 設定 」頁面中的單行程式,您可以從 Instana 使用者介面上的資訊看板按一下 設定 來開啟此頁面。 如需相關資訊,請參閱 這裡。 這樣您就可以深入瞭解所有 EMR 叢集節點,不論部署模式為何,都可以監視 Spark 應用程式,並深入瞭解 EMR 的所有基礎元件,例如 Hadoop YARN。 如果您只想測量 Hadoop YARN 度量,請參閱 文件

Spark 獨立式叢集管理程式

除了在 Mesos 或 YARN 叢集管理程式上執行之外, Spark 還提供簡式獨立式部署模式。 Spark 獨立式是叢集管理程式,由主節點和工作者節點組成。 Instana 透過叢集的主要節點來監視整個 Spark 獨立式叢集。 它會收集叢集中每一個工作者節點的叢集層面資料及資料。

追蹤配置

  • 主機
  • REST URI
  • 版本
  • 狀態

度量值

  • 存活的工作程式
  • 掛掉的工作程式
  • 已除役的工作程式
  • 不明狀態的工作程式
  • 已用的記憶體
  • 總記憶體
  • 已使用的核心
  • 核心總計
  • 每個工作者節點的資料和度量值
  • 最新的應用程式
  • 最新驅動程式