亚洲天堂av网_久久精品欧美一区二区三区不卡_亚洲欧美一级_欧美成人合集magnet

知名百科  > 所屬分類  >  其他科技   

Apache Hadoop

Hadoop是一個開源的分布式計算平臺,可以使用簡單的編程模型在計算機集群之間分發(fā)大規(guī)模數(shù)據(jù)。Hadoop的歷史可以追溯到2002年,當時雅虎的Doug Cutting和Mike Cafarella開始開發(fā)一個可以處理大規(guī)模數(shù)據(jù)集的系統(tǒng)。他們的開發(fā)基于Google的兩篇論文,一篇是關于Google文件系統(tǒng)(GFS),另一篇是關于MapReduce計算模型。Hadoop以前是Apache Lucene的子項目Nutch的一部分。Doug Cutting將其命名為Hadoop,以紀念他兒子的玩具大象。2006年,它被剝離出來,成為一個獨立的軟件。

Hadoop在Apache Lucene的歷史背景中解釋了其最初的設計目的:處理海量數(shù)據(jù)。早期,Hadoop主要用于處理網(wǎng)絡爬蟲的數(shù)據(jù),然后用于搜索引擎和其他應用程序。隨著時間的推移,Hadoop已經(jīng)越來越多地應用于數(shù)據(jù)倉庫、數(shù)據(jù)湖、數(shù)據(jù)分析、機器學習等領域,成為處理大數(shù)據(jù)的標準工具之一。

目錄

發(fā)展歷史 編輯本段

2002-2005:Hadoop的前身Nutch

2002年10月,Doug Cutting和Mike Cafarella創(chuàng)建了Nutch,這是一個開源網(wǎng)絡爬蟲項目。Nutch最初的設計目的是從網(wǎng)絡上收集和索引大量的web信息,用于后續(xù)的搜索和數(shù)據(jù)分析。但是,Nutch的開發(fā)需要一個可靠的分布式文件系統(tǒng)和計算模型來處理海量數(shù)據(jù),這是Hadoop的主要功能。

2003年10月,谷歌發(fā)表了一篇關于谷歌文件系統(tǒng)(GFS)的論文,這啟發(fā)了道格·卡丁和邁克·卡法雷拉將GFS的設計思想應用于Nutch。2004年,他們在Nutch中實現(xiàn)了GFS的功能,這是Hadoop分布式文件系統(tǒng)(HDFS)的前身。然后,在2004年10月,谷歌發(fā)表了MapReduce論文,該論文指導了Hadoop計算模型的設計。

2005年2月,Mike Cafarella在Nutch實現(xiàn)了MapReduce的第一個版本。同年12月,Nutch使用MapReduce和NDFS(Nutch分布式文件系統(tǒng))運行。

2006 -2010年:Hadoop成為一個獨立的項目。

2006年1月,道格·卡丁加入雅虎,雅虎提供了一個專門的團隊和資源,將Hadoop開發(fā)成一個可以在網(wǎng)絡上運行的系統(tǒng)。2月,Apache Hadoop項目正式啟動,以支持MapReduce和HDFS的獨立開發(fā)。今年4月,Apache Hadoop發(fā)布了第一個版本,Doug Cutting將其命名為Hadoop,以紀念他兒子的玩具大象。

2008年1月,Hadoop成為Apache的頂級項目。6月,Hadoop SQL框架Hive成為Hadoop的子項目。

2009年7月,Hadoop核心模塊更名為Hadoop Common。同時,MapReduce和Hadoop分布式文件系統(tǒng)(HDFS)已經(jīng)成為Hadoop項目的獨立子項目。此外,Avro和Chukwa也成為Hadoop的新子項目。

2009年8月,Hadoop創(chuàng)始人Doug Cutting加入Cloudera擔任首席架構師。他的團隊致力于推動Hadoop的商業(yè)化應用和發(fā)展。

2010年5月,幾個與Hadoop相關的項目成為Apache的頂級項目。其中,Avro和HBase脫離了Hadoop項目,成為Apache的頂級項目。Hive和Pig也脫離了Hadoop,成為獨立的Apache頂級項目。在此期間,Hadoop逐漸被越來越多的企業(yè)采用,包括雅虎、臉書和Twitter。這促進了Hadoop生態(tài)系統(tǒng)的發(fā)展,并使Hadoop成為當時最流行的大數(shù)據(jù)處理平臺之一。

2011-2012:Hadoop的快速發(fā)展

2011年10月,Apache Hadoop 0 . 20 . 205版本發(fā)布,該版本引入了Apache Hadoop安全性,使Hadoop能夠處理更多敏感數(shù)據(jù)。同年發(fā)布了Apache Hadoop 0 . 22 . 0版本,該版本加入了Hadoop Common項目,使Hadoop更加通用。

2011年12月,Apache Hadoop 1 . 0 . 0版本發(fā)布。該版本標志著Hadoop已成為真正可靠、穩(wěn)定的大數(shù)據(jù)處理平臺。同年,Cloudera發(fā)布了CDH4版本(Cloudera的發(fā)行版包括Apache Hadoop 4),該版本增加了Hadoop的許多新功能和工具,包括HBase、Zookeeper和Hue。

2012年10月,第一個Hadoop原生查詢引擎Impala加入Hadoop生態(tài)系統(tǒng)。除了技術發(fā)展之外,在此期間,Hadoop還吸引了更多企業(yè)加入Hadoop生態(tài)系統(tǒng)。例如,IBM發(fā)布了基于Hadoop的大數(shù)據(jù)處理平臺InfoSphere BigInsights。還有一些新的Hadoop發(fā)行版,如Hortonworks和MapR,它們?yōu)镠adoop的發(fā)展做出了貢獻。自2013年以來:Hadoop不斷擴展其功能并完善其生態(tài)系統(tǒng)。

2013年11月,Hadoop 2.0發(fā)布,并引入了Yarn(另一個資源談判者)資源管理器。YARN使Hadoop不再局限于MapReduce計算模型,而是將MapReduce作為一個可以在YARN上運行的應用程序。它還可以支持其他計算框架,如Spark和Storm。

2014年2月,Apache Spark成為Hadoop生態(tài)系統(tǒng)中備受關注的項目,并成為Apache基金會的頂級項目。與MapReduce相比,Spark具有更高的性能和更多的計算功能。許多企業(yè)開始將Spark集成到Hadoop生態(tài)系統(tǒng)中。

2015年4月,Hadoop 2.7發(fā)布,該版本引入了Hadoop Docker支持,使Hadoop更易于在Docker容器中部署和運行。此外,Hadoop 2.7還引入了許多新功能和改進,例如備份節(jié)點和磁盤負載平衡。

2016年4月,Apache Zeppelin成為Hadoop生態(tài)系統(tǒng)中的數(shù)據(jù)分析和可視化工具。Zeppelin提供了一個交互式Web界面,使用戶能夠輕松地分析和可視化數(shù)據(jù)。

2016年9月,Hadoop 3.0發(fā)布,其中引入了許多新功能和改進,例如支持擦除編碼、GPU加速、容器洗牌等。Hadoop 3.0還升級了YARN和HDFS,使Hadoop能夠更好地支持大規(guī)模數(shù)據(jù)處理。

2018年,Hadoop生態(tài)系統(tǒng)中的項目數(shù)量持續(xù)增加。例如,Apache Kafka已經(jīng)成為Hadoop生態(tài)系統(tǒng)中的實時流媒體平臺。此外,Apache Druid已經(jīng)成為Hadoop生態(tài)系統(tǒng)中的OLAP數(shù)據(jù)存儲和查詢引擎。

2019年3月,Hadoop 3.2發(fā)布,其中引入了許多新功能和改進,例如支持擦除編碼、GPU加速、容器洗牌等。此外,Hadoop 3.2還引入了許多新的API和工具,如S3A支持、Hadoop Ozone、Hadoop Token服務等。

2020年,Hadoop生態(tài)系統(tǒng)中的項目數(shù)量將繼續(xù)增加。例如,Apache Arrow已經(jīng)成為Hadoop生態(tài)系統(tǒng)中的跨語言數(shù)據(jù)存儲和處理框架。此外,Apache胡迪已經(jīng)成為Hadoop生態(tài)系統(tǒng)中的分布式數(shù)據(jù)湖工具。

Hadoop已經(jīng)成為大數(shù)據(jù)處理領域的重要工具之一,其生態(tài)系統(tǒng)包括許多重要項目,如Spark、Kafka、Hive等。隨著新技術和應用場景的出現(xiàn),Hadoop生態(tài)系統(tǒng)將不斷擴展和完善。

核心組件 編輯本段

Hadoop是一個用于處理大規(guī)模數(shù)據(jù)集的開源分布式計算框架。Hadoop的核心組件主要包括以下四個部分。

