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

Hadoop進(jìn)入寒冬期,崛起的會(huì)是Spark嗎?

責(zé)任編輯:cdeng

作者:鈺瑩

2018-03-02 09:55:03

摘自:it168

Hadoop在大數(shù)據(jù)領(lǐng)域享有多年壟斷權(quán),隨著該領(lǐng)域開(kāi)始出現(xiàn)新生力量,其統(tǒng)治地位正在逐漸下滑。年初的調(diào)查中,Hadoop被列為2018年大數(shù)據(jù)領(lǐng)域的“漸凍”趨勢(shì)之一,Gartner的調(diào)查也揭示了Hadoop使用量的下滑,不少人將Hadoop稱作“倒下的大象”,比如Lucidworks首席執(zhí)行官Will Hayes

Hadoop在大數(shù)據(jù)領(lǐng)域享有多年壟斷權(quán),隨著該領(lǐng)域開(kāi)始出現(xiàn)新生力量,其統(tǒng)治地位正在逐漸下滑。年初的調(diào)查中,Hadoop被列為2018年大數(shù)據(jù)領(lǐng)域的“漸凍”趨勢(shì)之一,Gartner的調(diào)查也揭示了Hadoop使用量的下滑,不少人將Hadoop稱作“倒下的大象”,比如Lucidworks首席執(zhí)行官Will Hayes.如果Hadoop開(kāi)始進(jìn)入寒冬期,率先崛起的會(huì)是呼聲最高的Spark嗎?

筆者曾經(jīng)看過(guò)一個(gè)非常有趣的比喻,Hadoop是第一家大型包工隊(duì),可以組織一大堆人合作(HDFS)搬磚蓋房(用MapReduce),但是速度比較慢。

Spark是另一家包工隊(duì),雖然成立得晚一些,但是他們搬磚很快很靈活,可以實(shí)時(shí)交互地蓋房子,比Hadoop快得多。

Hadoop開(kāi)始升級(jí),指定調(diào)度專家YARN調(diào)度工人。Spark從多個(gè)倉(cāng)庫(kù)搬磚(HDFS,Cassandra,S3,HBase),還允許不同專家如YARN/ MESOS對(duì)人員和任務(wù)進(jìn)行調(diào)度。

當(dāng)然,他們兩家并不是水火不容。Spark經(jīng)常和Hadoop團(tuán)隊(duì)合作,這讓問(wèn)題變得更加復(fù)雜。不管怎么說(shuō),Spark和Hadoop都是兩個(gè)獨(dú)立的包工隊(duì),都有著各自的優(yōu)缺點(diǎn)和特定的業(yè)務(wù)用例。

所以,最后,哪一家會(huì)勝出呢?

本文將從這兩大系統(tǒng)的體系結(jié)構(gòu),性能,成本,安全性和機(jī)器學(xué)習(xí)能力等方面進(jìn)行比較。

Hadoop是什么?

現(xiàn)在恐怕沒(méi)有人會(huì)問(wèn)“Hadoop是什么?”這個(gè)問(wèn)題了,因?yàn)樗鼘?shí)在是太火了!Hadoop在2006年開(kāi)始成為雅虎項(xiàng)目,隨后晉升為頂級(jí)Apache開(kāi)源項(xiàng)目。它是一種通用的分布式系統(tǒng)基礎(chǔ)架構(gòu),具有多個(gè)組件:Hadoop分布式文件系統(tǒng)(HDFS),它將文件以Hadoop本機(jī)格式存儲(chǔ)并在集群中并行化; YARN,協(xié)調(diào)應(yīng)用程序運(yùn)行時(shí)的調(diào)度程序; MapReduce,這是實(shí)際并行處理數(shù)據(jù)的算法。Hadoop使用Java編程語(yǔ)言構(gòu)建,其上的應(yīng)用程序也可以使用其他語(yǔ)言編寫(xiě)。通過(guò)一個(gè)Thrift客戶端,用戶可以編寫(xiě)MapReduce或者Python代碼。

