Spark 概述 安裝

2022-07-16 04:48:13 字數 3271 閱讀 9508

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]$ 

mv spark-2.1.1-bin-hadoop2.7 spark

2)官方求 pi 案例

[lxl@hadoop102 spark]$ bin/spark-submit \

--class org.apache.spark.examples.sparkpi \

--executor-memory 1g \

--total-executor-cores 2

\./examples/jars/spark-examples_2.11-2.1.1

.jar \

100

(1)基本語法

bin/spark-submit \

--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 個

3) 結果展示

該演算法是利用蒙特·卡羅演算法求pi

4)準備檔案 

[lxl@hadoop102 spark]$ mkdir input
在 input 下建立 3 個檔案 1.txt 和 2.txt,並輸入以下內容 

hello atguigu

hello spark

5)啟動 spark-shell 

[lxl@hadoop102 spark]$ bin/spark-shell

scala>

開啟另乙個 crd 視窗

[lxl@hadoop102 ~]$ jps

2421

worker

2551

sparksubmit

2632

coarsegrainedexecutorbackend

2333

master

2703 jps

可登入 hadoop102:4040 檢視程式執行:

6)執行 wordcount 程式 

scala>sc.textfile("

input

").flatmap(_.split("

")).map((_,1)).reducebykey(_+_).collect

res2: array[(string, int)] = array((hive,3), (oozie,3), (spark,3), (hadoop,6), (hbase,3))

可登入 hadoop102:4040 檢視程式執行

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...