Hadoop分布式文件系統(tǒng)(HDFS):HDFS(Hadoop分布式文件系統(tǒng))是Hadoop生態(tài)系統(tǒng)中的一個分布式文件系統(tǒng),最初由Apache Hadoop項目開發(fā)和維護。其設計目標是支持大規(guī)模數(shù)據(jù)處理應用的存儲和處理。HDFS是基于谷歌文件系統(tǒng)(GFS)的研究成果,但在某些方面進行了優(yōu)化和改進。HDFS由兩個核心組件組成:NameNode和DataNode。NameNode是主節(jié)點,負責管理文件系統(tǒng)的命名空間、控制數(shù)據(jù)塊的復制和處理客戶端訪問請求。DataNode是存儲和提供數(shù)據(jù)塊的數(shù)據(jù)節(jié)點。HDFS中的文件被劃分為數(shù)據(jù)塊(通常大小為128 MB或256 MB),并在數(shù)據(jù)節(jié)點之間復制以提供容錯能力。每個數(shù)據(jù)塊都有多個副本(通常是三個),這些副本分布在不同的數(shù)據(jù)節(jié)點上以確保可靠性。這樣,即使某個數(shù)據(jù)節(jié)點出現(xiàn)故障,也可以從其他節(jié)點恢復數(shù)據(jù)塊。HDFS提供了多種方法來訪問存儲在其中的文件,包括Java API、命令行界面和Web界面。用戶可以使用這些界面上傳、下載、刪除和查看文件。HDFS還具有高可擴展性和高可靠性的優(yōu)勢。它可以輕松擴展到數(shù)百甚至數(shù)千臺服務器,并且可以通過塊復制來保證數(shù)據(jù)的可靠性和可用性。

Hadoop紗線:YARN是Hadoop的資源管理器,最初是作為Hadoop 2.0的新功能引入的。YARN的設計目標是將Hadoop從一個僅支持MapReduce的系統(tǒng)轉變?yōu)橐粋€通用的分布式計算平臺,從而使Hadoop可以支持多種分布式計算框架,例如Apache Spark和Apache Flink。YARN將集群資源的管理與任務的調度分離,使不同的應用程序可以共享集群資源,提高集群資源的利用率。YARN包含兩個核心組件:ResourceManager和NodeManager。ResourceManager負責管理集群資源,為不同的應用程序分配資源;NodeManager運行在每個節(jié)點上,負責啟動、停止和監(jiān)視容器(運行應用程序的進程)。在YARN中,應用程序被封裝為一個容器,這是一個虛擬化的執(zhí)行環(huán)境,其中包含應用程序的代碼、依賴關系和環(huán)境設置。YARN根據(jù)應用程序的需求為其分配容器,并根據(jù)需要動態(tài)調整容器的數(shù)量和大小。YARN提供了豐富的API和CLI接口來管理和監(jiān)控應用程序的運行狀態(tài),例如啟動、停止和查詢。此外,YARN還提供了一個Web界面,可以查看集群資源的使用情況、應用程序的運行狀態(tài)等信息。

Apache HadoopApache Hadoop

Hadoop MapReduce:MapReduce是Hadoop的數(shù)據(jù)處理框架,用于處理大規(guī)模數(shù)據(jù)集。它最初受到Google的MapReduce研究論文的啟發(fā),是Hadoop版本的核心組件之一。Hadoop MapReduce的設計目標是分布數(shù)據(jù),以便數(shù)據(jù)處理任務可以在分布式計算節(jié)點上并行執(zhí)行。Hadoop MapReduce的處理流程可以分為兩個階段:Map階段和Reduce階段。在Map階段,將輸入數(shù)據(jù)分成若干小塊,對每個小塊進行相同的計算,生成鍵值對序列作為輸出;在Reduce階段,對Map輸出的鍵值對序列進行排序和合并,并執(zhí)行相應的計算以生成最終的輸出結果。在Hadoop MapReduce中,Map和Reduce任務可以在不同的計算節(jié)點上并行執(zhí)行,從而使數(shù)據(jù)處理任務可以快速處理大規(guī)模數(shù)據(jù)集。此外,Hadoop MapReduce還提供了一種數(shù)據(jù)本地化優(yōu)化機制,即盡可能將計算任務調度到存儲相關數(shù)據(jù)的計算節(jié)點上執(zhí)行,從而減少數(shù)據(jù)傳輸?shù)拈_銷,提高處理效率。Hadoop MapReduce提供了多種API和CLI接口,如Java API和Streaming API,以支持開發(fā)人員使用他們熟悉的編程語言進行數(shù)據(jù)處理。此外,Hadoop MapReduce還提供了豐富的監(jiān)控和管理工具,例如JobTracker和TaskTracker,用于監(jiān)控和管理任務的執(zhí)行狀態(tài)以及重試失敗。

