日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

hadoop+spark生态系统操作与指南非影印版_Spark背景知识学习

發布時間:2025/3/20 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop+spark生态系统操作与指南非影印版_Spark背景知识学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要總結Spark及其生態圈,包括spark概述,產生背景,特點,以及與Hadoop的差異等,希望讀者能從概念層面對spark有一個直觀的認識。

Spark概述及特點

Apache Spark? is a unified analytics engine for large-scale data processing.

這是來自Spark官網的描述(http://spark.apache.org/)。我們可以看到Spark是對大規模數據處理的一個統一分析引擎。有一種說法是:Spark給Hadoop這頭大象插上了翅膀,足以看出Spark處理速度之快。Spark官網中,概括了Spark的幾個特點:

1. Speed:執行速度很快,無論是在批處理還是流處理中都很快。官網指出邏輯回歸使用hadoop(指的是MapReduce作業)執行需要110秒,使用spark執行只需要0.9秒。執行快的原因有:①spark使用了一種DAG執行引擎,能提供基于內存的計算,相比Hadoop對磁盤讀寫要快很多。②MapReduce中的Map作業和Reduce都是基于進程的,而進程的啟動和銷毀都有一定的開銷。spark中作業是基于線程池的,任務啟動的開銷要比Hadoop快。

2. Ease of Use:易用性。主要體現在①Spark支持Java,Scala,Python,R,SQL等多種語言,便于我們選擇自己熟悉的語言進行應用開發。②Spark提供了80多種高級別的算子,比起MapReduce中僅有的map和reduce操作更廣泛,例如join,groupby等,也方便了我們進行應用開發。③Spark還支持交互式的命令行操作。而MapReduce需要寫完之后打包再運行,代碼量大,步驟繁瑣。

3. Generality:通用性。Spark之上有不同的子框架用于處理不同的業務場景,如下圖所示。這樣降低了環境搭建成本,運維成本和學習成本。可以說是一棧式解決多種場景問題。

4. Runs Everywhere:Spark可以有Hadoop(yarn),Mesos,standalone,Kubernetes等多種運行模式。它還可以訪問多種數據源,例如HDFS,Cassandra,HBase,Hive等,這樣就為在現有的復雜多樣的生產環境中使用spark提供了無限可能。

spark的產生背景

1.MapReduce的局限性:

① 代碼繁瑣。拿wordcount舉例,使用MapReduce實現,需要我們自己開發map函數和reduce函數,并進行打包部署運行,代碼量大,步驟繁瑣,一單出錯就需要重新提交。

② MapReduce只能夠支持map和reduce方法,對于像Join,group by等的操作的開發比較繁瑣。

③執行效率不夠高,原因主要有:

  • map階段的結果寫入磁盤,reduce階段再從磁盤上讀取相應的數據進行有關計算,中間有磁盤參與的過程。

  • 每一個作業是以進程(一個JVM)的方式,運行啟動和銷毀的成本很高。

  • 數據交互通過磁盤進行,不能充分發揮集群的作用。

  • 不適合迭代多次(如機器學習和圖計算的場景),交互式學習(如使用命令行操作的場景),流式的處理(MapReduce處理的數據是靜態不能變化的,不能處理流式處理)的場景。

2.框架多樣化

在spark之前,有很多框架用于處理不同的任務。主要可以分為以下幾種:

① 批處理(或者稱之為離線處理)框架,如MapReduce、Hive、Pig。

② 流式處理(或者稱為實時處理)框架,如Storm,JStorm。

③ 交互式計算計算,如Impala

如果要進行不同場景的業務處理,則就需要借助不同的框架。如果以上三種都涉及,就要搭建多個集群,這樣的成本是很高的:包括對于框架的學習成本以及對實際環境的運維成本。

而spark能夠完成以上所有框架可以做的事情。較好的解決了框架多樣性的問題。能夠完成批處理,流式處理,交互式處理等。spark包含的組件有:Spark SQL處理SQL的場景(離線處理),MLlib用于進行機器學習,Graphx用作圖計算,Spark Streaming 用來進行流式處理。

spark生態對比Hadoop生態

關于Hadoop 生態系統的各個組件我們在前面文章中提到過,可以參考Hadoop基礎知識總結中關于Hadoop生態系統的描述

我們來看一下spark生態系統的架構,可以簡寫為BDAS,其全稱是Berkeley Data Analytics Stack,即伯克利數據分析棧,如下圖所示,圖片來源:

https://yq.aliyun.com/articles/371357

從下往上看,各個組件的作用如下:

Mesos:分布式資源管理和調度框架,和Yarn類似。

HDFS:分布式文件存儲系統。它是外部的相關系統,嚴格意義上不屬于BDAS。

tachyan:后來改名為alpha,是一個分布式內存文件系統,使得我們的數據可以存儲在內存中。

spark:即:spark core。基于內存優化的執行引擎,支持多種語言如Java,Python,Scala的編程API。

spark之上有不同的子模塊用來滿足不同的應用場景:Spark Streaming 用來做流處理。GraphX用于做圖計算,MLlib用來做機器學習,Spark SQL(前身是Shark)用于支持SQL的查詢。

storm和spark是沒有關系的(外部系統),它是用來做流處理的框架,但是spark內部已經有了spark streaming可以用于做流處理,安裝成本和學習成本相對都小很多。

BlinkDB:用于在海量數據之上運行交互式SQL查詢的大規模并行查詢引擎,通過犧牲數據的精度提高查詢的響應時間。

spark與Hadoop的對比

對比1:hadoop生態系統與Spark BDAS 的對比,如下表所示。

批處理的場景:Hadoop生態系統中我們只能使用MapReduce,Spark中我們可以使用RDD以及相應的編程語言。

SQL查詢的場景:Hadoop中可以使用Hive,Spark中我們可以使用Spark SQL,二者在使用上具有相當大的相似性。

流處理的場景:Hadoop生態系統通常使用kafka+storm,spark中使用的是 spark streaming,它也可以整合kafka使用。

機器學習的場景:Hadoop生態中使用mahout,但是目前不對MapReduce更新了,spark中則是單獨的MLlib模塊。

實時數據查詢:Hadoop生態系統中使用Hbase等NoSQL數據庫,而spark中雖然沒有專門的組件,但是也能夠使用spark core的API處理NoSQL查詢的場景。spark是一個快速的分布式計算框架,所以沒有提供存儲的組件,但可以訪問多種數據源。

對比2:Hadoop和Spark內部構成的對比

對比3:MapReduce 與Spark 的對比

如上圖所示:

MapReduce執行時,從HDFS讀取數據,結果寫入到HDFS,下一個作業再從HDFS讀數據,處理完之后再寫回去。多個作業之間的數據共享借助于HDFS完成。

Spark則是把磁盤換成了內存,第一個作業將結果寫入內存而不是磁盤,后面的作業也直接從內存中讀取數據,這樣可以減少序列化,磁盤,網絡的開銷。

Spark和Hadoop的協作性:

Hadoop 的優勢:

  • 數據規模方面:Hadoop在存儲空間和計算能力方面,都可以進行擴展,支持多數據源,多應用,多用戶。

  • 企業級平臺:高可用(reliability),多租戶(Multi-tenancy),安全性(Security)

  • 多種應用場景:文件,數據庫,半結構化數據

Spark的優勢:

  • 易于部署:API簡單,支持多種語言

  • 基于內存的計算框架:使用RDD的方式處理數據,使用DAG的處理模式

  • 綜合多個工作流和子框架:例如spark SQL,ML,streaming,Graphx等組合使用

因此實際工作中常常將二者綜合起來,這樣使應用程序可以在內存中計算,提高計算效率。通常二者協作的框架大致如下圖所示:

大致的邏輯是:

數據存儲在HDFS之上,由Yarn進行統一的資源管理和作業調度。

在yarn之上,可以運行各種作業,如批處理的MR,流處理的Storm,S4,內存計算的spark任務。

我們看到,Hadoop和Spark在生產生是相輔相成的,各自的模塊負責各自的功能。

至此我們完成了對Spark的基本知識的學習,如產生背景,架構組成,主要子框架,并進行了與Hadoop的對比,主要在一些概念上和邏輯上形成一個直觀的認識,為今后的學習奠定一些基礎。歡迎大家留言交流~

(完)


總結

以上是生活随笔為你收集整理的hadoop+spark生态系统操作与指南非影印版_Spark背景知识学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。