除了這些基本組件外,Hadoop還包括Sqoop,它將關(guān)系數(shù)據(jù)移入HDFS; Hive,一種類似SQL的接口,允許用戶在HDFS上運(yùn)行查詢; Mahout,機(jī)器學(xué)習(xí)。除了將HDFS用于文件存儲(chǔ)之外,Hadoop現(xiàn)在還可以配置使用S3 buckets或Azure blob作為輸入。

它可以通過(guò)Apache發(fā)行版開(kāi)源,也可以通過(guò)Cloudera(規(guī)模和范圍最大的Hadoop供應(yīng)商),MapR或HortonWorks等廠商提供。

Spark是什么?

Spark是一個(gè)較新的項(xiàng)目,最初于2012年誕生在加州大學(xué)伯克利分校的AMPLab.它也是一個(gè)頂級(jí)Apache項(xiàng)目,專注于在集群中并行處理數(shù)據(jù),最大的區(qū)別在于它在內(nèi)存中運(yùn)行。

類似于Hadoop讀取和寫(xiě)入文件到HDFS的概念,Spark使用RDD(彈性分布式數(shù)據(jù)集)處理RAM中的數(shù)據(jù)。Spark以獨(dú)立模式運(yùn)行,Hadoop集群可用作數(shù)據(jù)源,也可與Mesos一起運(yùn)行。在后一種情況下,Mesos主站將取代Spark主站或YARN以進(jìn)行調(diào)度。

Spark是圍繞Spark Core構(gòu)建的,Spark Core是驅(qū)動(dòng)調(diào)度,優(yōu)化和RDD抽象的引擎,并將Spark連接到正確的文件系統(tǒng)(HDFS,S3,RDBM或Elasticsearch)。Spark Core上還運(yùn)行了幾個(gè)庫(kù),包括Spark SQL,允許用戶在分布式數(shù)據(jù)集上運(yùn)行類似SQL的命令,用于機(jī)器學(xué)習(xí)的MLLib,用于解決圖形問(wèn)題的GraphX以及允許輸入連續(xù)流式日志數(shù)據(jù)的Streaming. Spark有幾個(gè)API.原始界面是用Scala編寫(xiě)的,并且由于大量數(shù)據(jù)科學(xué)家的使用,還添加了Python和R接口。Java是編寫(xiě)Spark作業(yè)的另一種選擇。

Databricks是由Spark創(chuàng)始人Matei Zaharia創(chuàng)立的公司,現(xiàn)在負(fù)責(zé)Spark開(kāi)發(fā)并為客戶提供Spark分銷。

架構(gòu)對(duì)比

Hadoop

首先,所有傳入HDFS的文件都被分割成塊。根據(jù)配置的塊大小和復(fù)制因子,每個(gè)塊在集群中被復(fù)制指定的次數(shù)。該信息被傳遞給NameNode,它跟蹤集群中的所有內(nèi)容。NameNode將這些文件分配給多個(gè)數(shù)據(jù)節(jié)點(diǎn),然后將這些文件寫(xiě)入其中。在2012年被實(shí)施的高可用性允許NameNode故障轉(zhuǎn)移到備份節(jié)點(diǎn)上,以跟蹤集群中的所有文件。

MapReduce算法位于HDFS之上,由JobTracker組成。一旦應(yīng)用程序以其中一種語(yǔ)言編寫(xiě),Hadoop接受JobTracker,然后分配工作(可包括計(jì)算單詞和清理日志文件等內(nèi)容,以及在Hive倉(cāng)庫(kù)數(shù)據(jù)集之上運(yùn)行HiveQL查詢)到偵聽(tīng)其他節(jié)點(diǎn)的TaskTracker. YARN分配JobTracker加速并監(jiān)控它們的資源,以提高效率。然后將所有來(lái)自MapReduce階段的結(jié)果匯總并寫(xiě)入HDFS中的磁盤(pán)之上。

Spark

Spark的計(jì)算過(guò)程在內(nèi)存中執(zhí)行并在內(nèi)存中存儲(chǔ),直到用戶保存為止。除此之外,Spark處理工作的方式基本與Hadoop類似。最初,Spark從HDFS,S3或其他文件存儲(chǔ)系統(tǒng)讀取到名為SparkContext的程序執(zhí)行入口。除此之外,Spark創(chuàng)建了一個(gè)名為RDD(彈性分布式數(shù)據(jù)集)的結(jié)構(gòu),它表示一組可并行操作元素的不可變集合。

