![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yayFWblRWYyRXLvd2bs1yayFGcz9CXzV2Zh1Wavw1Zy9mLlh2YhBXYusmchB3cvw1LcpDc0RHaiojIsJye.png)
本文試圖實作的需求場景為:以學習spark知識點為目的,編寫scala利用spark解析800m的tomcat日志檔案,列印一段時間内error級别記錄的前10行,統計每分鐘的日志記錄數,并将統計結果存入mysql資料庫中。之前曾用java寫過一次同樣的處理邏輯,但在學習了scala之後,真的感覺在計算方面scala要比java友善的多。沒有學習scala語言的同學速度速度了啊……
将日志檔案寫入hdfs中,相對路徑path為“nova.log”
注意java堆棧異常日志的處理
将解析後的異常日志全部存到sparksql中或hive資料倉庫中
通過編寫sql查詢一段時間内error級别記錄的前10行
統計每分鐘的日志記錄數,并将統計結果存入mysql資料庫中,便于上層應用直接使用計算結果
解析前:
解析後:
loggerapp.scala:
logger.scala:
loggermysqlapp.scala: