[Kafka与Spark集成系列一] Spark入门
歡迎支持筆者新作:《深入理解Kafka:核心設計與實踐原理》和《RabbitMQ實戰指南》,同時歡迎關注筆者的微信公眾號:朱小廝的博客。
歡迎跳轉到本文的原文鏈接:https://honeypps.com/mq/kafka-and-spark-integration-1-spark-introduction/
Spark是一個用來是實現快速而通用的集群計算的平臺。Spark是UC Berkeley AMP Lab(加州大學伯克利分銷的AMP實驗室)所開源的類MapReduce的通用并行框架, 現在已經是Apache中的一個頂級項目。Spark使用Scala語言開發,支持Scala、Java、Python、R語言相關的API,運行于JVM之上。Spark基于內存計算,提高了在大數據環境下數據處理的實時性,同時保證了高容錯性和高可伸縮性。Spark適用于各種各樣原先需要多種不同的分布式平臺的場景,包括批處理、迭代計算、交互式查詢、流處理等。
如下圖所示,Spark生態圈即BDAS(伯克利數據分析棧)所包含的組件有Spark Core、Spark Streaming、Spark SQL、MLlib和GraphX,它們都是由AMP實驗室提供,能夠無縫地繼承,并提供一站式解決平臺。
Spark Core實現了Spark的基本功能,包含任務調度、內存管理、錯誤恢復以及與存儲系統交互等模塊。Spark Streaming屬于Spark Core API的擴展,支持實時數據流的可擴展、高吞吐、容錯的流處理。Spark SQL是Spark的一個結構化數據處理模塊,提供了DataFrame/Dataset的編程抽象,可以看作是一個分布式查詢引擎。從Spark2.0開始又引入了Structured Streaming,它是建立在Spark SQL之上的可擴展和高容錯的流處理引擎。MLlib是Spark提供的機器學習功能的程序庫,它提供了很多種機器學習算法,包括分類、回歸、聚類、協同過濾等,還提供了模型評估、數據導入等額外的支持功能。GraphX是用來操作圖的程序庫,可以進行并行的圖計算。
Spark具有很強的適應性,能夠讀取HDFS、Cassandra、HBase等為持久層讀寫原生數據,資源管理采用Mesos、YARN、Kubernetes等集群資源管理模式,或者Spark自帶的獨立運行模式以及本地運行模式。
Spark具有一個龐大的生態圈,付諸于生產時還需要考慮參數調配、容錯處理、監控、性能優化、存儲、調度、部署等多個環節,涉及到具體的方方面面,僅以一個小系列的內容是無法窮盡的。本系列的主旨也并非簡單的講解Spark,而是要講解Kafka與Spark之間的集成細節。本系列的文章會以盡量少的篇幅讓讀者對Spark能夠有一個初步的了解,并且會以一個合適的篇幅來講解Kafka與Spark Streaming的集成以及Kafka與Structured Streaming的集成。
歡迎跳轉到本文的原文鏈接:https://honeypps.com/mq/kafka-and-spark-integration-1-spark-introduction/
歡迎支持筆者新作:《深入理解Kafka:核心設計與實踐原理》和《RabbitMQ實戰指南》,同時歡迎關注筆者的微信公眾號:朱小廝的博客。
總結
以上是生活随笔為你收集整理的[Kafka与Spark集成系列一] Spark入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kafka分区分配策略(4)——分配的实
- 下一篇: [Kafka与Spark集成系列二]