Hadoop Common:Hadoop Common是Hadoop生態(tài)系統(tǒng)中的核心模塊,它提供了Hadoop分布式計算框架中所需的基本庫和工具。它包含分布式文件系統(tǒng)(HDFS)和分布式計算框架(MapReduce)的通用代碼和工具。Hadoop Common提供了Hadoop生態(tài)系統(tǒng)中組件之間的通信和協(xié)調機制,如RPC機制、序列化和反序列化機制、安全認證機制、日志記錄和異常處理。此外,Hadoop Common還提供了一系列工具和實用程序,如命令行工具、文件系統(tǒng)操作API、Shell API等。,方便開發(fā)者使用Hadoop分布式計算框架進行數(shù)據(jù)處理和管理。Hadoop Common還提供了一些額外的組件,如ZooKeeper、Avro、Thrift等,以支持更豐富的分布式計算場景。例如,ZooKeeper用于分布式協(xié)調和鎖定,Avro和Thrift用于支持不同語言和平臺之間的數(shù)據(jù)交換。Hadoop Common還提供了豐富的配置選項和可擴展接口,以滿足不同的業(yè)務和環(huán)境需求。開發(fā)人員可以通過修改配置文件和實現(xiàn)自定義擴展點來定制Hadoop分布式計算框架的行為和性能。

生態(tài)系統(tǒng) 編輯本段

除了Hadoop本身,Hadoop生態(tài)系統(tǒng)還包括許多其他工具和技術,如Avro、Parquet、Sqoop、Hive、Pig、HBase、Spark等。這些工具可以幫助用戶更方便地使用Hadoop處理和分析數(shù)據(jù)。以下是對Hadoop生態(tài)系統(tǒng)中重要組件和技術Hive、Spark和Hbase的簡單介紹。

Hive:Hive是一個基于Hadoop的數(shù)據(jù)倉庫工具,它提供了一種類似SQL的查詢語言HiveQL,用于查詢和分析大規(guī)模數(shù)據(jù)。Hive將查詢轉換為MapReduce作業(yè)并在Hadoop集群上執(zhí)行。Hive的應用場景主要包括數(shù)據(jù)倉庫、數(shù)據(jù)分析、日志分析等領域。它可以幫助用戶快速處理和分析大規(guī)模數(shù)據(jù),從而提高數(shù)據(jù)處理的效率和準確性。

Spark:Spark是一個用于大規(guī)模數(shù)據(jù)處理的統(tǒng)一分析引擎,由加州大學伯克利分校的AMPLab開發(fā)。Spark支持基于內存的計算,可以比Hadoop MapReduce更快地處理數(shù)據(jù)。Spark可以在Hadoop、Mesos、YARN和Kubernetes等集群管理器上運行,也可以在單臺機器上運行。Spark的應用場景包括數(shù)據(jù)科學和機器學習、SQL分析和BI、存儲和基礎設施。

HBase:HBase是一個基于Apache Hadoop項目構建的分布式、面向列的開源數(shù)據(jù)庫系統(tǒng)。它支持海量數(shù)據(jù)存儲和實時讀寫操作,通常用于存儲非結構化或半結構化數(shù)據(jù),如網(wǎng)頁、日志數(shù)據(jù)、傳感器數(shù)據(jù)等。HBase適用于大規(guī)模、高速率的數(shù)據(jù)存儲場景,如實時大數(shù)據(jù)分析、Web日志處理、用戶行為分析、在線廣告等。

優(yōu)點缺點 編輯本段

優(yōu)勢

處理大規(guī)模數(shù)據(jù)集:Hadoop可以處理大規(guī)模數(shù)據(jù)集,包括海量結構化和非結構化數(shù)據(jù),并且它支持多種數(shù)據(jù)類型和格式,如文本、圖像、音頻和視頻。Hadoop可以有效地處理從數(shù)十GB到數(shù)百PB的數(shù)據(jù)集。

高可靠性:Hadoop的高可靠性是由其分布式存儲和計算模型決定的。數(shù)據(jù)在Hadoop中被劃分為許多塊并存儲在不同的計算節(jié)點上,因此即使一個節(jié)點出現(xiàn)故障,也可以在其他節(jié)點上找到數(shù)據(jù)。此外,Hadoop還具有數(shù)據(jù)冗余功能,可以在數(shù)據(jù)丟失時自動恢復數(shù)據(jù)。

高可擴展性:Hadoop的計算和存儲能力可以隨著集群規(guī)模的增加而線性擴展,因此可以輕松處理不斷增加的數(shù)據(jù)量。

