# 設置正確的批容量
為了Spark Streaming應用程序能夠在集群中穩定運行,系統應該能夠以足夠的速度處理接收的數據(即處理速度應該大于或等于接收數據的速度)。這可以通過流的網絡UI觀察得到。批處理時間應該小于批間隔時間。
根據流計算的性質,批間隔時間可能顯著的影響數據處理速率,這個速率可以通過應用程序維持。可以考慮`WordCountNetwork`這個例子,對于一個特定的數據處理速率,系統可能可以每2秒打印一次單詞計數
(批間隔時間為2秒),但無法每500毫秒打印一次單詞計數。所以,為了在生產環境中維持期望的數據處理速率,就應該設置合適的批間隔時間(即批數據的容量)。
找出正確的批容量的一個好的辦法是用一個保守的批間隔時間(5-10,秒)和低數據速率來測試你的應用程序。為了驗證你的系統是否能滿足數據處理速率,你可以通過檢查端到端的延遲值來判斷(可以在
Spark驅動程序的log4j日志中查看"Total delay"或者利用StreamingListener接口)。如果延遲維持穩定,那么系統是穩定的。如果延遲持續增長,那么系統無法跟上數據處理速率,是不穩定的。
你能夠嘗試著增加數據處理速率或者減少批容量來作進一步的測試。注意,因為瞬間的數據處理速度增加導致延遲瞬間的增長可能是正常的,只要延遲能重新回到了低值(小于批容量)。
- Introduction
- 快速上手
- Spark Shell
- 獨立應用程序
- 開始翻滾吧!
- RDD編程基礎
- 基礎介紹
- 外部數據集
- RDD 操作
- 轉換Transformations
- map與flatMap解析
- 動作Actions
- RDD持久化
- RDD容錯機制
- 傳遞函數到 Spark
- 使用鍵值對
- RDD依賴關系與DAG
- 共享變量
- Spark Streaming
- 一個快速的例子
- 基本概念
- 關聯
- 初始化StreamingContext
- 離散流
- 輸入DStreams
- DStream中的轉換
- DStream的輸出操作
- 緩存或持久化
- Checkpointing
- 部署應用程序
- 監控應用程序
- 性能調優
- 減少批數據的執行時間
- 設置正確的批容量
- 內存調優
- 容錯語義
- Spark SQL
- 概述
- SparkSQLvsHiveSQL
- 數據源
- RDDs
- parquet文件
- JSON數據集
- Hive表
- 數據源例子
- join操作
- 聚合操作
- 性能調優
- 其他
- Spark SQL數據類型
- 其它SQL接口
- 編寫語言集成(Language-Integrated)的相關查詢
- GraphX編程指南
- 開始
- 屬性圖
- 圖操作符
- Pregel API
- 圖構造者
- 部署
- 頂點和邊RDDs
- 圖算法
- 例子
- 更多文檔
- 提交應用程序
- 獨立運行Spark
- 在yarn上運行Spark
- Spark配置
- RDD 持久化