Hadoop集群規劃
一、Hadoop集群環境搭建概述
隨著互聯網,尤其是移動互聯網和智能移動設備的高速發展和大面積普及,數據產生的速度以及數據累積的規模已經超過了以往任何時候,所以我們正在或者已經步入了大數據時代。對于企業來說,企業所擁有的大規模數據正逐漸成為一種重要的生產要素,但是如何盤活企業海量數據資產,充分挖掘大數據背后的價值成為新的挑戰。同時也帶來了很大的機遇,通過對企業海量數據的科學分析,為精益化管理企業提供決策依據,為市場和客戶的精準化營銷提供數據支持,為公司創收提供新的動力,快速擴展市場業務,重塑企業核心競爭力,不斷地把企業打造成擁有數據驅動核心競爭力的創新型企業。
(一)如何實現上述目標呢?
首先,企業大數據平臺的建設和運營無疑是重中之重,這也正成為企業信息化建設的核心任務和目標。通過構建企業大數據平臺,對企業大規模數據進行科學高效的管理、分析、挖掘、監控、可視化,為公司內部產品的策劃、運營、營銷、財務、決策等提供科學精確的數據支撐,提高企業運營效率、最大化釋放數據價值。
(二)如何構建企業大數據平臺呢?
當然這是一個比較大的話題,也是一個比較復雜的事情,但是核心內容是不變的,無非就是對企業大規模數據的管理、分析和結果可視化唄。現在企業有了這么多的數據,怎么辦?就像生孩子一樣,你不能只管生不管養呀。你還想靠他給你養老送終呢?所以說數據也一樣,有了這么多數據,你又想從數據里獲取對企業有用的價值,怎么辦?總得先存儲起來吧,先養著。OK,那么現在就帶來了一個問題,怎么存?也就是如何解決大規模數據的存儲問題?
(1)如何解決大規模數據的存儲問題?
這是很大的一塊內容,我們先長話短說,化繁為簡。我們最終要解決的是大規模數據的存儲,數據規模小的話很好解決,假設數據規模特別大,大到超過單臺機器的存儲空間,如果還要存儲那么該怎么辦?
常見有兩種方法:
1)增加本機的磁盤空間。
但是不可能一直增加,本機存儲空間總會有一個極限。加到一定程度就會超過限制。
2)增加機器數量,用共享目錄的方式提供遠程網絡化的存儲。
這種方式就可以理解為分布式文件系統的雛形,就是把同一文件切分之后放入不同的機器中,空間不足了還可繼續增加機器,突破本機存儲空間的限制。Hadoop目前最多可以支持到上萬臺機器規模組成的集群,總之,足夠你用了。這個不用擔心。但是這種方式還是有很多問題的。比如:數據怎么切分,數據切分之后如何存儲,又怎么高效的管理存儲在多臺機器上的數據等等復雜問題,肯定不能靠人工去維護吧,那就有點傻了。那么怎么辦呢?就要通過系統來解決,即通過分布式文件系統來管理存儲在多臺機器上的大規模數據。也就是后面會提到的HDFS(Hadoop分布式文件系統)。
我們不是為了存儲數據而存儲數據,我們最終的目的是想通過對大規模數據的多維分析挖掘出數據背后對企業運營決策有價值的信息。
(2)如何對大規模數據進行分析?也就是如何解決大規模數據的計算的問題?
大規模數據存儲通過分布式存儲解決存儲容量局限的問題。
大規模數據計算重點考慮的是計算速度的問題。就是怎么能夠加快大規模數據的處理速度。
一臺機器資源有限,計算大規模數據可能時間很長,那么怎么加快處理速度呢?整多臺,一臺不夠多臺來湊,每個任務處理一部分數據,多臺機器的多個任務分別處理一部分數據,這樣速度肯定會比之前快。
總之,不管是大數據的存儲還是計算,都是通過分布式系統來解決的,不再通過比較昂貴的小型機,因為小型機成本太高。那么分布式系統在哪運行呢,就需要構建分布式集群。所以說我們接下來的重點就是如何構建分布式集群。
(三)什么叫構建Hadoop分布式集群?
構建Hadoop分布式集群實際上就是在一組通過網絡連接的物理計算機組成的集群上安裝部署Hadoop相關的軟件。
所以接下來我們的任務就是:
1)首先準備物理集群
2)實現物理集群的網絡互聯,就是通過網絡把集群內所有機器連接起來
3)在實現網絡互聯的集群上安裝部署大數據相關的軟件
(四)那么準備多少臺機器的物理集群呢?首先要明白機器的數量和哪些因素有關?
1)數據量(要考慮用多少臺機器組成的集群能夠存儲這么大的數據)
<1>規劃時間內的數據而不是現有數據
注意:這個數據量是公司一定規劃時間內(比如兩年)的數據量,不是現有的數據量,因為你不可能隨著數據量的增加每月或每周都往集群里增加節點,這樣每天絕大部分時間就都花在集群維護上了,雖然說我們的確可以隨著數據量的動態變化通過動態的增減節點的個數來調整集群的存儲和計算能力,但是最好還是要有一個1-2年左右的中長期規劃。
<2>多副本
因為Hadoop致力于構建在廉價的商用服務器上的,廉價的就更容易出現故障,出現故障就容易導致數據丟失,數據丟失是絕對不允許的。所以說怎么保證數據安全性呢?一份不夠,存多份就得了唄,難道你們還能同時丟到,雖然說有可能,但是可能性是不是就小很多了。當然你也不可能買特別垃圾的服務器。我們需要在采購成本和維護成本之間做好權衡。
<3>中間數據、臨時數據和日志數據需要占用20-30%左右的空間。
這個應該很好理解,因為數據不只是需要分析處理的業務數據。
2)每臺機器的性能配置
假設有100T的數據,每臺機器2T硬盤,至少需要50臺,每臺機器4T硬盤,至少需要25臺,所以說機器性能配置的不同也會影響集群規模的大小。后邊我們會單獨講機器選型及配置選擇。
3)平臺的功能性和非功能性需求
平臺實現基本的功能之外還需要實現非功能性需求:
<1>性能需求:
比如對100G—1T左右的數據進行簡單的查詢分析,能夠在2分-10分鐘之內完成,復雜作業(比如多表連接)能夠在20-1小時內完成,業務數據的增量導入和數據清洗在1小時之內完成。
<2>可靠性需求:
比如系統每月宕機次數不能超過1次。
<3>可用性需求:
系統每次宕機的時間不能超過兩小時,還有就是系統內任何一臺計算機每月不可用的時間不能超過總時間的2%。
<4>容錯性需求:
機器宕機、服務停止、硬件損壞的情況下數據不會出現丟失,不同情況下的恢復時間也有要求,比如宕機或服務器停止,恢復時間10分鐘之內,如果NameNode硬件損壞,2小時之內恢復。
所以接下來我們的任務就是:
1)先確定選擇什么樣的機器,也就是機器選型,當然包括機器的資源配置了。
2)再確定集群的規模,也就是集群包含多少臺機器
注意:在機器選型時并不是每臺機器的配置必須都是一樣的,因為不管是Hadoop中的HDFS還是YARN都是分布式系統,采用的是主從的架構,建議主節點的配置要高于從節點,從節點的配置建議一樣,不同組件的安裝部署配置可以不同。具體根據不同的業務場景進行不同的配置選擇。
(五)機器選型
目前主流的機器選型有以下幾種方式。
1)小型機
配置高、性能高、速度快,但是成本比較高,價格一般在百萬級別左右。違背了Hadoop的初衷,Hadoop致力于運行在廉價的機器之上。所以不推薦使用。
2)PC Server
高配置的PC服務器,幾萬、十幾萬、幾十萬不等,性價比最高,也是企業部署大數據平臺的首選。
3)云服務平臺
比如阿里云、百度云、騰訊云等云服務平臺,成本適中,比如最低配置搭建3節點集群使用5個月,需要2000~6000元左右。但是依賴于第三方平臺,不能對系統做更多的控制,所以比較適合初創型企業,因為初創型企業剛開始資金不足,數據量也不大。
4)普通PC
利用公司現有的多臺普通電腦部署分布式集群,成本比較低,內存不足可以通過增加內存條的方式解決,費用在1000元以下。但是最大的不足是穩定性不好,所以可用于實驗環境。
5)Linux虛擬機
直接在自己的一臺電腦上安裝多臺Linux虛擬機的方式來模擬分布式集群,成本最低,內存不足可以通過增加內存條的方式解決,費用在幾百元左右。從成本和學習的角度來講,是第一選擇。
(六)機器資源配置的選擇
機器資源配置主要指的就是內存、CPU、硬盤、網絡等。下面具體說明各種資源在選擇時應該考慮哪些關鍵因素。
1)內存
在成本允許的情況下一般選擇大內存,比如32GB、64GB、128GB,具體看業務而定,哪個服務對內存要求高,就可以配置的大一點(比如存文件系統元數據的NameNode對內存要求就比較高),從節點DataNode內存就沒必要那么大,它更需要的是磁盤和CPU。所以這個需要大家根據每個組件的特點,有針對性的去選擇配置。
2)CPU
一般選擇多路多核的CPU,比如2 路8核,2路10核,2路12核的CPU,主頻至少2-2.5GHz。
3)硬盤
一般選擇大硬盤,因為我們要存儲的是大規模的數據,比如可以配置1-20塊1-6TB的硬盤。
4)網絡
一般都是選擇萬兆網 ,因為數據量越大,對網絡吞吐率的要求就越高。
以上是實際開發過程中在機器資源配置方面重點考慮的因素,那么學習環境中資源該如何選擇呢?
學習環境資源配置方面目前主要先考慮內存的配置。因為其他幾種資源幾乎都能滿足。
1)內存
建議計算機的內存至少為8GB,最好為16GB及以上。主節點內存至少4GB,從節點內存至少2GB。
2)CPU
由于我們會先使用少量數據進行測試,暫時對CPU要求不高,目前電腦CPU核數都在2核或者4核以上,暫時可以滿足學習使用。
3)磁盤
每個節點磁盤分配至少20G。
4)網絡
目前先保證能聯網且網絡穩定就行。
所以,Hadoop集群環境的搭建首先要解決物理集群的搭建,然后再考慮Hadoop相關軟件的安裝部署。那么Hadoop物理集群如何部署呢?我們繼續分析。
二、Hadoop物理集群部署
(一)Hadoop物理集群機器的選擇
首先要做一個說明,Hadoop是為了在Linux平臺上使用而開發的,但是在其他主流的操作系統(比如UNIX、Windows、Mac 等操作系統)上也能夠運行,然而,在Windows操作系統上運行Hadoop稍顯復雜,需要首先安裝Cygwin來模擬Linux環境,然后才能安裝Hadoop。在Mac系統上也需要首先安裝一種軟件包管理器Homebrew,然后利用它自動的下載和安裝相關的Hadoop安裝包。
實際上,除了安裝使用復雜之外,最主要的是這兩種方式非常消耗資源且不穩定,所以不管是實驗環境還是生產環境都不推薦使用這兩種方式。從學習成本的角度考慮,本課程采用的方式是通過搭建一個虛擬機,然后再在這個虛擬機上直接安裝部署Linux操作系統來實現Linux運行環境的部署。后邊我們再詳細講解企業實際開發過程中是如何進行機器選型、軟件選型、集群規劃等等。所以說Hadoop物理集群的部署接下來就轉化為Linux虛擬機的安裝部署。首先來看一下如何安裝部署虛擬機。(當然在實際開發過程中會有專門的Linux服務器)
(二)虛擬機概述
1.虛擬機是什么?
簡單地說,你可以把虛擬機理解為虛擬的機器,這個虛擬的機器和真實的機器在功能實現上幾乎完全一樣,只是說虛擬機的硬盤是在一個文件中虛擬 出來的。
2.如何搭建虛擬機?
虛擬機的搭建實際上就是通過安裝虛擬化的軟件來實現的。即在你的真實電腦上通過安裝一個虛擬化軟件就可以實現虛擬機的搭建。
3.虛擬化軟件有哪些以及該如何選擇?
常見的虛擬化軟件有VMware workstation和Virtualbox。
簡單使用的話,兩者其實差不多,只是在某些功能的支持上Virtualbox比VMware workstation要差一點,所以這里我們就選擇使用VMware workstation。
具體選擇哪個版本的VMware workstation呢?其實版本9,10,11,12都可以,但是需要注意的是,由于該軟件試用期只有30天,所以當試用期到期后,如果大家還想使用,只需要在網上搜索對應版本的序列號并按提示輸入即可。
(三)VMware虛擬機安裝部署
1、VMware下載
前面我們介紹了什么是VMware,接下來開始下載安裝VMware虛擬機軟件。VMware虛擬機軟件由以下三種方式下載:
(1)可以到官網下載付費版或者試用版
(2)可以百度搜索破解免費版即可。
(3)可以點擊此鏈接進行下載,對應的序列號秘鑰是1F04Z-6D111-7Z029-AV0Q4-3AEH8
這里提供的是64位的VMware 11,大家也可以選擇其他版本,具體安裝步驟都是一樣的。
2、VMware安裝
VMware安裝比較簡單,這個小講就不細說了,不會的同學請看免費視頻:VMWare 虛擬機的安裝,具體步驟如下所示。
(1)將VMware11下載到本地之后,點擊運行安裝。
(2)VMware點擊運行后,出現安裝類型包括:典型和自定義。這里選擇“自定義”。
(3)選擇自定義安裝之后,可以選擇要安裝的功能和修改安裝位置。
(4)共享虛擬機的位置也進行修改.
(5)將啟動時檢查產品更新選項去掉,防止軟件更新。
然后點擊下一步,直到安裝完成。
(四)Hadoop運行模式的選擇
到目前為止,我們已經準備好了安裝有Linux操作系統的虛擬機,接下來我們就可以在該虛擬機上安裝部署Hadoop集群了。但是在Hadoop集群部署之前,首先要選擇Hadoop的運行模式。
Hadoop有3種常見的運行模式,分別是單機模式、偽分布式模式和分布式模式。
(1)單機模式
這是Hadoop的默認模式,這種模式在使用時只需要下載解壓Hadoop安裝包并配置環境變量,而不需要進行其他Hadoop相關配置文件的配置。單機模式下NameNode、DataNode、ResourceManager等都變成一個Java進程。一般情況下,單機模式不被選擇使用,只需要記著默認模式是單機模式就行。
(2)偽分布模式
在這種模式下,所有的守護進程都運行在一個節點上(也就是一臺計算機上),由于是在一個節點上模擬一個具有Hadoop完整功能的微型集群,所以稱為偽分布式集群,由于是在一個節點上部署所以也叫做單節點集群。我們接下來要搭建的就是偽分布式模式的Hadoop集群。
(3)分布式模式
又稱完全分布式模式,在這種模式下,Hadoop守護進程會運行在多個節點上,形成一個真正意義上的分布式集群。由于完全分布式集群的安裝部署涉及的問題更多,對于初學者還是有些難度的,所以會在后面為大家詳細講解。由易到難,一步一步來實現,我們前期先把Hadoop偽分布式集群環境搭建起來,把MapReduce編程模型好好練習一下,能夠實現簡單的大數據開發,先能達到這個要求就行。
通過前邊的分析,Hadoop的運行模式我們確定為偽分布式模式。所以接下來我們重點就放在偽分布式模式的Hadoop集群的搭建。
(五)Hadoop網絡連接方式的選擇
常見有3種網絡選擇的方式,分別是:
(1) NAT模式:網絡地址轉換模式
使用NAT模式,就是讓虛擬機借助NAT功能,通過Host機器所在的網絡來訪問外網。NAT模式下的虛擬系統的TCP/IP配置信息是由VMnet8(NAT)虛擬網絡的DHCP(動態主機配置協議(Dynamic Host Configuration Protocol, DHCP)是一個局域網的網絡協議)服務器提供的,無法進行手工修改,因此虛擬系統也就無法和本局域網的其他真實主機進行通信。采用NAT模式的最大優勢就是虛擬機接入網絡特別簡單,不需要進行任何其他配置,只需要Host機器能訪問互聯網就行。
(2) 橋接模式
Bridge就是 “橋 ”的意思,說起橋接,就不能不說局域網。比如我們有兩個局域網絡,他們的ip網段都處于192.168.0.*,同時,我們希望把這兩個網絡連接起來,這種情況下,我們就可以采用橋接。這個時候, “橋 ”就相當于一個主機,這個機器擁有兩塊網卡,分別處于兩個局域網中,同時在 “橋 ”上,運行著程序,讓局域網 A中的所有數據包原封不動的流入 B,反之亦然。這樣, 局域網 A和 B就無縫的在鏈路層連接起來了(當然要保證兩個局域網沒有沖突的 IP)。這就是橋的作用,在鏈路層無縫的溝通兩個局域網。
而VMWare的橋也是同樣的道理,只不過,本來作為硬件的一塊網卡,現在由 VMWare軟件虛擬而來罷了!當采用橋接時, VMWare會虛擬一塊網卡和真正的物理網卡進行橋接,這樣,發到物理網卡的所有數據包就到了 VMWare虛擬機,而由 VMWare發出的數據包也會通過橋從物理網卡的那端發出,這樣,如果物理網卡可以上網,那么橋接的軟網卡也沒有問題了,這就是橋接上網的原理了。 在橋接時, VMWare網卡和物理網卡應該處于同一ip網段,虛擬機就像是局域網中的一臺自主獨立的主機,它可以訪問網內的任何一臺機器。
(3) 僅主機模式
就是主機和虛擬機之間可以實現網絡互訪,而不是虛擬機訪問Internet。
無論在什么條件下,只要主機能上網,用 NAT技術,都可以使虛擬機訪問 Internet;只有和主機網卡處在一個可以訪問 internet的局域網中的時候,虛擬機才能通過 Bridge訪問 Internet; Host-only模式只用于主機和虛擬機互訪,與訪問 Internet無關。OK,簡單了解之后,這里我們選用的是NAT模式。這樣能夠更容易的實現虛擬機和外部網絡的連通性。
OK,機器選型我們選擇了虛擬機,而且實現了虛擬機的安裝,Hadoop運行模式我們選擇了偽分布式集群模式,網絡我們選擇了NAT模式,那么接下來我們就可以在虛擬機上進行Linux操作系統的安裝部署了。
Hadoop 存儲
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。