python计算结果传给spark_Spark入门:流计算简介(Python版)
數據總體上可以分為靜態數據和流數據。對靜態數據和流數據的處理,對應著兩種截然不同的計算模式:批量計算和實時計算。批量計算以“靜態數據”為對象,可以在很充裕的時間內對海量數據進行批量處理,計算得到有價值的信息。Hadoop就是典型的批處理模型,由HDFS和HBase存放大量的靜態數據,由MapReduce負責對海量數據執行批量計算。流數據必須采用實時計算,實時計算最重要的一個需求是能夠實時得到計算結果,一般要求響應時間為秒級。當只需要處理少量數據時,實時計算并不是問題;但是,在大數據時代,不僅數據格式復雜、來源眾多,而且數據量巨大,這就對實時計算提出了很大的挑戰。因此,針對流數據的實時計算——流計算,應運而生。
總的來說,流計算秉承一個基本理念,即數據的價值隨著時間的流逝而降低。因此,當事件出現時就應該立即進行處理,而不是緩存起來進行批量處理。為了及時處理流數據,就需要一個低延遲、可擴展、高可靠的處理引擎。對于一個流計算系統來說,它應達到如下需求。
* ? 高性能。處理大數據的基本要求,如每秒處理幾十萬條數據。
* ? 海量式。支持TB級甚至是PB級的數據規模。
* ? 實時性。必須保證一個較低的延遲時間,達到秒級別,甚至是毫秒級別。
* ? 分布式。支持大數據的基本架構,必須能夠平滑擴展。
* ? 易用性。能夠快速進行開發和部署。
* ? 可靠性。能可靠地處理流數據。
圖 流計算示意圖
目前,市場上有很多流計算框架,比如Twitter Storm和Yahoo! S4等。Twitter Storm是免費、開源的分布式實時計算系統,可簡單、高效、可靠地處理大量的流數據;Yahoo! S4開源流計算平臺,是通用的、分布式的、可擴展的、分區容錯的、可插拔的流式系統。
流計算處理過程包括數據實時采集、數據實時計算和實時查詢服務。
* 數據實時采集:數據實時采集階段通常采集多個數據源的海量數據,需要保證實時性、低延遲與穩定可靠。以日志數據為例,由于分布式集群的廣泛應用,數據分散存儲在不同的機器上,因此需要實時匯總來自不同機器上的日志數據。目前有許多互聯網公司發布的開源分布式日志采集系統均可滿足每秒數百MB的數據采集和傳輸需求,如Facebook的Scribe、LinkedIn的Kafka、淘寶的TimeTunnel,以及基于Hadoop的Chukwa和Flume等。
數據實時計算:流處理系統接收數據采集系統不斷發來的實時數據,實時地進行分析計算,并反饋實時結果。
實時查詢服務:流計算的第三個階段是實時查詢服務,經由流計算框架得出的結果可供用戶進行實時查詢、展示或儲存。
圖 流計算的數據處理流程
總結
以上是生活随笔為你收集整理的python计算结果传给spark_Spark入门:流计算简介(Python版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse配置python开发环境_
- 下一篇: websocket python爬虫_p