Spark-大規模數據處理計算引擎

官網:http://spark.apache.org

這里寫圖片描述

一、Spark是什么

這里寫圖片描述

Spark是一種快速、通用、可擴展的大數據分析引擎,2009年誕生于加州大學伯克利分校AMPLab,2010年開源,2013年6月成為Apache孵化項目,2014年2月成為Apache頂級項目。項目是用Scala進行編寫。

目前,Spark生態系統已經發展成為一個包含多個子項目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLib、SparkR等子項目,Spark是基于內存計算的大數據并行計算框架。除了擴展了廣泛使用的 MapReduce 計算模型,而且高效地支持更多計算模式,包括交互式查詢和流處理。Spark 適用于各種各樣原先需要多種不同的分布式平臺的場景,包括批處理、迭代算法、交互式查詢、流處理。通過在一個統一的框架下支持這些不同的計算,Spark 使我們可以簡單而低耗地把各種處理流程整合在一起。而這樣的組合,在實際的數據分析 過程中是很有意義的。不僅如此,Spark 的這種特性還大大減輕了原先需要對各種平臺分 別管理的負擔。

大一統的軟件棧,各個組件關系密切并且可以相互調用,這種設計有幾個好處:

1、軟件棧中所有的程序庫和高級組件 都可以從下層的改進中獲益。

2、運行整個軟件棧的代價變小了。不需要運 行 5 到 10 套獨立的軟件系統了,一個機構只需要運行一套軟件系統即可。系統的部署、維護、測試、支持等大大縮減。

3、能夠構建出無縫整合不同處理模型的應用。

二、Spark的內置項目

這里寫圖片描述

  • 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、Cloudera、MapR、Pivotal、百度、阿里、騰訊、京東、攜程、優酷土豆。當前百度的Spark已應用于鳳巢、大搜索、直達號、百度大數據等業務;阿里利用GraphX構建了大規模的圖計算和圖挖掘系統,實現了很多生產系統的推薦算法;騰訊Spark集群達到8000臺的規模,是當前已知的世界上最大的Spark集群。

三、Spark特點


  • 與Hadoop的MapReduce相比,Spark基于內存的運算要快100倍以上,基于硬盤的運算也要快10倍以上。Spark實現了高效的DAG執行引擎,可以通過基于內存來高效處理數據流。計算的中間結果是存在于內存中的。

  • 易用
    Spark支持Java、Python和Scala的API,還支持超過80種高級算法,使用戶可以快速構建不同的應用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在這些shell中使用Spark集群來驗證解決問題的方法。

  • 通用
    Spark提供了統一的解決方案。Spark可以用于批處理、交互式查詢(Spark SQL)、實時流處理(Spark Streaming)、機器學習(Spark MLlib)和圖計算(GraphX)。這些不同類型的處理都可以在同一個應用中無縫使用。Spark統一的解決方案非常具有吸引力,畢竟任何公司都想用統一的平臺去處理遇到的問題,減少開發和維護的人力成本和部署平臺的物力成本。

  • 兼容性
    Spark可以非常方便地與其他的開源產品進行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作為它的資源管理和調度器,器,并且可以處理所有Hadoop支持的數據,包括HDFS、HBase和Cassandra等。這對于已經部署Hadoop集群的用戶特別重要,因為不需要做任何數據遷移就可以使用Spark的強大處理能力。Spark也可以不依賴于第三方的資源管理和調度器,它實現了Standalone作為其內置的資源管理和調度框架,這樣進一步降低了Spark的使用門檻,使得所有人都可以非常容易地部署和使用Spark。此外,Spark還提供了在EC2上部署Standalone的Spark集群的工具。

四、 Spark適用場景

我們大致把Spark的用例分為兩類:數據科學應用和數據處理應用。也就對應的有兩種人群:數據科學家和工程師。

1、數據科學任務
主要是數據分析領域,數據科學家要負責分析數據并建模,具備 SQL、統計、預測建模(機器學習)等方面的經驗,以及一定的使用 Python、 Matlab 或 R 語言進行編程的能力。

2、數據處理應用
工程師定義為使用 Spark 開發 生產環境中的數據處理應用的軟件開發者,通過對接Spark的API實現對處理的處理和轉換等任務。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535673.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535673.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535673.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL Replace INTO的使用

REPLACE的運行與INSERT很相像。只有一點除外,如果表中的一個舊記錄與一個用于PRIMARY KEY或一個UNIQUE索引的新記錄具有相同的值,則在新記錄被插入之前,舊記錄被刪除。請參見13.2.4節,“INSERT語法”。 注意,除非表有…

CentOS7下Spark集群的安裝

從物理部署層面上來看,Spark主要分為兩種類型的節點,Master節點和Worker節點,Master節點主要運行集群管理器的中心化部分,所承載的作用是分配Application到Worker節點,維護Worker節點,Driver,Ap…

Scala中class與object區別

calss scala編譯器會字段幫我們生產一個私有字段和2個公有方法get和set scala 中沒有 static 關鍵字,所以 對于一個class來說,所有的方法和成員變量在實例被 new 出來之前都是無法訪問的 因此在class中的main方法沒什么用了 scala 的object 中所有成員…

如何編寫一個shell腳本

本文結合大量實例闡述如何編寫一個shell腳本。 為什么要進行shell編程 在Linux系統中,雖然有各種各樣的圖形化接口工具,但是sell仍然是一個非常靈活的工具。Shell不僅僅是命令的收集,而且是一門非常棒的編程語言。您可以通過使用shell使大量的…

