Hadoop大數據應用生態圈中最主要的組件及其關系

Hadoop大數據應用生態中最主要的組件及其關系

Hadoop Common

Hadoop Common是在Hadoop0.2版本之后分離出來的HDFS和MapReduce獨立子項目的內容,是Hadoop的核心部分,能為其他模塊提供一些常用工具集,如序列化機制、Hadoop抽象文件系統FileSystem、系統配置工具Configuration,并且在為其平臺上的軟件開發提供KPI等。其他Hadoop子項目都是以此為基礎而建立來的。

HDFS

HDFS(Hadoop分布式文件系統)源自于Google的GFS論文,發表于2003年10月,HDFS是GFS的實現版。HDFS是Hadoop體系中數據存儲管理的基礎,它是一個高度容錯的系統,能檢測和應對硬件故障,在低成本的通用硬件上運行。HDFS簡化了文件的一次性模型,通過流式數據訪問,提供高吞吐量應用程序數據訪問功能,適用帶有數據集的應用程序。HDFS提供一次寫入多次讀取的機制,數據以塊的形式,同時分布存儲在不同的物理機器上。
HDFS默認的最基本的存儲單位是64MB的數據塊,和普通文件系統一樣,HDFS中的文件被分成64MB一塊的數據塊存儲。它的開發是基于流數據模式訪問和處理超大文件的需求。

超大文件

超大文件:是指進行存儲的文件達到MB、GB、TB級的大文件。

流式數據訪問

流式數據訪問:一次寫入、多次讀取的訪問模式。

商用硬件

在節點出現故障時,HDFS會繼續運行,用戶不會察覺到明顯的中斷情況。這是由于HDFS的高可用性和容錯性是通過軟件來實現的,也由此使得它不需要價格高的設備來保障,大街小巷能買到的普通硬件就能用作搭建HDFS。
HDFS并不是所有場景都適用。
1)由于HDFS的優勢是海量數據傳輸,在低延遲的數據訪問中就并不適用,10ms以下的訪問可以無視HDFS。HDFS會用延遲來換取數據的高吞吐量。
2)存在的小文件較多時,HDFS也不適用。這主要是由于HDFS的整個文件存儲在NameNode中,它能對數據庫的存儲位置進行定位,因此NameNode的內存量是被文件的數量限制的。而大量的小文件會占用很大一部分內存,在進行數據處理時會合并這些小文件。
3)在多處寫和隨機修改的場景中,由于HDFS的文件不支持多個寫入或任意位置的修改,所以HDFS也不適用。

MapReduce

Mapduce(分布式計算框架)源自于Google的MapReduce論文,發表于2004年12月,Hadoop MapReduce是Google Reduce 克隆版。MapReduce是一種分布式計算模型,用以進行海量數據的計算。它屏蔽了分布式計算框架細節,將計算抽象成Map 和Reduce兩部分,其中Map對數據集上的獨立元素進行指定的操作,生成鍵-值對形式中間結果。Reduce則對中間結果中相同“鍵”的所有“值”進行規約,以得到最終結果。MapReduce非常適合在大量計算機組成的分布式并行環境里進行數據處理。

HBase

Hbase(分布式列存數據庫)源自Google的BigTable論文,發表于2006年11月,HBase是Google Table的實現。HBase是一個建立在HDFS之上,面向結構化數據的可伸縮、高可靠、高性能、分布式和面向列的動態模式數據庫。HBase采用了BigTable的數據模型,即增強的稀疏排序映射表(Key/Value),其中,鍵由行關鍵字、列關鍵字和時間戳構成。HBase提供了對大規模數據的隨機、實時讀寫訪問,同時,HBase中保存的數據可以使用MapReduce來處理,它將數據存儲和并行計算完美地結合在一起。

Zookeeper

Zookeeper(分布式協作服務)源自Google的Ghubby論文,發表于2006年11月,Zookeeper是CHubby實現版。Zookeeper的主要目標是解決分布式環境下的數據管理問題,如統一命名、狀態同步、集群管理、配置同步等。Hadoop的許多組件依賴于Zookeeper,它運行在計算機集群上面,用于Hadoop管理操作。

Hive

