這篇文章主要介紹“什么是Hadoop”,在日常操作中,相信很多人在什么是Hadoop問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”什么是Hadoop”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、做網(wǎng)站、海港網(wǎng)絡(luò)推廣、小程序定制開發(fā)、海港網(wǎng)絡(luò)營銷、海港企業(yè)策劃、海港品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供海港建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
2011年的時候我們在百度搜索Hadoop相關(guān)的問題每天只有零星幾個,2015年再去百度搜索Hadoop已經(jīng)有800多萬個問題,而如今已然已經(jīng)過億了,Hadoop已成為大數(shù)據(jù)必備的基礎(chǔ)設(shè)施了。Hadoop被公認是一套行業(yè)大數(shù)據(jù)標準開源軟件,在分布式環(huán)境下提供了海量數(shù)據(jù)的處理能力。幾乎所有主流廠商都圍繞Hadoop開發(fā)工具、開源軟件、商業(yè)化工具和技術(shù)服務(wù)。近年大型IT公司,如EMC、Microsoft、Intel、Teradata、Cisco都明顯增加了Hadoop方面的投入。那么到底什么是Hadoop?它有什么作用?它的基礎(chǔ)架構(gòu)是怎么樣的?今天就Hadoop的這些基本概念來做一次簡單的梳理。
一、Hadoop是什么?
Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu), 是一個存儲系統(tǒng)+計算框架的軟件框架。主要解決海量數(shù)據(jù)存儲與計算的問題,是大數(shù)據(jù)技術(shù)中的基石。Hadoop以一種可靠、高效、可伸縮的方式進行數(shù)據(jù)處理,用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序,用戶可以輕松地在Hadoop上開發(fā)和運行處理海量數(shù)據(jù)的應(yīng)用程序。
二、Hadoop能解決什么問題
1、海量數(shù)據(jù)存儲
HDFS有高容錯性的特點,并且設(shè)計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(High throughput)來訪問數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序,它由n臺運行著DataNode的機器組成和1臺(另外一個standby)運行NameNode進程一起構(gòu)成。每個DataNode 管理一部分數(shù)據(jù),然后NameNode負責(zé)管理整個HDFS 集群的信息(存儲元數(shù)據(jù))。
2、資源管理,調(diào)度和分配
Apache Hadoop YARN(Yet Another Resource Negotiator,另一種資源協(xié)調(diào)者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統(tǒng)和調(diào)度平臺,可為上層應(yīng)用提供統(tǒng) 一的資源管理和調(diào)度,它的引入為集群在利用率、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來了巨 大好處。
三、Hadoop組件架構(gòu)是什么樣的
看過了Hadoop 的基本介紹之后。我們來了解HDFS 和 YARN的核心架構(gòu)和原理,先上HDFS框架圖:
看完上面的圖之后,先來思考幾個問題:
1、元數(shù)據(jù)信息是什么,NameNode是如何維護元數(shù)據(jù)的,元數(shù)據(jù)信息如何保障一致性?
NameNode維護了HDFS 集群的元數(shù)據(jù)信息,包括文件的目錄樹,每個文件對應(yīng)的數(shù)據(jù)塊列表,權(quán)限設(shè)置,副本數(shù)等等。
元數(shù)據(jù)信息存儲在內(nèi)存里,那么NameNode異常宕機情況下咋辦?
NameNode對元數(shù)據(jù)的修改包含兩個部分
內(nèi)存數(shù)據(jù)修改
修改內(nèi)存之后寫一條EditLog
再來看兩個概念 FsImage和 EditLog:
FsImage:FsImage是NameNode內(nèi)存中元數(shù)據(jù)的鏡像文件,是元數(shù)據(jù)的一個永久性checkpoint,包含了HDFS的所有目錄和文件idnode的序列化信息,可以類比銀行的賬戶余額,只有簡單的信息。
EditLog:EditLog是用于銜接內(nèi)存元數(shù)據(jù)和FsImage之間的操作日志,保存了自最后一次檢查點之后,所有針對HDFS文件系統(tǒng)的操作,比如增加文件、重命名文件、刪除目錄等等,可以類比銀行的賬戶流水,包括每一筆的記錄,如果日積月累,流水信息可以非常大。
那么如果Editlog變的非常大之后,宕機之后需要讀取Editlog進行恢復(fù)元數(shù)據(jù),這是一個非常慢點過程。這個時候該StandbyNameNode 節(jié)點上場了。Standby 節(jié)點從JournalNode集合拉取Editlog,并定時將Editlog合并成FsImage. FsImage是一份合并之后的存量數(shù)據(jù)信息。同時將FsImage 上傳到ActiveNode節(jié)點。
2、NameNode Active 和 standby 之間是如何切換并始終保持一個ActiveNode?
我們可以在上面的HDFS框架圖中看到,鏈接ZK集群和NameNode的組件ZKFC
1、ZKFC 監(jiān)控NameNode的監(jiān)控狀態(tài)
2、ZKFC 利用ZK提供的主備節(jié)點選舉來切換
3、通知和修改NameNode的狀態(tài)
4、確認元數(shù)據(jù)同步完成之后對外提供服務(wù)
再來看YARN框架圖:
上圖描述了YARN的一個任務(wù)的提交和資源分配流程,在整個過程中涉及到如下的組件:
ResourceManeger:負責(zé)所有資源的監(jiān)控、分配和管理,并處理客戶端請求,啟動和監(jiān)控AppMaster,NodeManager
NodeManager:單個節(jié)點上的資源管理和任務(wù)管理,處理ResourceManager,AppMaster 的命令
AppMaster:負責(zé)某個具體應(yīng)用程序的調(diào)度和協(xié)調(diào),為應(yīng)用程序申請資源,并對任務(wù)進行監(jiān)控
Container:YARN中的一個動態(tài)資源分配的概念,其擁有一定的內(nèi)存,核數(shù)。
一個任務(wù)提交的整體流程:
(1)Client向YARN中提交應(yīng)用程序,
其中包括ApplicationMaster程序、命令、用戶程序,資源等。
(2)ResourceManager為該應(yīng)用程序分配第一個Container,并與對應(yīng)的NodeManager通信,要求它在這個Container中啟動應(yīng)用程序的ApplicationMaster。
(3)ApplicationMaster首先向ResourceManager注冊,這樣用戶可以直接通過ResourceManager查看應(yīng)用程序的運行狀態(tài),然后它將為各個任務(wù)申請資源,并監(jiān)控它的運行狀態(tài)
(4)ApplicationMaster采用輪詢的方式通過RPC協(xié)議向ResourceManager申請和領(lǐng)取資源。
(5)一旦ApplicationMaster申請到資源后,便與對應(yīng)的NodeManager通信,要求它啟動任務(wù)。
(6)NodeManager為任務(wù)設(shè)置好運行環(huán)境(包括環(huán)境變量、Jar包、二進制程序等)后,將任務(wù)啟動命令寫到一個腳本中,并通過運行該腳本啟動任務(wù)。
(7)各個任務(wù)通過某個RPC協(xié)議向ApplicationMaster匯報自己的狀態(tài)和進度,以讓ApplicationMaster隨時掌握各個任務(wù)的運行狀態(tài),從而可以在任務(wù)失敗時重新啟動任務(wù)。在應(yīng)用程序運行過程中,用戶可隨時通過RPC向ApplicationMaster查詢應(yīng)用程序的當前運行狀態(tài)。
(8)應(yīng)用程序運行完成后,ApplicationMaster向ResourceManager注銷并關(guān)閉自己。
通過上面的內(nèi)容,可以對Hadoop 的一些基本框架有一些簡單的印象了。之后在使用的時候可以對照上面的結(jié)構(gòu)圖和Hadoop 官網(wǎng)或者社區(qū)進行深入理解。
到此,關(guān)于“什么是Hadoop”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)頁名稱:什么是Hadoop
分享網(wǎng)址:http://weahome.cn/article/pchphp.html