您好,登錄后才能下訂單哦!
這篇文章主要講解了“Hadoop集群壞境怎么搭建配置”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Hadoop集群壞境怎么搭建配置”吧!
一、硬件的選擇
首先,關于Hadoop集群環境硬件的選擇,無非就是圍繞幾個面去選擇:
1、需要搭建集群包含幾個節點(Node)?
關于這個問題,引入的要考慮的點就是需要搭建幾個Server環境,因為在分布式環境中,一個服務器(Server)就是一個節點,所以在選擇節點的問題上是需要參照參照當前集群所要應用的業務場景來決定了,當然,在分布式集群環境中節點越多所帶來的就是整個集群性能的提升,同樣也也就意味著帶來了成本的增高。
但是,關于Hadoop集群有一個最低的節點量供大家參考。
首先,在一個Hadoop集群環境中,NameNode,SecondaryNameNode和DataNode是需要分配不同的節點上的,所以至少有三個節點來當然這些角色。這也就意味至少需要有三臺服務器。當然,在Hadoop運行作業完成的時候,還需要另外一個角色History Server來記錄歷史程序的運行情況,建議是將這個角色用獨立的一臺服務器來運行。
所以,在一個最簡單的Hadoop分布式集群中至少需要三臺服務器來構建:
第一臺用來記錄所有的數據分布情況,運行的進程就是NameNode
第二臺用來備份所有數據分布情況,畢竟當前面的那臺服務器宕機的時候,還可以通過該服務器來恢復數據。所以,該服務器運行的程序就是SecondaryNameNode
第三臺用來存儲實際的數據,運行的進程就是DataNode
第四臺是可選的服務器用來記錄應用程序歷史的運行狀況。運行的程序就是History Server了。
2、集群環境中各個服務里該如何選擇配置?
其實這個問題就是配置選型的問題,關于配置無非就是內存、CPU、存儲等如何選擇,當然,在公司預算允許的情況下,配置越高越好,關于這些個問題在搭建Hadoop環境的時候,需要從以下幾個點來考慮。
首先,關于集群中的幾個節點是根據角色的劃分有側重點進行配置的,并不是要求所有的服務器都弄一樣的配置,在Hadoop集群環境中,最重要的就是NameNode運行的服務器了,因為它扮演的角色是整個集群的調度和協調工作,當然在這個角色中還有一個最重要的進程是資源管理(ResourceManager),它才是真正的協調整個集群中每個節點的運行。所以這個服務器的配置要高于其它節點。
其次,在Hadoop集群運行的過程是需要將所有的數據分布記錄拉入到內存中的,所以這就意味著當整個集群的數據越來越大,我們知道在大數據的環境下,幾TB級別或者PB級別的數據是很常見的,這也就意味這個數據分布記錄也要增大,所以需要加大內存,這里有一個參考依據:
一般1GB內存可以管理百萬個block文件。
舉例:bolck為128M,副本為3個,200臺集群,4TB數據,需要的Namenode內存為:200(服務器數)x 4194304MB(4TB數據) / (128MB x 3)=2184533.33個文件=2.18百萬個文件,所以內存值也就接近于2.2G了。
再次,因為這里有有一臺機器用來做備份,所以secondary namenode需要的內存與namenode需要的內存大概一樣,然后就是從節點的各臺服務器需要的內存量了,這里也有一個參考依據:
首先計算當前CPU的虛擬核數(Vcore):虛擬核數(Vcore)=CPU個數*單CPU合數*HT(超線程數)
然后根據虛擬核數配置內存容量:內存容量=虛擬核數(Vcore)*2GB(至少2GB)
關于CPU的選擇,因為Hadoop為分布式計算運算,所以其運行模型基本是密集型并行計算,所以推薦的CPU要盡量選擇多路多核的,條件允許的話每個節點都要如此。
然后,在一個大型的分布式集群中,還需要注意的是,因為分布式的計算,需要各個節點間進行頻繁的通信和IO操作,這也就意味對網絡帶寬有要求,所以推薦使用千兆以上的網卡,條件允許可以萬兆網卡,交換機亦如此。
3、集群環境中每個節點存儲大小如何配置?需要引入什么raid?
首先先來談一下關于raid的問題,之前因為raid的目的就是為了防止數據丟失而做的存儲層數據備份機制,現在最佳的使用場景是單臺服務這種高風險的配置,然后再分布式集群中,所存儲的數據是分布式存放到各個數據節點上的(DataNode),并且Hadoop應用已經默認實現了數據的備份,所以raid在分布式系統中是沒有多大作用的,然并卵!其實,究其原理很簡單,集群中單節點的數據備份在出現意外宕機的情況下基本是無法恢復出有效數據的。
然后我們再來分析一下關于存儲的問題,可以明確一點的就是:數據量的大小決定了集群整體的存儲大小,同樣也決定了整個集群的規模!
來舉個例子:
假如我們當前可以確定的存量數據量有1TB,然后每天大約增長10GB的數據量,那么當前集群未來一年之內集群存儲大小計算方式為:
(1TB+10GB*365天)*3*1.3=17.8TB
可以看出,這個集群的規模一年就得大約需要18T的存儲空間,這里解釋一下計算的公式,括號外面的乘以3指的是當前數據為了防止丟失自己所做的冗余備份,默認是一份數據拷貝三份存儲于不同的服務器上,然后后面乘以1.3的目的是作為節點的操作系統或者計算的臨時結果預留空間。
然后,我們接著計算節點數:
節點數(Nodes)=18TB/2TB=9
上面的計算公式除以2TB的假設是每個節點有2TB的存儲空間,這里根據集群的存儲大小可以計算出整個集群的數據存儲節點數:9個。
所以需要的總結點數:總結點數=9(數據存儲節點)+2(NameNode和SecondaryNameNode)=11個。
到此,就需要搭建11個服務器來運行集群了。
二、軟件的選擇
關于Hadoop集群環境軟件的選擇,無非就是圍繞這個幾個軟件產品去選擇:OS操作系統,Hadoop版本,JDK版本,Hive版本、MySQL版本等。
1、操作系統該選擇哪款?
Hadoop產品是由Java語言開發的,所以推薦的是Linux操作系統,理由很簡單開源免費,就一個免費這個理由就足以PK掉微軟的操作系統,因為我們知道集群環境是需要很多臺服務器的,所以如果用微軟的服務器成本會高很多,當然,其實在大數據開源的產品中基本找不到微軟的影子,所以從這一點來講,微軟已經拉下了很多,甚至已經在落寞!
所以,在開源的Linux操作系統中又是百花齊放,各種版本,各位朋友可以自行網上查閱各個版本的區別和優越性,這里我就直接告訴大家我推薦的操作系統CentOS.
如下照抄自博友蝦皮的簡介:
CentOS是一個基于Red Hat 企業級 Linux 提供的可自由使用的源代碼企業級的 Linux 發行版本。每個版本的 CentOS 都會獲得七年的支持(通過安全更新方式)。新版本的 CentOS 每兩年發行一次,而每個版本的 CentOS 會定期(大概每六個月)更新一次,以便支持新的硬件。這樣,建立一個安全、低維護、穩定、高預測性、高重復性的 Linux 環境。
CentOS特點
可以把CentOS理解為Red Hat AS系列!它完全就是對Red Hat AS進行改進后發布的!各種操作、使用和RED HAT沒有區別!
CentOS完全免費,不存在RED HAT AS4需要序列號的問題。
CentOS獨有的yum命令支持在線升級,可以即時更新系統,不像RED HAT那樣需要花錢購買支持服務!
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版本選擇的問題?
關于Hadoop歷史版本變遷過程中,出現了很多版本,有興趣的童鞋可以自行查閱,這里我只從大的方向把Hadoop版本劈成2個,這里暫稱Hadoop1.0和Hadoop2.0,截止我寫本文章的時候,Hadoop2.0版本已經相當穩定,并且逐漸在企業應用中大面積推廣而來,關于這兩個版本我就不去過多的介紹,網友可以自行查閱,或者參考我之前的一篇關于兩個版本的架構比較。
所以,本系列內容我應用的版本就是基于Hadoop2.0這個系列來進行講解。
而關于Jdk版本的問題是和Hadoop的版本相匹配的,其它相關產品后續我們會分析,當然也大家可以自行從Hadoop官網上去查詢,這里不贅述。
操作系統
為了方便演示,我會使用虛擬機跟大家講解,當然,有興趣的童鞋也可以自行下載虛擬機跟隨我一步步來搭建這個平臺,這里我選擇的虛擬機為:VMware。
大家網上下載安裝就可以了,過程很簡單,沒啥需要講解的,當然你的PC配置是需要好一點的,至少8G以上,要不基本玩轉不了虛擬機。
安裝完成就是上面的樣子了,相關資料大家網上查閱吧,這里就不在贅述。
然后,我們進行Liunx操作系統的安裝,上面已經說過,我們選擇的是CentOS操作,所以需要到CentOS官網進行下載安裝就行,記住了:不用怕,不花錢!
這里在選擇CentOS版本的時候需要記住了,如果不是公司要求,盡量不要選擇最新的,而是要選擇最穩定的,原因很簡單,誰也不要當新版本的小白鼠。
然后選擇要下載的穩定版本,這里我推薦選擇CentOS6.8 64位操作系統。
然后,點擊找到下載包下載就行。
在安裝各個節點之前,我們需要提前準備好相關節點的配置信息,比如計算機名、IP地址、安裝角色、超級管理員賬戶信息,內存分配、存儲等,所以我列舉了一個表格供大家參考:
機器名稱 | 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! |
大家可以看到,我這里先提前規劃處四臺服務器用來搭建Hadoop集群,然后分別為其分配了機器名稱、IP,IP需要設置為統一網段,然后為了搭建我們的Hadoop集群,我們需要為所有集群中的節點創建一個獨立的用戶,這里我起了一個名字,就叫做Hadoop,當然為了方便記憶我統一的將所有的密碼設置為password01!.
當然,這里我們提前配置好內存和存儲,因為我們知道我們使用的虛擬機這些信息是可以根據使用的情況,進行動態調整的。
另外,我又搭建了兩臺Ubuntu的服務器來單獨安裝MySQLServer,搭建了一個主從模式,我們知道Ubuntu是一個界面友好的操作系統,這里和Hadoop集群分離的目的是因為Mysql數據庫是比較占內存資源的,所以我們單獨機器來安裝,當然,MySQL并不是Hadoop集群所需要的,兩者沒有必然的關系,這里搭建它的目的就為了后續安裝Hive來分析數據應用的,并且我們可以在這個機器里進行開發調試,當然Window平臺也可以,畢竟我們使用Windows平臺是最熟練的。
感謝各位的閱讀,以上就是“Hadoop集群壞境怎么搭建配置”的內容了,經過本文的學習后,相信大家對Hadoop集群壞境怎么搭建配置這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。