精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

共筑Spark大數據引擎的七大工具

責任編輯:editor006

作者:布加迪編譯

2016-03-21 17:04:45

摘自:51CTO.com

本文介紹了Spark生態系統的每個主要部分:每個部分的功能,為什么很重要,是如何發展的,在哪方面不盡如人意,以及可能會往哪個方向發展。MLlib中的可用算法數量眾多,該框架每推出一個修訂版,就會隨之增多。

Spark正在數據處理領域卷起一場風暴。讓我們通過本篇文章,看看為Spark的大數據平臺起到推波助瀾的幾個重要工具。

Spark生態系統眾生相

Apache Spark不僅僅讓大數據處理起來更快,還讓大數據處理起來更簡單、功能更強大、更方便。Spark并非只是一項技術,它結合了諸多部分,新的功能和性能改進不斷添加進來,每個部分都在不斷完善之中。

本文介紹了Spark生態系統的每個主要部分:每個部分的功能,為什么很重要,是如何發展的,在哪方面不盡如人意,以及可能會往哪個方向發展。

Spark Core

Spark的核心是恰如其名的Spark Core。除了協調和調度作業外,Spark Core還為Spark中的數據處理提供了基本的抽象機制,名為彈性分布式數據集(RDD)。

RDD對數據執行兩個動作:轉換和操作。前者轉換數據,并將它們作為剛創新的RDD來提供;后者根據現有的RDD(比如對象數量)來計算結果。

Spark的速度很快,原因是轉換和操作都保存在內存中。操作慢騰騰地評估,這意味著只有需要相關的數據時,才執行操作;然而,很難搞清楚什么在緩慢運行。

Spark的速度在不斷提高。Java的內存管理往往給Spark帶來問題,于是Project Tungsten計劃避開JVM的內存和垃圾收集子系統,以此提高內存效率。

Spark API

七大工具共筑Spark大數據引擎

Spark主要是用Scala編寫的,所以Spark的主要API長期以來也支持Scala。不過另外三種使用廣泛得多的語言同樣得到支持:Java(Spark也依賴它)、Python和R.

總的來說,你最好選擇自己最擅長的那種語言,因為你需要的功能特性很可能在該語言中直接得到支持。只有一個例外:相比之下,SparkR中對機器學習的支持不大給力,目前只有一小批算法可供使用。不過將來這種情況勢必會發生變化。

Spark SQL

七大工具共筑Spark大數據引擎

千萬不要低估了能夠對批量數據執行SQL查詢的能力或便利。Spark SQL提供了對Spark提供的數據執行SQL查詢(并且請求列式DataFrame)的一種通用機制,包括通過ODBC/JDBC連接件進行管道處理的查詢。你甚至不需要正規的數據源。Spark 1.6中添加了這一功能:支持以一種得到支持的格式查詢扁平文件,就像Apache Drill那樣。

Spark SQL其實并不用于更新數據,因為那與Spark的整個意義相悖。可以將因而生成的數據寫回成新的Spark數據源(比如新的Parquet表),但是UPDATE查詢并不得到支持。別指望諸如此類的功能特性很快就會推出;著眼于Spark SQL的改進大多數用于提升其性能,因為它也成了Spark Streaming的基礎。

Spark Streaming

Spark的設計讓它得以支持許多處理方法,包括流處理――Spark Streaming因此得名。關于Spark Steaming的傳統觀點是,它還半生不熟,這意味著只有你不需要瞬間延遲,或者如果你還沒有投入到另一種流數據處理解決方案(比如說Apache Storm),你才會使用它。

但是Storm在逐漸失去人氣;長期使用Storm的推特此后已改用了自己的項目Heron。此外,Spark 2.0承諾會推出一種新的“結構化數據流”模式,以便對實時數據進行交互式Spark SQL查詢,包括使用Spark 的機器學習庫。至于其性能是否高得足以擊敗競爭對手仍需拭目以待,不過它值得認真考慮。

MLlib(機器學習)

機器學習技術素有既神奇,又困難之稱。Spark讓你可以對Spark中的數據運行許多常見的機器學習算法,從而使這些類型的分析容易得多,也更容易被Spark用戶所使用。

MLlib中的可用算法數量眾多,該框架每推出一個修訂版,就會隨之增多。話雖如此,一些類型的算法還是沒有――比如說,涉及深度學習的任何算法。第三方正在利用Spark的人氣來填補這一空白;比如說,雅虎可以借助CaffeOnSpark執行深度學習,它通過Spark充分利用了Caffe深度學習系統。

GraphX (圖形計算)

描繪數百萬實體之間的關系通常需要圖形,這種數據構件描述了那些實體之間的相互關系。Spark的GraphX API讓你可以使用Spark的一套方法,對數據執行圖形操作,于是構建和轉換這類圖形的繁重任務卸載到了Spark。GraphX 還包括用于處理數據的幾種常見算法,比如PageRank或標簽傳播(label propagation)。

從目前來看,GraphX的 一個主要限制是,它最適合靜態圖形。處理添加了新頂點的圖形會嚴重影響性能。此外,如果你已經在使用一種成熟的圖形數據庫解決方案,GraphX還 不太可能取代它。

SparkR(Spark上的R)

R語言為進行統計數值分析和機器學習工作提供了一種環境。Spark在2015年6月添加了支持R的功能,以匹配其支持Python和Scala的功能。

除了為潛在的Spark開發人員多提供一種語言外,SparkR還讓R程序員們可以做之前做不了的許多事情,比如訪問超過單一機器的內存容量的數據集,或者同時輕松地使用多個進程或在多個機器上運行分析。

SparkR還讓R程序員可以充分利用Spark中的MLlib機器學習模塊,創建一般的線性模型。遺憾的是,并非所有的MLlib功能在SparkR中得到支持,不過Spark每推出一個后續的修訂版,都在填補R支持方面的差距。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 石家庄市| 平乡县| 双流县| 即墨市| 额济纳旗| 靖边县| 达孜县| 厦门市| 林口县| 宁武县| 黑龙江省| 延津县| 安庆市| 清水河县| 泾源县| 台东县| 独山县| 海盐县| 龙川县| 秦皇岛市| 苍梧县| 白水县| 华阴市| 青海省| 隆德县| 色达县| 长宁县| 聊城市| 扶绥县| 古蔺县| 济阳县| 鸡泽县| 旺苍县| 华坪县| 沾化县| 纳雍县| 浙江省| 祁门县| 凤阳县| 安陆市| 灌阳县|