欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

歡迎來到云服務(wù)器

大數(shù)據(jù)技術(shù)

深度:Hadoop對Spark五大維度正面比拼報告!

每年,市場上都會出現(xiàn)種種不同的數(shù)據(jù)管理規(guī)模、類型與速度表現(xiàn)的分布式系統(tǒng)。在這些系統(tǒng)中,Spark和hadoop是獲得最大關(guān)注的兩個。然而該怎么判斷哪一款適合你?

如果想批處理流量數(shù)據(jù),并將其導(dǎo)入HDFS或使用Spark Streaming是否合理?如果想要進(jìn)行機(jī)器學(xué)習(xí)和預(yù)測建模,Mahout或MLLib會更好地滿足您的需求嗎?

深度:Hadoop對Spark五大維度正面比拼報告!

為了增加混淆,Spark和Hadoop經(jīng)常與位于HDFS,Hadoop文件系統(tǒng)中的Spark處理數(shù)據(jù)一起工作。但是,它們都是獨(dú)立個體,每一個體都有自己的優(yōu)點(diǎn)和缺點(diǎn)以及特定的商業(yè)案例。

本文將從以下幾個角度對Spark和Hadoop進(jìn)行對比:體系結(jié)構(gòu),性能,成本,安全性和機(jī)器學(xué)習(xí)。

什么是Hadoop?

Hadoop在2006年開始成為雅虎項目,隨后成為頂級的Apache開源項目。它是一種通用的分布式處理形式,具有多個組件:

HDFS(分布式文件系統(tǒng)),它將文件以Hadoop本機(jī)格式存儲,并在集群中并行化;

YARN,協(xié)調(diào)應(yīng)用程序運(yùn)行時的調(diào)度程序;

MapReduce,實際并行處理數(shù)據(jù)的算法。

Hadoop使用Java搭建,可通過多種編程語言訪問,用于通過Thrift客戶端編寫MapReduce代碼(包括Python)。

除了這些基本組件外,Hadoop還包括:

Sqoop,它將關(guān)系數(shù)據(jù)移入HDFS; Hive,一種類似SQL的接口,允許用戶在HDFS上運(yùn)行查詢; Mahout,機(jī)器學(xué)習(xí)。

除了將HDFS用于文件存儲之外,Hadoop現(xiàn)在還可以配置為使用S3存儲桶或Azure blob作為輸入。

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

什么是Spark?

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

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

Spark是圍繞Spark Core搭建的,Spark Core是驅(qū)動調(diào)度,優(yōu)化和RDD抽象的引擎,并將Spark連接到正確的文件系統(tǒng)(HDFS,S3,RDBM或Elasticsearch)。有幾個庫在Spark Core上運(yùn)行,包括Spark SQL,它允許在分布式數(shù)據(jù)集上運(yùn)行類似SQL的命令,用于機(jī)器學(xué)習(xí)的MLLib,用于圖形問題的GraphX以及允許連續(xù)流式傳輸?shù)牧魇絺鬏斢涗洈?shù)據(jù)。

Spark有幾個API。原始界面是用Scala編寫的,基于數(shù)據(jù)科學(xué)家的大量使用,還添加了Python和R端點(diǎn)。 Java是編寫Spark作業(yè)的另一種選擇。

Databricks由也Spark創(chuàng)始人Matei Zaharia創(chuàng)建的,致力于提供基于 Spark 的云服務(wù),VPS租用 國內(nèi)服務(wù)器,可用于數(shù)據(jù)集成,數(shù)據(jù)管道等任務(wù)

1. 架構(gòu)

Hadoop

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

MapReduce算法位于HDFS之上,由JobTracker組成。一旦應(yīng)用程序以其中一種語言編寫,Hadoop接受JobTracker,然后分配工作(可包括計算單詞和清理日志文件的任何內(nèi)容),以便在存儲在Hive倉庫中的數(shù)據(jù)之上運(yùn)行HiveQL查詢)到偵聽其他節(jié)點(diǎn)的TaskTracker。

YARN分配JobTracker加速并監(jiān)控它們的資源,以提高效率。然后將所有來自MapReduce階段的結(jié)果匯總并寫入HDFS中的磁盤。

Spark

除了計算在內(nèi)存中執(zhí)行并在那里存儲直到用戶積極保存它們之外,Spark處理的工作方式與Hadoop類似。最初,Spark從HDFS,S3或其他文件存儲中的文件讀取到名為SparkContext的已建立機(jī)制。除此之外,Spark創(chuàng)建了一個名為RDD或彈性分布式數(shù)據(jù)集的結(jié)構(gòu),它表示一組可并行操作的元素的不可變集合。

隨著RDD和相關(guān)操作的創(chuàng)建,Spark還創(chuàng)建了一個DAG或有向無環(huán)圖,以便可視化DAG中的操作順序和操作之間的關(guān)系。每個DAG都有階段和步驟;通過這種方式,它與SQL中的解釋計劃類似。

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

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

2. 性能

騰訊云代理

Copyright © 2003-2021 MFISP.COM. 國外vps服務(wù)器租用 夢飛云服務(wù)器租用 版權(quán)所有 ? 粵ICP備11019662號

主站蜘蛛池模板: 湖北省| 界首市| 阿拉善左旗| 浪卡子县| 朝阳县| 永春县| 芜湖市| 延津县| 山西省| 新津县| 平乐县| 康保县| 班玛县| 理塘县| 衡水市| 布尔津县| 绵竹市| 揭西县| 阳东县| 龙岩市| 临西县| 高唐县| 宁强县| 报价| 霍林郭勒市| 长岛县| 沾益县| 乌兰县| 怀来县| 平泉县| 兴隆县| 独山县| 竹溪县| 密山市| 泰兴市| 革吉县| 平原县| 柳河县| 高雄县| 莱芜市| 辽宁省|