高容錯性:Hadoop的高容錯性意味著當計算節(jié)點或數(shù)據(jù)節(jié)點出現(xiàn)故障時,它可以繼續(xù)運行。Hadoop的數(shù)據(jù)冗余和計算任務重試機制可以保證失效節(jié)點的任務重新分配到其他可用節(jié)點上,從而保證任務的完成和數(shù)據(jù)的可靠性。

劣勢

不適合低延遲數(shù)據(jù)訪問:HDFS是為大規(guī)模數(shù)據(jù)批處理而設計的,具有高吞吐量,但也存在高延遲。主要原因是HDFS需要將大文件分成多個塊并以分布式方式存儲,同時還需要優(yōu)化數(shù)據(jù)局部性以減少網(wǎng)絡傳輸開銷。此外,Hadoop的MapReduce模型還需要大量的數(shù)據(jù)交換和磁盤I/O,這增加了處理時間。因此,在需要實時處理的場景中,我們應該考慮使用或引入其他技術。

無法高效存儲大量小文件:Hadoop是基于HDFS的文件存儲系統(tǒng)。HDFS使用塊作為存儲數(shù)據(jù)的基本單位,每個塊的大小為64KB。如果文件未達到64KB,它將被保存為一個獨立的塊。如果有大量小于64KB的小文件,每個塊將無法完全存儲,從而導致大量空間浪費。

不支持多用戶寫入和任意修改文件:Hadoop目前不支持多用戶并發(fā)寫入和隨機修改同一文件的功能。相反,它只允許一個文件只有一個寫入者,并且只允許對文件進行追加,即新寫入的數(shù)據(jù)將添加到文件的末尾。這種方法與傳統(tǒng)的關系數(shù)據(jù)庫不同,因為Hadoop的設計目標是高吞吐量和數(shù)據(jù)處理能力而不是實時數(shù)據(jù)訪問。

應用場景 編輯本段

搜索引擎:搜索引擎需要處理網(wǎng)頁、圖片和視頻等數(shù)據(jù),并對其進行存儲、索引和分析。Hadoop可以幫助搜索引擎公司處理這些數(shù)據(jù),提高搜索引擎的響應速度和搜索質量。2007年,百度開始使用Hadoop進行離線處理。

社交網(wǎng)絡:社交網(wǎng)絡需要處理用戶上傳的文本、圖片和視頻等數(shù)據(jù),同時需要執(zhí)行用戶行為分析和廣告推薦等任務。Hadoop可以幫助社交網(wǎng)絡公司處理這些數(shù)據(jù),提高社交網(wǎng)絡的運營效率和用戶體驗。例如,臉書使用Hadoop進行數(shù)據(jù)處理和分析,并推出了數(shù)據(jù)倉庫工具Hive。

電子商務/電子商務:電子商務需要處理大量的用戶數(shù)據(jù)、訂單數(shù)據(jù)、商品數(shù)據(jù)等。,同時它需要執(zhí)行數(shù)據(jù)分析和推薦系統(tǒng)等任務。Hadoop可以幫助電子商務公司處理這些數(shù)據(jù)并進行實時分析,以便更好地了解用戶行為并提供個性化服務。2008年,淘寶開始研究基于Hadoop的系統(tǒng)“天梯”,并將其用于處理電子商務相關數(shù)據(jù)。

在線廣告:在線廣告需要處理大量的廣告數(shù)據(jù)和用戶數(shù)據(jù),同時需要實時競價、定位和投放。Hadoop可以幫助在線廣告公司處理這些數(shù)據(jù),以便更好地了解用戶行為并提供準確的廣告。Hadoop起源于雅虎!,美國著名的互聯(lián)網(wǎng)門戶網(wǎng)站。

附件列表


0

詞條內容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學等領域),建議您咨詢相關領域專業(yè)人士。

如果您認為本詞條還有待完善,請 編輯

上一篇 DP數(shù)字接口標準    下一篇 搜狐體育

標簽

同義詞

暫無同義詞
主站蜘蛛池模板: 安溪县| 梅河口市| 奎屯市| 伊吾县| 伊吾县| 同江市| 兰考县| 梅河口市| 龙陵县| 宜宾县| 扎鲁特旗| 平度市| 镇巴县| 子长县| 湄潭县| 昌吉市| 闽侯县| 鹤峰县| 两当县| 阿合奇县| 潼南县| 雷州市| 江口县| 潜山县| 阿鲁科尔沁旗| 穆棱市| 科尔| 邢台市| 合肥市| 什邡市| 封丘县| 应用必备| 自贡市| 教育| 澄迈县| 庆阳市| 固原市| 车致| 扎囊县| 丽水市| 彭水|