Spark學習筆記1(初始spark

Spark學習筆記一java

 

初步認識sparkpython

 

1.什麼是spark?算法

spark是一個基於內存的,分佈式的,大數據的計算框架,能夠解決各類大數據領域的計算問題,提供了一站式的服務sql

Spark2009年誕生於伯克利大學的AMPLab實驗室編程

2010年正式開源了Spark項目架構

2013年Spark成爲Apache下的項目框架

2014年飛速發展,成爲Apache的頂級項目機器學習

2015年在國內興起,代替mr,hive,storm等編程語言

 

2.SparkCore :spark是用來取代Hadoop的?分佈式

這種說法是不對的,spark因爲只能作計算,因此取代掉MapReduce是沒有問題的,可是基於spark沒法存儲數據,因此其數據的存儲仍是要依賴於hdfs,資源調度能夠依賴於yarn,亦能夠依賴於其餘。

3.spark的功能?

①sparkCore 離線計算 

②sparkSQL 交互式查詢

③sparkStreaming 實時的流式計算

④sparkGraphx 圖形計算

⑤spark mllib 機器學習 人工智能 其核心是算法

4.spark的特色及解釋?

spark的特色有:

①一站式:就是說spark能夠用一個技術堆棧就能夠解決大數據領域的全部的計算問題

②基於內存:這個特色也是spark的運行速度比Mr的速度快的緣由,由於spark是基於內存的,內存的

讀寫的速度要大大的超過磁盤,可是,有一些操做也是沒法避免的,spark也有shuffle,因此說最後的

結果也要落地,落地就i須要走磁盤。另外一方面的緣由就是spark是迭代式的計算框架,內部又有不少的

優化手段,DAG,切分STAGE,這一套機制能夠最大限度的優化計算的性能

5.sparkSQL和hive的關係?

hive 首先來講是一個數據倉庫,裏面放了不少的數據,其次hive還能夠經過sql作一些數據的離線批處理,

運行的是MapReduce。

spark SQL 確定不能夠用來作數據倉庫,但spark SQL也是經過寫sql的方式,作數據的離線計算,底層用的

是RDD。能夠直接操做hive

 

6.sparkStreaming和strom的關係?

strom有不少的有點,比較老了,若是說是純粹的實時(所有都是實時的業務),如今有一個更加優秀的解決方案

:flink,在一些絕大部分的場景下,sparkStreaming是能夠取代掉strom的

實時性,容錯都比sparkstreamming優秀

和sparkstreaming相比之下不足的地方:

吞吐量不如sparkstreaming,後者能夠方便的和spark SQL ,sparkCore,sparkMLlib無縫的結合

7.spark開發語言的選擇?

現現在關於spark的主流語言是scala,若是說是單純的大數據項目,scala較其餘語言相比更爲合適一些,可是也有不足的地方:會scala 的人太少,第二點就是因爲Scala和第三方的架構整合起來困難。

Java:現在最最主流的編程語言,整合第三方架構的時候也比較簡單,若是用java來寫spark的話,更爲適合寫一些比較複雜的大數據項目。

二者的相同之處在於:java能夠把代碼實現,scala也能夠把代碼實現

如今比較火的編程語言python,也能夠用來開發spark,不過略有不一樣於其餘兩種語言的是,python更傾向於機器學習,即(sparkMLlib),由於python的庫特別多,而機器學習的算法庫也有不少,因此python更多的時間用於機器學習。

轉載本文請和本文做者聯繫,本文來自博客園一襲白衣一

相關文章
相關標籤/搜索