Hive(數據倉庫)由Facebook開源,最初用于解決海量結構化的日志數據統計問題。Hive定義了一種類似SQL的查詢語言(HQL),將HQL轉化為MapReduce任務在Hadoop上執行,通常用于離線分析。HQL用于運行存儲在Hadoop上的查詢語句,Hive使不熟悉MapReduce開發人員也能編寫數據查詢語句,然后這些數據被翻譯成Hadoop上面的MapReduce任務。

Pig

Pig(ad-hoc腳本)由yahoo開源,其設計動機是提供一種基于MapReduce的ad-hoc(計算query時發生)數據分析工具。Pig定義了一種數據流語言——Pig Latin,它是MapReduce編程的復雜性抽象,Pig平臺包括運行環境和用于分析Hadoop數據集的腳本語言(Pig Lain)。其編譯器將Pig Lain翻譯成MapReduce程序序列,將腳本轉換為MapReduce任務在Hadoop任務在Hadoop上執行,通常用于進行離線分析

Sqoop

Sqoop(數據ETL/同步工具)是SQL-to-Hadoop的縮寫,主要用于傳統數據和Hadoop之前傳輸數據。數據的導入和導出本質上是MapReduce程序,充分利用了MR的并行化和容錯性,Sqoop利用數據庫技術描述數據架構,用于關系數據庫、數據倉庫和Hadoop之間轉移數據

Flume

Flume(日志收集工具)是Cloudera開源的日志系統收集系統,具有分布式、高可靠、高容錯、易于定制和擴展的特點。它將數據從產生、傳輸、處理并最終寫入目標的路徑的過程抽象為數據流,在具體的數據流中,數據源支持在Flume中定制數據發送方,從而支持收集各種不同協議數據。同時,Flume數據流提供對日志數據進行簡單處理的能力,如過濾、格式轉換等。此外,Flume還具有能夠將日志寫往各種數據目標(可定制)的能力。總的來說,Flume是一個可擴展、適合復雜環境的海量日志收集系統,當然也可以用于收集其他類型數據

Mahout

Mahout(數據挖掘算法庫)起源于2008年,最初是Apache Lucent的子項目,它在極端的時間內取得了長足的發展,現在是Apache的頂級項目。Mahout的主要目標是創建一些可擴展的機器學習領域經典算法的實現,旨在幫助開發人員更加方便、快捷地創建智能應用程序。Mahout現在已經包含了聚類、分類、推薦引擎(協同過濾)和頻繁集挖掘等廣大使用的數據挖掘算法。除了算法,Mahout還包含數據的輸入/輸出工具與其他存儲系統(如數據庫、MangoDB或Cassadra)集成的數據挖掘支持架構

YARN

YARN(分布式資源管理器)是下一代MapReduce,即MRv2,是在第一代MapReduce基礎上演變而來的,主要是為了解決原始Hadoop擴展性差,不支持多計算框架而提出的。YARN是下一代Hadoop計算平臺,是一個通用的運行時框架,用戶可以編寫自己的極端框架,在該運行環境中運行。

Mesos

Mesos(分布式資源管理器)是一個誕生于UC Berkeley的研究項目,現已成為Apache項目,當前有一些公司使用Masos管理集群資源,如Twitter。與YARN類似,Mesos是一個資源統一管理和調度平臺重點內容,同樣支持諸如MR、steaming等多種運算框架。

Tachyon

Tachyon(意為超光速粒子)是以內存為中心的分布式文件系統,擁有高性能和容錯能力,能夠為集群框架(如Spark、Mapre)提供可靠的內存級速度的文件共享服務。Tachyon誕生于UC Berkeley的AMPLab。

Spark

Spark(內存DAG計算模型)是一個Apche項目,被標榜為“快如閃電的集群計算”,它擁有一個繁榮的開源社區,并且是目前最活躍的Apache項目。最早Spark是UC Berkeley AMP Lab所開源的類Hadoop MapReduce的通用計算框架,Spark提供了一個更快、更通用的數據處理平臺。和Hadoop相比,Spark平臺可以讓你的程序在內存中運行時速度提升100倍,或者在磁盤上運行時速度提升10倍。

Spark GraphX

Spark GraphX最先是伯克利AMP Lab的一個分布式圖計算框架項目,目前整合在Spark運行框架中,為其提供BSP大規模并行圖計算能力

