spark core:實現了 spark 的基本功能,包含任務排程、記憶體管理、錯誤恢復、與儲存
系統互動等模組。spark core 中還包含了對彈性分布式資料集(resilient distributed
dataset,簡稱 rdd)的 api 定義。
spark sql:是 spark 用來操作結構化資料的程式包。通過 spark sql,我們可以使用
sql 或者 apache hive 版本的 sql 方言(hql)來查詢資料。spark sql 支援多種資料來源,
比如 hive 表、parquet 以及 json 等。
spark streaming:是 spark 提供的對實時資料進行流式計算的元件。提供了用來運算元
據流的 api,並且與 spark core 中的 rdd api 高度對應。
spark mllib:提供常見的機器學習(ml)功能的程式庫。包括分類、回歸、聚類、協同
過濾等,還提供了模型評估、資料 匯入等額外的支援功能。
集群管理器:spark 設計為可以高效地在乙個計算節點到數千個計算節點之間伸縮計
算。為了實現這樣的要求,同時獲得最大靈活性,spark 支援在各種集群管理器(cluster
manager)上執行,包括 hadoop yarn、apache mesos,以及 spark 自帶的乙個簡易排程
器,叫作獨立排程器。
spark 得到了眾多大資料公司的支援,這些公司包括 hortonworks、ibm、intel、
模,是當前已知的世界上最大的 spark 集群。
1.官網位址
2.文件檢視位址
2.3.2 安裝使用
1)上傳並解壓 spark 安裝包
[lxl@hadoop102 sorfware]$ tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -c /opt/module/[lxl@hadoop102 module]$2)官方求 pi 案例mv spark-2.1.1-bin-hadoop2.7 spark
[lxl@hadoop102 spark]$ bin/spark-submit \(1)基本語法--class org.apache.spark.examples.sparkpi \
--executor-memory 1g \
--total-executor-cores 2
\./examples/jars/spark-examples_2.11-2.1.1
.jar \
100
bin/spark-submit \3) 結果展示--class
--master \
--deploy-mode \
--conf =\
... # other options
\(2)引數說明:
--master 指定 master 的位址,預設為 local
--class: 你的應用的啟動類 (如 org.apache.spark.examples.sparkpi)
--deploy-mode: 是否發布你的驅動到 worker 節點(cluster) 或者作為乙個本地客戶端
(client) (default: client)*
--conf: 任意的 spark 配置屬性, 格式 key=value. 如果值包含空格,可以加引號
「key=value」
共享儲存系統, 如果是 file:
//--executor-memory 1g 指定每個 executor 可用記憶體為 1g
--total-executor-cores 2 指定每個 executor 使用的 cup 核數為 2 個
該演算法是利用蒙特·卡羅演算法求pi
4)準備檔案
[lxl@hadoop102 spark]$ mkdir input在 input 下建立 3 個檔案 1.txt 和 2.txt,並輸入以下內容
hello atguigu5)啟動 spark-shellhello spark
[lxl@hadoop102 spark]$ bin/spark-shell開啟另乙個 crd 視窗scala>
[lxl@hadoop102 ~]$ jps可登入 hadoop102:4040 檢視程式執行:2421
worker
2551
sparksubmit
2632
coarsegrainedexecutorbackend
2333
master
2703 jps
6)執行 wordcount 程式
scala>sc.textfile("可登入 hadoop102:4040 檢視程式執行input
").flatmap(_.split("
")).map((_,1)).reducebykey(_+_).collect
res2: array[(string, int)] = array((hive,3), (oozie,3), (spark,3), (hadoop,6), (hbase,3))
spark記憶體概述
spark程序是以jvm程序執行的,可以通過 xmx和 xms配置堆疊大小,它是如何使用堆疊呢?下面是spark記憶體分配圖。spark預設jvm堆為512mb,為了避免oom錯誤,只使用90 通過spark.storage.safetyfraction來設定。spark通過記憶體來儲存需要處理的資...
Spark 記憶體管理概述
spark被稱作記憶體計算引擎,使得很多初學者認為spark執行環境一定需要大量記憶體,更有甚者,認為spark執行期會把原始資料一次性全部載入到記憶體。解開這些疑團,需要了解spark執行時的機制,spark的計算發生在executor,因此,這裡的執行時機制是指executor的行為。對於spa...
Spark執行流程概述
cluster manager 在hadoop yarn上主要是指resourcemanager stage 每個job會被劃分為很多組task,作為乙個taskset,名為stage.stage的劃分和排程由dagscheduler負責。stage有非最終的stage shuffle map st...