隨著RDD和相關(guān)操作的創(chuàng)建,Spark還創(chuàng)建了一個(gè)DAG(有向無(wú)環(huán)圖),以便可視化DAG中的操作順序和操作之間的關(guān)系。每個(gè)DAG都有確定的階段和步驟。

用戶可以在RDD上執(zhí)行轉(zhuǎn)換,中間操作或最終步驟。給定轉(zhuǎn)換的結(jié)果進(jìn)入DAG,不會(huì)保留到磁盤(pán),但每一步操作都會(huì)將內(nèi)存中的所有數(shù)據(jù)保留到磁盤(pán)。

Spark RDD頂部的一個(gè)新抽象是DataFrames,它是在Spark 2.0中作為RDD配套接口開(kāi)發(fā)的。這兩者非常相似,但DataFrames將數(shù)據(jù)組織成命名列,類似于Python的pandas或R包。這使得它們比RDD更方便,RDD沒(méi)有類似的一系列列級(jí)標(biāo)題引用。SparkSQL還允許用戶像存儲(chǔ)關(guān)系數(shù)據(jù)的SQL表一樣查詢DataFrame.

性能

Spark在內(nèi)存中運(yùn)行速度比Hadoop快100倍,在磁盤(pán)上運(yùn)行速度快10倍。眾所周知,Spark在數(shù)量只有十分之一的機(jī)器上,對(duì)100TB數(shù)據(jù)進(jìn)行排序的速度比Hadoop MapReduce快3倍。此外,Spark在機(jī)器學(xué)習(xí)應(yīng)用中的速度同樣更快,例如Naive Bayes和k-means. Hadoop進(jìn)入寒冬期,崛起的會(huì)是Spark嗎?

由處理速度衡量的Spark性能之所以比Hadoop更優(yōu),原因如下:每次運(yùn)行MapReduce任務(wù)時(shí),Spark都不會(huì)受到輸入輸出的限制。事實(shí)證明,應(yīng)用程序的速度要快得多。

Spark的DAG可以在各個(gè)步驟之間進(jìn)行優(yōu)化。Hadoop在MapReduce步驟之間沒(méi)有任何周期性連接,這意味著在該級(jí)別不會(huì)發(fā)生性能調(diào)整。

但是,如果Spark與其他共享服務(wù)在YARN上運(yùn)行,則性能可能會(huì)降低并導(dǎo)致RAM開(kāi)銷內(nèi)存泄漏。出于這個(gè)原因,如果用戶有批處理的訴求,Hadoop被認(rèn)為是更高效的系統(tǒng)。

成本

Spark和Hadoop都可以作為開(kāi)源Apache項(xiàng)目免費(fèi)獲得,這意味著用戶都可以零成本安裝運(yùn)行。但是,考慮總體擁有成本才是最重要的,比如維護(hù)、硬件和軟件購(gòu)買,雇傭集群管理團(tuán)隊(duì)的開(kāi)銷。內(nèi)部安裝的一般經(jīng)驗(yàn)法則是Hadoop需要更多的磁盤(pán)內(nèi)存,而Spark需要更多的RAM,這意味著設(shè)置Spark集群可能會(huì)更加昂貴。此外,由于Spark是較新的系統(tǒng),因此它的專家更為稀少,成本更高。另一種選擇是使用供應(yīng)商進(jìn)行安裝,例如Cloudera for Hadoop或Spark for DataBricks,或使用AWS在云中運(yùn)行EMR / Mapreduce.由于Hadoop和Spark是串聯(lián)運(yùn)行的,將各自的價(jià)格分離出來(lái)進(jìn)行比較可能是困難的。對(duì)于高級(jí)別的比較,假設(shè)為Hadoop選擇計(jì)算優(yōu)化的EMR集群,最小實(shí)例c4.large的成本為每小時(shí)0.026美元。 Spark最小內(nèi)存優(yōu)化集群每小時(shí)成本為0.067美元。因此,Spark每小時(shí)更昂貴,但考慮到計(jì)算時(shí)間,類似的任務(wù)在Spark集群上花費(fèi)的時(shí)間更少。