Spark MLlib

Spark MLlib是一個機器學習庫,它提供了各種各樣的算法,這些算法用來在集群上針對分類、回歸、聚類、協同過濾等。

Kafka

Kafka是Linkedin于2010年12月開源的消息系統,主要用于處理活躍的流式數據。活躍的流失數據在Web網站應用中非常常見,這些數據包括網站的PV(Page View),用戶訪問了什么內容,搜索了什么內容等,這些數據通常以日志的形式保存下來,然后每隔一段時間進行一次統計處理。

Apache Pheonix

Apache Pheonix是HBase的SQL驅動(HBase SQL接口),Pheonix使得HBase支持通過JDBC的方式進行訪問,并將你的SQL查詢換成HBase的掃描和相應的動作

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

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

相關文章

7年老Android一次操蛋的面試經歷,系列教學

公司的需求 不同的公司,不同的需求現在的市場上,公司很多,大致上可以歸納為兩個大類:大公司和小公司,他們招聘時對人才的需求也不一樣。 小公司 小公司他們一般急需的是能夠投入工作的人才,因為公司規模…

丁香園 武漢 神童_杭州、武漢、成都哪個城市更適合程序員發展

很多朋友討論起房價和職業發展機會,都會提到這三個城市,有的人認為目前杭州房價太貴了,生活成本高,華中的武漢和西部崛起的成都都在鼓勵高新技術發展并且有了一定成果,在選擇職業發展和定居城市之間該如何取舍呢&#…

Windows 7 64位系統上搭建Hadoop偽分布式環境(很詳細)

在開始配置前,我們先了解Hadoop的三種運行模式。 Hadoop的三種運行模式 獨立(或本地)模式:無需運行任何守護進程,所有程序都在同一個JVM上執行。在獨立模式下測試和調試MapReduce程序很方便,因此該模式在…

7年老Android一次操蛋的面試經歷,講的太透徹了

由于涉及到的面試題較多導致篇幅較長,我根據這些面試題所涉及到的常問范圍總結了并做出了一份學習進階路線圖???????及面試題答案免費分享給大家,文末有免費領取方式! View面試專題 View的滑動方式View的事件分發機制View的加載流程…

處理效應模型stata實例_stata︱政策處理效應模型sata基本命令匯總

本文來源經管之家論壇,由壇友cuifengbao歸納 Use ,文件名.dta,clear Ssc installpamatch2,replace 一、首先做一元回歸 reg 結果變量 處理變量,r 二、直接引入協變量,再做多元回歸 reg 結果變量 處理變量 協變量1 協變量2 協變量3……,r 三、接下來進行傾向得分匹配 1.將數…

80后程序員月薪30K+感慨中年危機,面試必問!

說說程序猿行業 現在社會上給IT行業貼上了幾個標簽:高薪、高危、高大上、禿頂(哈哈)。這些標簽我相比大家都比較清楚,至于為什么是這些標簽呢?而且這些標簽是真實還是假象呢? 高薪 作為IT行業來說&#…

華為照片在哪個文件夾_原來華為手機還能這樣清理垃圾,怪不得你的手機可以多用5年...

對于目前市場上的智能手機來說,大家的手機功能都是差不多的,除了一些外觀上的差別之外,最大的區別就是手機的內存,但是很多朋友卻表示手機內存很大,但是沒用多久,手機就會出現卡頓或者是運行速度變慢的現象…

996頁阿里Android面試真題解析火爆全網,全網首發!

在安卓系統中: 當系統內存不足時,Android系統將根據進程的優先級選擇殺死一 些不太重要的進程,優先級低的先殺死。進程優先級從高到低如下。 前臺進程 處于正在與用戶交互的activity與前臺activity綁定的service調用了startForeground&…

python不適合大型項目_在大型項目上,Python 是個爛語言嗎? |

【洪強寧的回答(89票)】:太多硬傷和臆想,懶得批。只說“代碼超過 10w 以后你就別想用 python 開發了”這一句,2012年4月豆瓣主站項目代碼行數就近50萬行了,可我們還在用 python 開發。【劉鑫的回答(42票)】:我寫過幾年Python,也寫…

996頁阿里Android面試真題解析火爆全網,分享面經!