Scala變量和常用數據類型

一、 聲明值和變量 Scala聲明變量有兩種方式,一個用val,一個用var。 聲明方式:val / var 變量名 : 變量類型 變量值 val定義的值是不可變的,它不是一個常量,是不可變量,或稱之為只讀變量。 val示例&am…

ubuntu7.10下的vi用的怪怪的

到網上查了一下,原來是ubuntu7.10默認安裝的是vim-tiny.可以重新安裝vim-full #dpkg -l 如果是vim-tiny #apt-get install vim-full

(轉)JVM監控工具介紹

2008年03月04日 16:57原作者: stone2083 原文地址:http://www.blogjava.net/stone2083/archive/2008/02/25/182081.htmljstatd啟動jvm監控服務。它是一個基于rmi的應用,向遠程機器提供本機jvm應用程序的信息。默認端口1099。實例:…

Scala的控制結構

一、 if else表達式 scala中沒有三目運算符,因為根本不需要。scala中if else表達式是有返回值的,如果if或者else返回的類型不一樣,就返回Any類型(所有類型的公共超類型)。 例如:if else返回類型一樣 scal…

【Kubernetes】控制器Statefulset

Statefulset控制器 一、概念二、Statefulset資源清單文件編寫技巧2.1、查看定義Statefulset資源需要的字段2.2、查看statefulset.spec字段如何定義2.3、查看statefulset的spec.template字段如何定義 三、Statefulset使用案例:部署web站點3.1、編寫一個Statefulset資…

Scala 函數

scala定義函數的標準格式為: def 函數名(參數名1: 參數類型1, 參數名2: 參數類型2) : 返回類型 {函數體} 函數示例1:返回Unit類型的函數 def shout1(content: String) : Unit {println(content) }函數示例2:返回Unit類型的函數&#xff0…

ubuntu7.10中的apache的一些設置

在/etc/apache2/mods-available目錄下是apache2可用的模塊.出現在這里的模塊不代表你可以用.只是表明你的apache2已經安裝了這些模塊.可用的模塊在/etc/apache2/mods-enabled這個目錄下.(從redhat系列轉過來看ubuntu,雖然感覺不習慣,但覺得ubuntu的這種分目錄的方法很不錯.) 如…

Java并發篇_Java內存模型

在并發編程中,我們通常會遇到以下三個問題:原子性問題,可見性問題,有序性問題。那么它們產生的原因和在Java中解決的辦法又是什么呢? 一、內存模型的相關概念 ? 計算機在執行程序時,每條指令都是在CPU中執…

rz的安裝

以前,在redhat系列的linux中,通過終端工具操作服務器,經常使用rz來上傳小文件.但是有些系統默認情況下不能使用此命令.今天通過ubuntu.看到這條命令.即使ubunt沒有裝這個命令,你輸入此命令時,它會提示你進行安裝. rootubuntu:~# rzThe program rz is currently not installed. …

Java并發篇_synchronized

synchronized是Java語言的關鍵字,當它用來修飾一個方法或者一個代碼塊的時候,能夠保證在同一時刻最多只有一個線程執行該段代碼。本文給大家介紹java中的用法。 一、為什么要使用synchronized 在并發編程中存在線程安全問題,主要原因有&…

mysqlreport的學習

mysqlreport是一個腳本. 需要先安裝perl-DBI和perl-DBD-MySQL這2個包 mysqlreport 使用DBI 需要有http://hackmysql.com/mysqlreportdocperl ./mysqlreport --help 看幫助 perl ./mysqlreport --user root --password 密碼mysqlreport 文檔mysqlreport 以很友好的方式顯示 My…

Java并發篇_volatile

volatile是Java提供的一種輕量級的同步機制。Java 語言包含兩種內在的同步機制:同步塊(或方法)和 volatile 變量,相比于synchronized(synchronized通常稱為重量級鎖),volatile更輕量級&#xff…

vi 語法著色

我所在部門的經理極其鄙視我用vi,這到不是說他看不慣vi,而是因為那句話"只有黑客級的人才用VI".而我只是一只小小萊鳥.所以只好被他們鄙視了. 現在說一說vi 著色的問題. 首先安裝 vim-enhanced , # yum -y install vim-enhanced 然后, # vi ~/…

Docker Dockerfile詳解

一、什么是Dockerfile Dockerfile是一個包含用于組合映像的命令的文本文檔。可以使用在命令行中調用任何命令。 Docker通過讀取Dockerfile中的指令自動生成映像。 docker build命令用于從Dockerfile構建映像。可以在docker build命令中使用-f標志指向文件系統中任何位置的Doc…

公司臺灣主站的url重寫

今天對公司臺灣主站的url地址進行優化.主站采用的是joomla,而joomla初建好后用的url對搜索引擎非常的不友好. Joomla中的SEF說白了就是一個對URL的重寫的過程將原來參數眾多,層次很深的URL改寫為一個簡單的更容易被記住被搜索的URL。通過分析Joomla站點的URL結果就…

編寫第一個Spring程序——IOC實現

第一個Spring程序 IOC范例 1、新建maven工程 2、在pom.xml文件中導入相關jar包 <!-- https://mvnrepository.com/artifact/org.springframework/spring-core --><dependency><groupId>org.springframework</groupId><artifactId>spring-core&l…