本篇內(nèi)容介紹了“Hadoop和Spark的定義是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)專注于古雷港企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設公司,商城開發(fā)。古雷港網(wǎng)站建設公司,為古雷港等地區(qū)提供建站服務。全流程按需開發(fā),專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
Hadoop的定義
Hadoop是Apache.org的一個項目,其實是一種軟件庫和框架,以便使用簡單的編程模型,跨計算器集群對龐大數(shù)據(jù)集(大數(shù)據(jù))進行分布式 處理。Hadoop可靈活擴展,從單一計算機系統(tǒng),到提供本地存儲和計算能力的數(shù)千個商用系統(tǒng),它都能輕松支持。實際上,Hadoop就是大數(shù)據(jù)分析領域 的重量級大數(shù)據(jù)平臺。
Hadoop由協(xié)同運行、構建Hadoop框架的多個模塊組成。Hadoop框架的主要模塊包括如下:
Hadoop Common
Hadoop分布式文件系統(tǒng)(HDFS)
Hadoop YARN
Hadoop MapReduce
雖然上述四個模塊構成了Hadoop的核心,不過還有其他幾個模塊。這些模塊包括:Ambari、Avro、Cassandra、Hive、 Pig、Oozie、Flume和Sqoop,它們進一步增強和擴展了Hadoop的功能,得以擴大到大數(shù)據(jù)應用領域,處理龐大數(shù)據(jù)集。
許多使用大數(shù)據(jù)集和分析工具的公司使用Hadoop。它已成為大數(shù)據(jù)應用系統(tǒng)中事實上的標準。設計Hadoop的初衷是處理這項任務:搜尋和搜索數(shù) 十億個網(wǎng)頁,將這些信息收集到數(shù)據(jù)庫中。正是由于渴望搜尋和搜索互聯(lián)網(wǎng),才有了Hadoop的HDFS及分布式處理引擎MapReduce。
如果數(shù)據(jù)集變得極其龐大或極其復雜,以至于當前的解決方案無法在數(shù)據(jù)用戶認為合理的時間段內(nèi)有效地處理信息,Hadoop對公司就會大有用處。
MapReduce是一種出色的文本處理引擎,它理應如此,因為搜尋互聯(lián)網(wǎng)和搜索互聯(lián)網(wǎng)(它的首要任務)都是基于文本的任務。
Spark的定義
Apache Spark開發(fā)人員聲稱它是“一種用于數(shù)據(jù)大規(guī)模處理的快速通用引擎”。相比之下,如果說Hadoop的大數(shù)據(jù)框架好比是800磅重的大猩猩,Spark就好比是130磅重的獵豹。
雖然批評Spark的內(nèi)存處理技術的人士承認,Spark確實速度很快(最多比Hadoop MapReduce快100倍),但他們可能并不愿意承認它在磁盤上運行起來速度最多快10倍。Spark還可以執(zhí)行批量處理,然而它真正擅長的是處理流工作負載、交互式查詢和基于機器的學習。
相比MapReduce基于磁盤的批量處理引擎,Spark賴以成名之處是其數(shù)據(jù)實時處理功能。Spark與Hadoop及其模塊兼容。實際上,在Hadoop的項目頁面上,Spark就被列為是一個模塊。
Spark有自己的頁面,因為雖然它可以通過YARN(另一種資源協(xié)調(diào)者)在Hadoop集群中運行,但是它也有一種獨立模式。它可以作為 Hadoop模塊來運行,也可以作為獨立解決方案來運行;這樣一來,很難直接比較兩者。然而隨著時間的推移,一些大數(shù)據(jù)科學家預計Spark會出現(xiàn)分叉,可能會取代Hadoop,尤其是在更快速地訪問處理的數(shù)據(jù)至關重要的情況下。
Spark是一種集群計算框架,這意味著它更多地與MapReduce競爭,而不是與整個Hadoop生態(tài)系統(tǒng)競爭。比如說,Spark沒有自己的分布式文件系統(tǒng),但可以使用HDFS。
Spark使用內(nèi)存,也可以使用磁盤進行處理,而MapReduce完全基于磁盤。MapReduce和Spark的主要區(qū)別在于,MapReduce使用持久存儲,而Spark使用彈性分布式數(shù)據(jù)集(RDDS),下面容錯部分有更詳細的解釋。
性能
網(wǎng)上不缺關于Spark與MapReduce相比有多快的信息。對兩者進行比較有個問題,那就是它們處理數(shù)據(jù)的方式不一樣,數(shù)據(jù)處理部分有介紹。Spark之所以如此快速,原因在于它在內(nèi)存中處理一切數(shù)據(jù)。沒錯,它還可以使用磁盤來處理未全部裝入到內(nèi)存中的數(shù)據(jù)。
Spark的內(nèi)存處理為來自多個來源的數(shù)據(jù)提供了近乎實時分析的功能:營銷活動、機器學習、物聯(lián)網(wǎng)傳感器、日志監(jiān)控、安全分析和社交媒體網(wǎng)站。另 外,MapReduce使用批量處理,其實從來就不是為驚人的速度設計的。它的初衷是不斷收集來自網(wǎng)站的信息,不需要這些數(shù)據(jù)具有實時性或近乎實時性。
易用性
眾所周知,Spark以性能見長,但是它也因易用性而小有名氣,原因是它隨帶易于使用的API,支持Scala(原生語言)、Java、Python和Spark SQL。Spark SQL非常類似于SQL 92,所以幾乎不需要經(jīng)歷一番學習,馬上可以上手。
Spark還有一種交互模式,那樣開發(fā)人員和用戶都可以獲得查詢和其他操作的即時反饋。MapReduce沒有交互模式,不過有了Hive和Pig等附加模塊,采用者使用MapReduce來得容易一點。
成本
MapReduce和Spark都是Apache項目,這意味著它們是開源免費軟件產(chǎn)品。雖然軟件不需要成本,但是派人用硬件運行任何一種平臺帶來了成本。這兩種產(chǎn)品都設計成可以在商用硬件上運行,比如所謂的低成本白盒服務器系統(tǒng)。
MapReduce和Spark在同樣的硬件上運行,那么這兩種解決方案的成本差異體現(xiàn)在哪里?MapReduce使用常規(guī)數(shù)量的內(nèi)存,因為數(shù)據(jù)處 理基于磁盤,所以公司得購買速度更快的磁盤和大量磁盤空間來運行MapReduce。MapReduce還需要更多的系統(tǒng),將磁盤輸入/輸出分布到多個系 統(tǒng)上。
Spark需要大量內(nèi)存,但是可以使用常規(guī)數(shù)量的常規(guī)轉(zhuǎn)速磁盤。一些用戶抱怨會產(chǎn)生臨時文件,需要清理。這些臨時文件通常保存7天,以便加快針對同 一數(shù)據(jù)集的任何處理。磁盤空間相對便宜,由于Spark不使用磁盤輸入/輸入用于處理,已使用的磁盤空間可以用于SAN或NAS。
然而,由于需要大量內(nèi)存在內(nèi)存中處理一切數(shù)據(jù),Spark系統(tǒng)的成本更高,這點沒錯。但是Spark的技術同時減少了所需的系統(tǒng)數(shù)量。所以,***的 情形是,系統(tǒng)成本較高,但是數(shù)量大大減少。也許到時候,Spark實際上可以降低每個計算單位的成本,盡管內(nèi)存方面有額外的要求。
舉例說明,“Spark已證明在數(shù)據(jù)多達PB的情況下也輕松自如。它被用于在數(shù)量只有十分之一的機器上,對100TB數(shù)據(jù)進行排序的速度比Hadoop MapReduce快3倍?!边@一成績讓Spark成為2014年Daytona GraySort基準。
兼容性
MapReduce和Spark相互兼容;MapReduce通過JDBC和ODC兼容諸多數(shù)據(jù)源、文件格式和商業(yè)智能工具,Spark具有與MapReduce同樣的兼容性。
數(shù)據(jù)處理
MapReduce是一種批量處理引擎。MapReduce以順序步驟來操作,先從集群讀取數(shù)據(jù),然后對數(shù)據(jù)執(zhí)行操作,將結果寫回到集群,從集群讀 取更新后的數(shù)據(jù),執(zhí)行下一個數(shù)據(jù)操作,將那些結果寫回到結果,依次類推。Spark執(zhí)行類似的操作,不過是在內(nèi)存中一步執(zhí)行。它從集群讀取數(shù)據(jù)后,對數(shù)據(jù) 執(zhí)行操作,然后寫回到集群。
Spark還包括自己的圖形計算庫GraphX。GraphX讓用戶可以查看與圖形和集合同樣的數(shù)據(jù)。用戶還可以使用彈性分布式數(shù)據(jù)集(RDD),改變和聯(lián)合圖形,容錯部分作了討論。
容錯
至于容錯,MapReduce和Spark從兩個不同的方向來解決問題。MapReduce使用TaskTracker節(jié)點,它為 JobTracker節(jié)點提供了心跳(heartbeat)。如果沒有心跳,那么JobTracker節(jié)點重新調(diào)度所有將執(zhí)行的操作和正在進行的操作,交 給另一個TaskTracker節(jié)點。這種方法在提供容錯性方面很有效,可是會大大延長某些操作(即便只有一個故障)的完成時間。
Spark使用彈性分布式數(shù)據(jù)集(RDD),它們是容錯集合,里面的數(shù)據(jù)元素可執(zhí)行并行操作。RDD可以引用外部存儲系統(tǒng)中的數(shù)據(jù)集,比如共享式文件系統(tǒng)、HDFS、HBase,或者提供Hadoop InputFormat的任何數(shù)據(jù)源。Spark可以用Hadoop支持的任何存儲源創(chuàng)建RDD,包括本地文件系統(tǒng),或前面所列的其中一種文件系統(tǒng)。
RDD擁有五個主要屬性:
分區(qū)列表
計算每個分片的函數(shù)
依賴其他RDD的項目列表
面向鍵值RDD的分區(qū)程序(比如說RDD是散列分區(qū)),這是可選屬性
計算每個分片的***位置的列表(比如HDFS文件的數(shù)據(jù)塊位置),這是可選屬性
RDD可能具有持久性,以便將數(shù)據(jù)集緩存在內(nèi)存中。這樣一來,以后的操作大大加快,最多達10倍。Spark的緩存具有容錯性,原因在于如果RDD的任何分區(qū)丟失,就會使用原始轉(zhuǎn)換,自動重新計算。
可擴展性
按照定義,MapReduce和Spark都可以使用HDFS來擴展。那么,Hadoop集群能變得多大呢?
據(jù)稱雅虎有一套42000個節(jié)點組成的Hadoop集群,可以說擴展無極限。***的已知Spark集群是8000個節(jié)點,不過隨著大數(shù)據(jù)增多,預計集群規(guī)模也會隨之變大,以便繼續(xù)滿足吞吐量方面的預期。
安全
Hadoop支持Kerberos身份驗證,這管理起來有麻煩。然而,第三方廠商讓企業(yè)組織能夠充分利用活動目錄Kerberos和LDAP用于身份驗證。同樣那些第三方廠商還為傳輸中數(shù)據(jù)和靜態(tài)數(shù)據(jù)提供數(shù)據(jù)加密。
Hadoop分布式文件系統(tǒng)支持訪問控制列表(ACL)和傳統(tǒng)的文件權限模式。Hadoop為任務提交中的用戶控制提供了服務級授權(Service Level Authorization),這確保客戶擁有正確的權限。
Spark的安全性弱一點,目前只支持通過共享密鑰(密碼驗證)的身份驗證。Spark在安全方面帶來的好處是,如果你在HDFS上運行Spark,它可以使用HDFS ACL和文件級權限。此外,Spark可以在YARN上運行,因而能夠使用Kerberos身份驗證。
“Hadoop和Spark的定義是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
分享題目:Hadoop和Spark的定義是什么
分享網(wǎng)址:http://muchs.cn/article44/ghhghe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、網(wǎng)站建設、建站公司、搜索引擎優(yōu)化、品牌網(wǎng)站制作、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)