導語 學歷永遠是橫在我們進人大廠的一道門檻,好像無論怎么努力,總能被那些985,211 按在地上摩擦! 不僅要被“他們”看不起,在HR挑選簡歷,學歷這塊就直接被刷下去了,連證明自己的機會也沒有,學…

access ole 對象 最大長度_Redis 數據結構和對象系統,有這 12 張圖就夠了!

作者 | 程序員歷小冰責編 | 林瑟Redis 是一個開源的 key-value 存儲系統,它使用六種底層數據結構構建了包含字符串對象、列表對象、哈希對象、集合對象和有序集合對象的對象系統。 今天我們就通過 12 張圖來全面了解一下它的數據結構和對象系統的實現原理。01數據結…

python煙花表白_python炫酷煙花表白源代碼

詳細內容天天敲代碼的朋友,有沒有想過代碼也可以變得很酷炫又浪漫?今天就教大家用Python模擬出綻放的煙花,工作之余也可以隨時讓程序為自己放一場煙花秀。python炫酷煙花表白源代碼這個有趣的小項目并不復雜,只需一點可視化技巧&a…

【面試總結】2021Java春招面試經歷

三、堆空間 基本描述 JVM啟動時創建堆區,是內存管理的核心區,通常情況下也是最大的內存空間,是被所有線程共享的,幾乎所有的對象實例都要在堆中分配內存,所以這里也是垃圾回收的重點空間。 堆棧關系 棧是JVM運行時的…

tableau地圖城市數據_Tableau 地圖 | 無法識別的城市

Tableau自帶的地圖功能很強大,也很簡單只要雙擊具有地理位置角色的字段,即可生成地圖不過有的時候在你部署地圖的時候總會發現有些城市或地名無法識別,提示如下:這篇post就來簡單聊聊為啥今天直說處理方法,不談后臺原理…

【高級Java架構師系統學習】最新Java高級面試題匯

性能調優 影響MySQLServer 性能的相關因素 商業需求對性能的影響系統架構及實現對性能的影響Query語句對系統性能的影響Schema設計對系統的性能影響硬件環境對系統性能的影響 MySQL 數據庫鎖定機制 MySQL鎖定機制簡介各種鎖定機制分析合理利用鎖機制優化MySQL MySQL數據庫Qu…

vue 安裝指定版本swiper_Vue中的runtime-only和runtime-compiler

在我們使用vue-cli的時候,會提示你安裝的版本可以看到有兩種版本:Routime Only和Runtime Compiler版本1.Runtime Only - 代碼中不可以有任何template 性能更高在該版本下,通常需要借助如webpack的vue-loader發工具把.vue文件編譯成js因為是在…

一文搞懂JVM架構:入職3個月的Java程序員面臨轉正

Java基礎 1.JAVA 中的幾種數據類型是什么,各自占用多少字節。 2.String 類能被繼承嗎,為什么。 3. 兩個對象的 hashCode() 相同,則 equals() 也一定為 true,對嗎? 4. String 屬于基礎的數據類型嗎? 5.…

不顯示調用super_讓不懂編程的人愛上iPhone開發(2017秋iOS11+Swift4+Xcode9版)-第11篇

歡迎回到我們的iPhone開發教程系列,讓我們繼續前進吧。重新來過別害怕,哥不是讓你拋棄之前所有的源代碼,從零開始重新構建這個項目!這里說的是游戲界面里面的“Start over”按鈕。在我們的to-do清單里面曾經提到過,這個…

一文搞懂JVM架構:跳槽面試大廠被拒

正文 在實際的工作項目中, 緩存成為高并發、高性能架構的關鍵組件 ,那么Redis為什么可以作為緩存使用呢?首先可以作為緩存的兩個主要特征: 在分層系統中處于內存/CPU具有訪問性能良好,緩存數據飽和,有良好…

全局變量_Python函數中的全局變量與局部變量

# a,b變量是全局變量,在整個py文件中都可以訪問a 11b 12# 定義一個函數def first():# 這個變量是函數內部定義的變量,屬于局部變量,只能在函數中使用c "Hello"# 大括號{} 是format()函數的用法,格式化print("c {}".format(c))# 如果局部變量定義的名稱…