這篇文章主要講解了“Hadoop集群壞境怎么搭建配置”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Hadoop集群壞境怎么搭建配置”吧!
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),昭陽企業(yè)網(wǎng)站建設(shè),昭陽品牌網(wǎng)站建設(shè),網(wǎng)站定制,昭陽網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,昭陽網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。一、硬件的選擇
首先,關(guān)于Hadoop集群環(huán)境硬件的選擇,無非就是圍繞幾個面去選擇:
1、需要搭建集群包含幾個節(jié)點(diǎn)(Node)?
關(guān)于這個問題,引入的要考慮的點(diǎn)就是需要搭建幾個Server環(huán)境,因為在分布式環(huán)境中,一個服務(wù)器(Server)就是一個節(jié)點(diǎn),所以在選擇節(jié)點(diǎn)的問題上是需要參照參照當(dāng)前集群所要應(yīng)用的業(yè)務(wù)場景來決定了,當(dāng)然,在分布式集群環(huán)境中節(jié)點(diǎn)越多所帶來的就是整個集群性能的提升,同樣也也就意味著帶來了成本的增高。
但是,關(guān)于Hadoop集群有一個最低的節(jié)點(diǎn)量供大家參考。
首先,在一個Hadoop集群環(huán)境中,NameNode,SecondaryNameNode和DataNode是需要分配不同的節(jié)點(diǎn)上的,所以至少有三個節(jié)點(diǎn)來當(dāng)然這些角色。這也就意味至少需要有三臺服務(wù)器。當(dāng)然,在Hadoop運(yùn)行作業(yè)完成的時候,還需要另外一個角色History Server來記錄歷史程序的運(yùn)行情況,建議是將這個角色用獨(dú)立的一臺服務(wù)器來運(yùn)行。
所以,在一個最簡單的Hadoop分布式集群中至少需要三臺服務(wù)器來構(gòu)建:
第一臺用來記錄所有的數(shù)據(jù)分布情況,運(yùn)行的進(jìn)程就是NameNode
第二臺用來備份所有數(shù)據(jù)分布情況,畢竟當(dāng)前面的那臺服務(wù)器宕機(jī)的時候,還可以通過該服務(wù)器來恢復(fù)數(shù)據(jù)。所以,該服務(wù)器運(yùn)行的程序就是SecondaryNameNode
第三臺用來存儲實(shí)際的數(shù)據(jù),運(yùn)行的進(jìn)程就是DataNode
第四臺是可選的服務(wù)器用來記錄應(yīng)用程序歷史的運(yùn)行狀況。運(yùn)行的程序就是History Server了。
2、集群環(huán)境中各個服務(wù)里該如何選擇配置?
其實(shí)這個問題就是配置選型的問題,關(guān)于配置無非就是內(nèi)存、CPU、存儲等如何選擇,當(dāng)然,在公司預(yù)算允許的情況下,配置越高越好,關(guān)于這些個問題在搭建Hadoop環(huán)境的時候,需要從以下幾個點(diǎn)來考慮。
首先,關(guān)于集群中的幾個節(jié)點(diǎn)是根據(jù)角色的劃分有側(cè)重點(diǎn)進(jìn)行配置的,并不是要求所有的服務(wù)器都弄一樣的配置,在Hadoop集群環(huán)境中,最重要的就是NameNode運(yùn)行的服務(wù)器了,因為它扮演的角色是整個集群的調(diào)度和協(xié)調(diào)工作,當(dāng)然在這個角色中還有一個最重要的進(jìn)程是資源管理(ResourceManager),它才是真正的協(xié)調(diào)整個集群中每個節(jié)點(diǎn)的運(yùn)行。所以這個服務(wù)器的配置要高于其它節(jié)點(diǎn)。
其次,在Hadoop集群運(yùn)行的過程是需要將所有的數(shù)據(jù)分布記錄拉入到內(nèi)存中的,所以這就意味著當(dāng)整個集群的數(shù)據(jù)越來越大,我們知道在大數(shù)據(jù)的環(huán)境下,幾TB級別或者PB級別的數(shù)據(jù)是很常見的,這也就意味這個數(shù)據(jù)分布記錄也要增大,所以需要加大內(nèi)存,這里有一個參考依據(jù):
一般1GB內(nèi)存可以管理百萬個block文件。
舉例:bolck為128M,副本為3個,200臺集群,4TB數(shù)據(jù),需要的Namenode內(nèi)存為:200(服務(wù)器數(shù))x 4194304MB(4TB數(shù)據(jù)) / (128MB x 3)=2184533.33個文件=2.18百萬個文件,所以內(nèi)存值也就接近于2.2G了。
再次,因為這里有有一臺機(jī)器用來做備份,所以secondary namenode需要的內(nèi)存與namenode需要的內(nèi)存大概一樣,然后就是從節(jié)點(diǎn)的各臺服務(wù)器需要的內(nèi)存量了,這里也有一個參考依據(jù):
首先計算當(dāng)前CPU的虛擬核數(shù)(Vcore):虛擬核數(shù)(Vcore)=CPU個數(shù)*單CPU合數(shù)*HT(超線程數(shù))
然后根據(jù)虛擬核數(shù)配置內(nèi)存容量:內(nèi)存容量=虛擬核數(shù)(Vcore)*2GB(至少2GB)
關(guān)于CPU的選擇,因為Hadoop為分布式計算運(yùn)算,所以其運(yùn)行模型基本是密集型并行計算,所以推薦的CPU要盡量選擇多路多核的,條件允許的話每個節(jié)點(diǎn)都要如此。
然后,在一個大型的分布式集群中,還需要注意的是,因為分布式的計算,需要各個節(jié)點(diǎn)間進(jìn)行頻繁的通信和IO操作,這也就意味對網(wǎng)絡(luò)帶寬有要求,所以推薦使用千兆以上的網(wǎng)卡,條件允許可以萬兆網(wǎng)卡,交換機(jī)亦如此。
3、集群環(huán)境中每個節(jié)點(diǎn)存儲大小如何配置?需要引入什么raid?
首先先來談一下關(guān)于raid的問題,之前因為raid的目的就是為了防止數(shù)據(jù)丟失而做的存儲層數(shù)據(jù)備份機(jī)制,現(xiàn)在最佳的使用場景是單臺服務(wù)這種高風(fēng)險的配置,然后再分布式集群中,所存儲的數(shù)據(jù)是分布式存放到各個數(shù)據(jù)節(jié)點(diǎn)上的(DataNode),并且Hadoop應(yīng)用已經(jīng)默認(rèn)實(shí)現(xiàn)了數(shù)據(jù)的備份,所以raid在分布式系統(tǒng)中是沒有多大作用的,然并卵!其實(shí),究其原理很簡單,集群中單節(jié)點(diǎn)的數(shù)據(jù)備份在出現(xiàn)意外宕機(jī)的情況下基本是無法恢復(fù)出有效數(shù)據(jù)的。
然后我們再來分析一下關(guān)于存儲的問題,可以明確一點(diǎn)的就是:數(shù)據(jù)量的大小決定了集群整體的存儲大小,同樣也決定了整個集群的規(guī)模!
來舉個例子:
假如我們當(dāng)前可以確定的存量數(shù)據(jù)量有1TB,然后每天大約增長10GB的數(shù)據(jù)量,那么當(dāng)前集群未來一年之內(nèi)集群存儲大小計算方式為:
(1TB+10GB*365天)*3*1.3=17.8TB
可以看出,這個集群的規(guī)模一年就得大約需要18T的存儲空間,這里解釋一下計算的公式,括號外面的乘以3指的是當(dāng)前數(shù)據(jù)為了防止丟失自己所做的冗余備份,默認(rèn)是一份數(shù)據(jù)拷貝三份存儲于不同的服務(wù)器上,然后后面乘以1.3的目的是作為節(jié)點(diǎn)的操作系統(tǒng)或者計算的臨時結(jié)果預(yù)留空間。
然后,我們接著計算節(jié)點(diǎn)數(shù):
節(jié)點(diǎn)數(shù)(Nodes)=18TB/2TB=9
上面的計算公式除以2TB的假設(shè)是每個節(jié)點(diǎn)有2TB的存儲空間,這里根據(jù)集群的存儲大小可以計算出整個集群的數(shù)據(jù)存儲節(jié)點(diǎn)數(shù):9個。
所以需要的總結(jié)點(diǎn)數(shù):總結(jié)點(diǎn)數(shù)=9(數(shù)據(jù)存儲節(jié)點(diǎn))+2(NameNode和SecondaryNameNode)=11個。
到此,就需要搭建11個服務(wù)器來運(yùn)行集群了。
二、軟件的選擇
關(guān)于Hadoop集群環(huán)境軟件的選擇,無非就是圍繞這個幾個軟件產(chǎn)品去選擇:OS操作系統(tǒng),Hadoop版本,JDK版本,Hive版本、MySQL版本等。
1、操作系統(tǒng)該選擇哪款?
Hadoop產(chǎn)品是由Java語言開發(fā)的,所以推薦的是Linux操作系統(tǒng),理由很簡單開源免費(fèi),就一個免費(fèi)這個理由就足以PK掉微軟的操作系統(tǒng),因為我們知道集群環(huán)境是需要很多臺服務(wù)器的,所以如果用微軟的服務(wù)器成本會高很多,當(dāng)然,其實(shí)在大數(shù)據(jù)開源的產(chǎn)品中基本找不到微軟的影子,所以從這一點(diǎn)來講,微軟已經(jīng)拉下了很多,甚至已經(jīng)在落寞!
所以,在開源的Linux操作系統(tǒng)中又是百花齊放,各種版本,各位朋友可以自行網(wǎng)上查閱各個版本的區(qū)別和優(yōu)越性,這里我就直接告訴大家我推薦的操作系統(tǒng)CentOS.
如下照抄自博友蝦皮的簡介:
CentOS是一個基于Red Hat 企業(yè)級 Linux 提供的可自由使用的源代碼企業(yè)級的 Linux 發(fā)行版本。每個版本的 CentOS 都會獲得七年的支持(通過安全更新方式)。新版本的 CentOS 每兩年發(fā)行一次,而每個版本的 CentOS 會定期(大概每六個月)更新一次,以便支持新的硬件。這樣,建立一個安全、低維護(hù)、穩(wěn)定、高預(yù)測性、高重復(fù)性的 Linux 環(huán)境。
CentOS特點(diǎn)
可以把CentOS理解為Red Hat AS系列!它完全就是對Red Hat AS進(jìn)行改進(jìn)后發(fā)布的!各種操作、使用和RED HAT沒有區(qū)別!
CentOS完全免費(fèi),不存在RED HAT AS4需要序列號的問題。
CentOS獨(dú)有的yum命令支持在線升級,可以即時更新系統(tǒng),不像RED HAT那樣需要花錢購買支持服務(wù)!
CentOS修正了許多RED HAT AS的BUG!
CentOS版本說明: CentOS3.1 等同于 RED HAT AS3 Update1 CentOS3.4 等同于 RED HAT AS3 Update4 CentOS4.0 等同于 RED HAT AS4。
好了,我相信以上這些理由足以征服你了。
2、Hadoop版本選擇的問題?
關(guān)于Hadoop歷史版本變遷過程中,出現(xiàn)了很多版本,有興趣的童鞋可以自行查閱,這里我只從大的方向把Hadoop版本劈成2個,這里暫稱Hadoop1.0和Hadoop2.0,截止我寫本文章的時候,Hadoop2.0版本已經(jīng)相當(dāng)穩(wěn)定,并且逐漸在企業(yè)應(yīng)用中大面積推廣而來,關(guān)于這兩個版本我就不去過多的介紹,網(wǎng)友可以自行查閱,或者參考我之前的一篇關(guān)于兩個版本的架構(gòu)比較。
所以,本系列內(nèi)容我應(yīng)用的版本就是基于Hadoop2.0這個系列來進(jìn)行講解。
而關(guān)于Jdk版本的問題是和Hadoop的版本相匹配的,其它相關(guān)產(chǎn)品后續(xù)我們會分析,當(dāng)然也大家可以自行從Hadoop官網(wǎng)上去查詢,這里不贅述。
操作系統(tǒng)
為了方便演示,我會使用虛擬機(jī)跟大家講解,當(dāng)然,有興趣的童鞋也可以自行下載虛擬機(jī)跟隨我一步步來搭建這個平臺,這里我選擇的虛擬機(jī)為:VMware。
大家網(wǎng)上下載安裝就可以了,過程很簡單,沒啥需要講解的,當(dāng)然你的PC配置是需要好一點(diǎn)的,至少8G以上,要不基本玩轉(zhuǎn)不了虛擬機(jī)。
安裝完成就是上面的樣子了,相關(guān)資料大家網(wǎng)上查閱吧,這里就不在贅述。
然后,我們進(jìn)行Liunx操作系統(tǒng)的安裝,上面已經(jīng)說過,我們選擇的是CentOS操作,所以需要到CentOS官網(wǎng)進(jìn)行下載安裝就行,記住了:不用怕,不花錢!
這里在選擇CentOS版本的時候需要記住了,如果不是公司要求,盡量不要選擇最新的,而是要選擇最穩(wěn)定的,原因很簡單,誰也不要當(dāng)新版本的小白鼠。
然后選擇要下載的穩(wěn)定版本,這里我推薦選擇CentOS6.8 64位操作系統(tǒng)。
然后,點(diǎn)擊找到下載包下載就行。
在安裝各個節(jié)點(diǎn)之前,我們需要提前準(zhǔn)備好相關(guān)節(jié)點(diǎn)的配置信息,比如計算機(jī)名、IP地址、安裝角色、超級管理員賬戶信息,內(nèi)存分配、存儲等,所以我列舉了一個表格供大家參考:
機(jī)器名稱 | IP地址 | 角色 | OS | 最高管理員名稱(Name) | 最高管理員密碼(PWD) | 一般用戶名稱(Name) | 一般用戶密碼(PWD) |
Master.Hadoop | 192.168.1.50 | Master | CentOS6.8 | root | password01! | hadoop | password01! |
Salve01.Hadoop | 192.168.1.51 | Salve1 | CentOS6.8 | root | password01! | hadoop | password01! |
Salve02.Hadoop | 192.168.1.52 | Salve2 | CentOS6.8 | root | password01! | hadoop | password01! |
Salve03.Hadoop | 192.168.1.53 | Salve3 | CentOS6.8 | root | password01! | hadoop | password01! |
MySQLServer01 | 102.168.1.100 | MySQLServer | Ubuntu | root | password01! | hadoop | password01! |
MySQLServer02 | 102.168.1.101 | MySQLServer | Ubuntu | root | password01! | hadoop | password01! |
大家可以看到,我這里先提前規(guī)劃處四臺服務(wù)器用來搭建Hadoop集群,然后分別為其分配了機(jī)器名稱、IP,IP需要設(shè)置為統(tǒng)一網(wǎng)段,然后為了搭建我們的Hadoop集群,我們需要為所有集群中的節(jié)點(diǎn)創(chuàng)建一個獨(dú)立的用戶,這里我起了一個名字,就叫做Hadoop,當(dāng)然為了方便記憶我統(tǒng)一的將所有的密碼設(shè)置為password01!.
當(dāng)然,這里我們提前配置好內(nèi)存和存儲,因為我們知道我們使用的虛擬機(jī)這些信息是可以根據(jù)使用的情況,進(jìn)行動態(tài)調(diào)整的。
另外,我又搭建了兩臺Ubuntu的服務(wù)器來單獨(dú)安裝MySQLServer,搭建了一個主從模式,我們知道Ubuntu是一個界面友好的操作系統(tǒng),這里和Hadoop集群分離的目的是因為Mysql數(shù)據(jù)庫是比較占內(nèi)存資源的,所以我們單獨(dú)機(jī)器來安裝,當(dāng)然,MySQL并不是Hadoop集群所需要的,兩者沒有必然的關(guān)系,這里搭建它的目的就為了后續(xù)安裝Hive來分析數(shù)據(jù)應(yīng)用的,并且我們可以在這個機(jī)器里進(jìn)行開發(fā)調(diào)試,當(dāng)然Window平臺也可以,畢竟我們使用Windows平臺是最熟練的。
感謝各位的閱讀,以上就是“Hadoop集群壞境怎么搭建配置”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Hadoop集群壞境怎么搭建配置這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!