Spark学习之概念了解
Spark簡介:
Spark是一個快速且通用的集群計算模型:
1、Spark是快速的:
快速是指處理幾T到幾批數據量的時候,他的處理時間是幾秒鐘或幾分鐘,相對于hadoop的幾分鐘到幾小時是非??焖俚?#xff0c;
通用是指Spark的應用場景比較多
Spark擴展了MapReduce的計算模型
Spark是基于內存計算的
當我們在處理一個大批量數據的時候,難免呢會產生一些中間的數據結果,怎么處理呢
第一種:放在硬盤中,硬盤會帶來額外的寫入寫出的消耗
第二種:直接存放到內存中,放到內存中肯定比放到硬盤中要快一些。所以Spark的速度是很快的
舉例(瑞士軍刀,大刀,小刀等等)
Spark特點
2、Spark是通用的:
Spark容納了其他的分布式系統擁有的功能,批處理(hadoop),迭代式處理(機器學習系統),交互式查詢(hive查詢)和流處理(storm)
當我們搭建一個Spark集群時,就相當于搭建了這么多的功能
優點:大大的降低了集群的維護成本,因為在生產環境中,集群的維護是相當耗時
Spark是高度開放的 :
提供了python java Scala sql的API,
與其他的大數據工具整合的很好,包括Hadoop,kafka等
Spark組件
spark core:
包括spark基本功能,包括任務調度,內存管理,容錯機制
內部定義了RDDs(彈性分布式數據集),
提供多個APIs來創建和操作這些RDDs
應用場景,為其他組件提供底層服務
spark sql:
spark處理結構化數據的庫,類似Hive SQL,MySql,
應用場景,主要為企業提供報表統計
spark streaming:
實時數據流處理組件,類似Storm,提供API操作實時流數據,
應用場景,企業中用來從Kafka中接收數據做實時統計
Mlib:
包含通用機器學習功能的包,包括聚類,回歸,模型評估和數據導入。同時支持集群平臺上的橫向擴展
之前做機器學習都是Python比較多一點,Python的最大缺點是在單機上的,處理的數據量是有限的
而Mlib呢,是集群的,他的應用場景就是機器學習
Graphx:
處理圖的庫(例如社交網絡的圖),并進行圖的并行計算
像spark steaming,spark sql一樣,他也繼承了RDD API
他提供了各種圖的操作,和常用的圖的算法,例如PangeRank算法
應用場景:就是圖計算
Cluster Manager:
spark自帶的集群管理
Spark緊密集成的優點:
spark底層優化,基于spark底層的組件也得到相應的優化,
緊密集成節省了組件的部署,測試時間
向spark增加新的組件時,其他組件,可立刻享用新組件的功能
Hadoop&Spark比較
Hadoop應用場景:
離線處理,時效性要求不高的場景:Hadoop中間數據落到硬盤上,導致Hadoop處理大數據時,時效性不高,時間在幾分鐘到幾小時不等,但數據可以存儲。
Spark應用場景:
時效性要求高的場景和機器學習:Spark基于內存,中間數據多在內存中,數據處理塊,但Spark不具備hdfs存儲功能,需借助hdfs
Doug Cutting 的觀點:
spark這是個生態系統,每個組件都有其作用,各姍其職即可,
Spark不具有HDFS的存儲能力,要借助HDFS等持久數據
大數據將會孕育出更多的新技術
?
轉載于:https://www.cnblogs.com/longronglang/p/8453202.html
總結
以上是生活随笔為你收集整理的Spark学习之概念了解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SFrame中的apple函数
- 下一篇: 在Servlet使用getServlet