1. 程式人生 > >大資料的Hadoop叢集環境節點數設定

大資料的Hadoop叢集環境節點數設定

關於hadoop叢集的硬體資源

大資料是當下最火熱的名詞,但真的大資料落地可行性方案估計更多也就是看幾張報表,寫幾個T-SQL語句罷了,然後開始炒作我們xxx專案利用大資料技術……如是等等。這樣才能跟上時代趕上潮流,自己戴上大資料的帽子。在資本市場宣揚一番,得到更多的關注而已。

其實,大資料的概念或者是技術架構並沒有最終的定論,各方說法都有爭議並且持續存在著。而大多數真正可以落地的技術方案估計就是hadoop為核心的一些開源分散式解決方案,以及跟hadoop相關的或者配套的凱源系統,例如:spark/hue/sqoop/hive等等。

敢說自己有大資料的產品,其實都應該有著強大的技術團隊背景,所以,下面的內容,僅對一些實際的技術實施點做些描述,請不要過分吐槽。

想到搭建一個大資料或者說hadoop叢集環境,那麼我們還需要做點技術準備,首先我們要清楚,hadoop同樣是有三種形式,即單機環境,模擬分散式環境(說法不一),完全分散式環境。其實,前兩種環境大多是初學者練手,或是開發階段,因為沒有太多的硬體資源,所以做不到完全分散式環境的部署。也就是說只要我們弄清楚完全分散式環境的搭建,也就是通常所說的叢集式搭建,就可以了。

搭建叢集環境勢必要選擇合適的伺服器硬體

那麼我們如何選擇硬體資源呢,也許要為公司省電錢哦。不要著急,無外乎幾個要素。

第一,我們預期的叢集有多少個節點(node)

這個點是我們需要認真考慮的,當然節點越多效能越好,但是我們的專案到底需要多少,要根據實際需求,這是最大的硬體成本投入。理論上講,一個hadoop叢集中NameNode/SecondaryNameNode/DataNode需要單獨分配節點,所以至少需要三臺伺服器來支撐。

第二,伺服器的硬體配置如何選擇

直白的說伺服器和電腦一樣,主要幾個引數cpu,記憶體,硬碟。(就是都會貴一些)

當然是越高越好,這個不用解釋。

我們就按照三個節點來設計,那麼三個節點都在負責什麼事情,就變的重要。

大資料叢集需要各個節點間頻繁的資料交換,所以千兆網絡卡,交換機很重要哦。

還有,上面提到的三個節點很重要的是namenode所在的伺服器,它將調動協調整體叢集進行工作。這個伺服器會有一個程序resourcemanager會很消耗資源,所以,如果資金有限,先保證這個節點伺服器的硬體資源。另外,儲存資源,根據預估的資料量動態的採購吧,但要注意的是secondary namenode與namenode兩臺節點伺服器的儲存應該是接近的,因為有一臺機器用來做備份的。

第三,就是叢集伺服器節點數量

例如,儲存量如何預計,下面給出一個例子,如果有偏差不要對號入座。

我們假設,現在的業務資料為10Tb,那麼我們預計每天增長10G,那麼我們應該預計一年後,資料量的大小需求是(10Tb+10G*365天)*3*2=81Tb,乘以3是考慮備份的需求量,乘以2是為了各個節點的系統運算空間。

如果我們再假設,我們每個節點的儲存空間為10Tb,那我們自少需要81/10即9臺用於儲存的節點伺服器。

那麼這個叢集為了滿足年底的需求,至少需要9+2(NameNode和SecondaryNameNode)=11臺伺服器才能滿足。

第四,軟體的選擇

說完硬體,就該輪到hadoop軟體的選擇,例如:作業系統,JDK版本,MySQL,Hive版本。