Spark簡介

来源:https://www.cnblogs.com/paopaoT/archive/2023/06/25/17504246.html
-Advertisement-
Play Games

# Spark Spark是一種快速、通用、可擴展的大數據分析引擎,2009年誕生於加州大學伯克利分校AMPLab,2010年開源,2013年6月成為Apache孵化項目,2014年2月成為Apache的頂級項目,2014年5月發佈spark1.0,2016年7月發佈spark2.0,2020年6月 ...


Spark

Spark是一種快速、通用、可擴展的大數據分析引擎,2009年誕生於加州大學伯克利分校AMPLab,2010年開源,2013年6月成為Apache孵化項目,2014年2月成為Apache的頂級項目,2014年5月發佈spark1.0,2016年7月發佈spark2.0,2020年6月18日發佈spark3.0.0

特點

Hadoop的MapReduce作為第一代分散式大數據計算引擎,在設計之初,受當時電腦硬體條件所限(記憶體、磁碟、cpu等),為了能夠計算海量數據,需要將中間結果保存到HDFS中,那麼就要頻繁讀寫HDFS從而使得網路IO和磁碟IO成為性能瓶頸。Spark可以將中間結果寫到本地磁碟或將中間cache到記憶體中,節省了大量的網路IO和磁碟IO開銷。並且Spark使用更先進的DAG任務調度思想,可以將多個計算邏輯構建成一個有向無環圖,並且還會將DAG先進行優化後再生成物理執行計劃,同時 Spark也支持數據緩存在記憶體中的計算。性能比Hadoop MapReduce快100倍。即便是不將數據cache到記憶體中,其速度也是MapReduce10 倍以上。

• Ease of Use:簡潔易用

Spark支持 Java、Scala、Python和R等編程語言編寫應用程式,大大降低了使用者的門檻。自帶了80多個高等級操作運算元,並且允許在Scala,Python,R 的使用命令進行互動式運行,可以非常方便的在Spark Shell中地編寫spark程式。

• Generality:通用、全棧式數據處理

Spark提供了統一的大數據處理解決方案,非常具有吸引力,畢竟任何公司都想用統一的平臺去處理遇到的問題,減少開發和維護的人力成本和部署平臺的物力成本。 同時Spark還支持SQL,大大降低了大數據開發者的使用門檻,同時提供了SparkStream和Structed Streaming可以處理實時流數據;MLlib機器學習庫,提供機器學習相關的統計、分類、回歸等領域的多種演算法實現。其高度封裝的API 介面大大降低了用戶的學習成本;Spark GraghX提供分散式圖計算處理能力;PySpark支持Python編寫Spark程式;SparkR支持R語言編寫Spark程式。

• Runs Everywhere:可以運行在各種資源調度框架和讀寫多種數據源

Spark支持的多種部署方案:Standalone是Spark自帶的資源調度模式;Spark可以運行在Hadoop的YARN上面;Spark 可以運行在Mesos上(Mesos是一個類似於YARN的資源調度框架);Spark還可以Kubernetes實現容器化的資源調度

豐富的數據源支持。Spark除了可以訪問操作系統自身的本地文件系統和HDFS之外,還可以訪問 Cassandra、HBase、Hive、Alluxio(Tachyon)以及任何 Hadoop相容的數據源。這極大地方便了已經 的大數據系統進行順利遷移到Spark。

Spark與MapReduce的對比

image

面試題:MapReduce和Spark的本質區別:

  1. MR只能做離線計算,如果實現複雜計算邏輯,一個MR搞不定,就需要將多個MR按照先後順序連成一串,一個MR計算完成後會將計算結果寫入到HDFS中,下一個MR將上一個MR的輸出作為輸入,這樣就要頻繁讀寫HDFS,網路IO和磁碟IO會成為性能瓶頸。從而導致效率低下。
  2. spark既可以做離線計算,又可以做實時計算,提供了抽象的數據集(RDD、Dataset、DataFrame、DStream)
    有高度封裝的API,運算元豐富,並且使用了更先進的DAG有向無環圖調度思想,可以對執行計劃優化後在執行,並且可以數據可以cache到記憶體中進行復用,shuffle時,數據可以不排序

註意:MR和Spark在Shuffle時數據都落本地磁碟


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 環境:Windows10_x64 Python版本 :3.9.2 sip協議提供了OPTIONS請求方法可用於探測對端狀態,今天記錄下Windows10環境下使用python3.9簡單實現sip協議的options功能(udp承載)的過程,並提供示例代碼及相關資源下載,可從如下渠道獲取: 關註微信公 ...
  • # 前言 本文主要是詳細講解在 Windows 11 系統上安裝 JDK 11,安裝時有一些註意事項需要說明。與 JDK 8 的安裝過程有少許不一樣。 # 一、安裝前說明 ## 1.系統要求 在微軟 Windows 11 平臺上安裝 JDK 11,首先我們看一下在64位 Windows 平臺上安裝 ...
  • Maven 是一種軟體項目管理和理解工具;它基於項目對象模型(POM),從中央位置管理項目的構建、報告和文檔,並幫助開發人員輕鬆管理依賴項並自動化構建過程。 1、簡介 1.1、項目目錄 Maven 使用約定優於配置的原則,提倡使用一個共同的標準目錄結構。 目錄說明 ${basedir} 項目根目錄, ...
  • > 內容摘自我的學習網站:topjavaer.cn ## 什麼是MySQL MySQL是一個關係型資料庫,它採用表的形式來存儲數據。你可以理解成是Excel表格,既然是表的形式存儲數據,就有表結構(行和列)。行代表每一行數據,列代表該行中的每個值。列上的值是有數據類型的,比如:整數、字元串、日期等等 ...
  • 大家好,我是沙漠盡頭的狼。 網站使用Blazor重構上線一天了,用Blazor開發是真便捷,空閑時間查查gpt和github,又上線一個 [正則表達式線上驗證工具](https://dotnet9.com/tools/regextester) 和幾個線上小游戲,比如 [井字棋游戲](https:// ...
  • 在`WPF`中,命令是一種用於處理用戶交互操作的機制。它將操作行為與界面元素解耦,使得界面元素可以通過命令進行觸發和執行相應的邏輯。`WPF`中的命令模型通過`ICommand`介面和相關的實現類來實現。命令模式的設計思想是將命令的發送者(例如按鈕)與命令的執行者(例如視圖模型中的方法)解耦,使得它... ...
  • 問題應該算挺常見的但是一句話還挺難說清楚,所以百度特別難搜。 場景就是,有一堆以員工名稱命名的文件(名稱可能還有字母數字等前尾碼),現在給定一個員工清單,需要從這些文件中篩選出員工清單上列出的員工的文件,並複製到另外一個目錄中。 輸入: 1. 許多文件名包含員工名稱的文件 2.一個清單文件,裡面包含 ...
  • 哈嘍大家好,我是鹹魚 今天跟大家分享一個關於 zabbix Timeout 值設置不當導致的問題,這個問題不知道大家有沒有碰到過 ## 問題 事情經過是這樣的: 把某一臺 zabbix agent 的模板由原來的 `Template OS Windows by Zabbix agent` 換成了 ` ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...