容錯(cuò)和安全性

Hadoop具有高度容錯(cuò)性,因?yàn)樗荚诳缍鄠€(gè)節(jié)點(diǎn)復(fù)制數(shù)據(jù)。每個(gè)文件都被分割成塊,并在許多機(jī)器上復(fù)制無(wú)數(shù)次,以確保如果單臺(tái)機(jī)器停機(jī),可以從其他塊重建文件。

Spark的容錯(cuò)主要是通過(guò)RDD操作來(lái)實(shí)現(xiàn)。最初,靜態(tài)數(shù)據(jù)存儲(chǔ)在HDFS中,通過(guò)Hadoop的體系結(jié)構(gòu)進(jìn)行容錯(cuò)。隨著RDD的建立,lineage也是如此,它記住了數(shù)據(jù)集是如何構(gòu)建的,由于它是不可變的,如果需要可以從頭開(kāi)始重建。跨Spark分區(qū)的數(shù)據(jù)也可以基于DAG跨數(shù)據(jù)節(jié)點(diǎn)重建。數(shù)據(jù)在執(zhí)行器節(jié)點(diǎn)之間復(fù)制,如果執(zhí)行器和驅(qū)動(dòng)程序之間的節(jié)點(diǎn)通信失敗,通常可能會(huì)損壞數(shù)據(jù)。

Spark和Hadoop都可以支持Kerberos身份驗(yàn)證,但Hadoop對(duì)HDFS具有更加細(xì)化的安全控制。 Apache Sentry是一個(gè)用于執(zhí)行細(xì)粒度元數(shù)據(jù)訪問(wèn)的系統(tǒng),是另一個(gè)專門(mén)用于HDFS級(jí)別安全性的項(xiàng)目。

Spark的安全模型目前很少,但允許通過(guò)共享密鑰進(jìn)行身份驗(yàn)證。

機(jī)器學(xué)習(xí)

Hadoop使用Mahout來(lái)處理數(shù)據(jù)。Mahout包括集群,分類和基于批處理的協(xié)作過(guò)濾,所有這些都在MapReduce之上運(yùn)行。目前正在逐步推出支持Scala和DSL語(yǔ)言的Samsara(類似R的矢量數(shù)學(xué)環(huán)境),允許用戶進(jìn)行內(nèi)存和代數(shù)操作,并允許用戶自己編寫(xiě)算法。

Spark有一個(gè)機(jī)器學(xué)習(xí)庫(kù)叫MLLib,充分利用了Spark快速內(nèi)存計(jì)算,迭代效率高的優(yōu)勢(shì)開(kāi)發(fā)機(jī)器學(xué)習(xí)應(yīng)用程序。它可用于Java,Scala,Python或R,包括分類和回歸,以及通過(guò)超參數(shù)調(diào)整構(gòu)建機(jī)器學(xué)習(xí)管道的能力。

總結(jié)

所以,到底是選Hadoop還是Spark呢?兩者都是Apache的頂級(jí)項(xiàng)目,經(jīng)常一起使用,并且有相似之處,但Spark并不是離不開(kāi)Hadoop,目前已有超過(guò)20%的Spark獨(dú)立于Hadoop運(yùn)行,并且這一比例還在增加。從性能、成本、高可用性、易用性、安全性和機(jī)器學(xué)習(xí)諸多方面參考,Spark都略勝一籌!

或許,Hadoop確實(shí)老了,大數(shù)據(jù)世界應(yīng)該出現(xiàn)更年輕的統(tǒng)治者。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)

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

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 屏东市| 曲靖市| 南康市| 徐汇区| 永吉县| 临沧市| 二手房| 桦南县| 萍乡市| 扶沟县| 什邡市| 西贡区| 瓮安县| 永州市| 天长市| 大庆市| 宜川县| 沂源县| 白河县| 洛阳市| 四子王旗| 保山市| 和顺县| 广水市| 永昌县| 嘉荫县| 博白县| 和田市| 体育| 杭州市| 驻马店市| 仁化县| 伊吾县| 奇台县| 乌苏市| 独山县| 集安市| 邛崃市| 延吉市| 耿马| 炎陵县|