System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于大數據處理與監控,涉及一種基于spark流式計算框架的監控方法、系統、設備及介質。
技術介紹
1、隨著大數據技術的快速發展,實時數據處理成為許多企業和組織的核心需求。spark作為一種強大的大數據處理框架,其流式計算模塊(包括spark?streaming和structured?streaming)因其高吞吐量和低延遲的特性,在實時數據處理領域得到了廣泛應用。然而在使用spark流式計算框架進行實時數據分析和處理時,如何有效監控流處理程序的運行狀態,確保數據的穩定、高效和實時處理,成為了一個亟待解決的技術難題。目前存在多種針對spark流式計算框架的監控方法,但每種方法均存在一定的局限性,難以滿足實際生產環境中對監控全面性、實時性和準確性的要求。
2、spark自帶的web?ui提供了圖形界面,用于查看流處理任務的運行狀態和性能指標。然而這種方法存在明顯的缺陷。首先web?ui中監控數據的保留時間較短,且一旦流處理程序重啟,之前的監控數據就會丟失,無法提供歷史數據分析的能力。其次webui生成的監控數據以javascript代碼形式嵌入html頁面中,無法通過spark?api接口直接獲取,這限制了監控數據的集成和自動化處理能力,難以接入現有的監控系統進行統一管理。
3、另一種監控手段是通過實現spark流式計算框架中的streaming?query?listener監聽器來捕獲流處理過程中的各類事件,進而實現監控。這雖然能夠獲取詳細的流處理事件信息,但實現復雜度高,需要編寫專門的插件并安裝
4、spark還提供了metrics?system,用于暴露監控指標數據。雖然metrics?system能夠以prometheus等監控系統兼容的格式暴露監控數據,但指標名稱中包含了流處理程序的id。由于流處理程序在重啟后id會發生變化,導致指標名稱也會隨之改變,在監控系統中難以將重啟前后的數據有效連接起來,限制了數據分析和趨勢預測的能力。
5、綜上所述,現有技術在監控spark流式計算框架時存在數據保留時間短、集成難度大、實現復雜、影響性能以及數據連續性差等問題。因此,開發一種更加高效、全面、易用的監控機制,以解決spark流式計算框架在實時數據處理中的監控難題,具有重要的實際意義和應用價值。
技術實現思路
1、本專利技術的目的在于解決現有技術中監控spark流式計算框架時存在數據保留時間短、集成難度大、實現復雜、影響性能以及數據連續性差的問題,提供一種基于spark流式計算框架的監控方法、系統、設備及介質。
2、為達到上述目的,本專利技術采用以下技術方案予以實現:
3、一種基于spark流式計算框架的監控方法,包括以下步驟:
4、配置spark流處理程序的名稱,通過spark參數設置待監控的流處理程序的名稱;
5、查詢spark流處理程序的id,利用hadoop?yarn提供的api接口,查詢當前運行狀態的應用列表,通過配置的流處理程序名稱查找對應的spark流處理程序的id;若無法獲取id,則標記該程序已退出;若能獲取,則標記為正常,并繼續執行后續監控步驟;
6、獲取spark?web?ui的統計數據,根據spark流處理程序的id或預設的web?ui路徑,訪問對應的web?ui頁面,下載或讀取展示流處理程序統計信息的html文件;
7、提取html文件中的javascript統計代碼片段,逐行讀取html文件內容,提取并保存包含時間序列統計數據的javascript代碼片段;
8、執行javascript代碼片段并提取數據,執行提取的javascript代碼片段,解析并提取出關注指標的數據;
9、組裝監控數據為prometheus格式,將提取的數據,結合spark流處理程序的id、名稱及監控指標類,組裝成prometheus兼容的監控數據格式;
10、保存監控數據到prometheus,將組裝的監控數據推送到prometheus監控系統中,進行實時監控、告警和數據分析。
11、所述查詢spark流處理程序的id,具體為:
12、獲取yarn?resourcemanager的地址,通過yarn的web?ui頁面或集群配置文件中的配置項,確定yarn?resourcemanager的網絡地址和端口號;
13、使用yarn?rest?api查詢應用程序列表,構造并發送一個http?get請求到resourcemanager的rest?api端點,獲取yarn集群中當前所有應用程序的列表;
14、解析響應數據,接收http?get請求的響應,包含多個應用程序的詳細信息,提取每個應用程序的id、名稱、類型和狀態;
15、查找spark流處理程序,在得到的多個應用程序中,遍歷查找與指定spark流處理程序名稱相匹配的應用程序記錄;
16、獲取應用程序id并判斷狀態,如果找到了匹配的應用程序,則提取其id,并判斷其狀態;如果狀態表示程序正在運行,則標記程序狀態為正常;如果狀態表示程序已退出或出錯,則根據標記程序狀態為退出或錯誤;如果未找到匹配的應用程序記錄,則標記程序狀態為退出,表示程序已退出。
17、所述獲取spark?web?ui的統計數據,具體為:
18、構造訪問url,使用spark?web?ui的訪問路徑和spark流處理程序的id,構造出用于訪問統計信息的web?ui頁面的url;
19、訪問web?ui頁面并獲取html文件,使用http客戶端發送請求到url;
20、接收http響應,響應包含了展示spark流處理程序統計信息的html頁面內容;
21、下載或讀取展示流處理程序統計信息的html文件。
22、所述提取html文件中的javascript統計代碼片段,具體為:
23、逐行讀取html文件內容;
24、開始保存標志檢測,對于讀取的每一行內容,檢查是否包含<script>標簽,如果檢測到<script>標簽,則將接下來的行視為javascript代碼的開始,并準備開始保存內容;
25、保存javascript代碼片段:從檢測到<script>標簽的下一行開始,將每一行的內容保存到一個字符串或緩沖區中,直到遇到</script>標簽為止;
26、結束保存并處理,當遇到</script>標簽時,停止保存操作,并將已保存的字符串或緩沖區內容視為完整的javascript代碼片段本文檔來自技高網...
【技術保護點】
1.一種基于Spark流式計算框架的監控方法,其特征在于,包括以下步驟:
2.如權利要求1所述的一種基于Spark流式計算框架的監控方法,其特征在于,所述查詢Spark流處理程序的ID,具體為:
3.如權利要求1所述的一種基于Spark流式計算框架的監控方法,其特征在于,所述獲取Spark?Web?UI的統計數據,具體為:
4.如權利要求1所述的一種基于Spark流式計算框架的監控方法,其特征在于,所述提取HTML文件中的Javascript統計代碼片段,具體為:
5.如權利要求1所述的一種基于Spark流式計算框架的監控方法,其特征在于,所述組裝監控數據為Prometheus格式,具體為:
6.一種基于Spark流式計算框架的監控系統,其特征在于,包括以下模塊:
7.如權利要求6所述的一種基于Spark流式計算框架的監控系統,其特征在于,所述系統還包括監控策略管理模塊,允許用戶定義和管理不同的監控策略,包括監控頻率、數據采集方式、告警觸發條件,針對不同類型的Spark流處理程序或不同的監控需求進行定制。
...【技術特征摘要】
1.一種基于spark流式計算框架的監控方法,其特征在于,包括以下步驟:
2.如權利要求1所述的一種基于spark流式計算框架的監控方法,其特征在于,所述查詢spark流處理程序的id,具體為:
3.如權利要求1所述的一種基于spark流式計算框架的監控方法,其特征在于,所述獲取spark?web?ui的統計數據,具體為:
4.如權利要求1所述的一種基于spark流式計算框架的監控方法,其特征在于,所述提取html文件中的javascript統計代碼片段,具體為:
5.如權利要求1所述的一種基于spark流式計算框架的監控方法,其特征在于,所述組裝監控數據為prometheus格式,具體為:
6.一種基于spark流式計算框架的監控系統,其特征在于,包括以下模塊:
7.如權利要求6所述的一種基于s...
【專利技術屬性】
技術研發人員:王志敏,楊晨,馮彥明,周鋒,
申請(專利權)人:河南中原消費金融股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。