大數(shù)據(jù)集群平臺(tái)介紹 掌握搭建大數(shù)據(jù)集群的方法是學(xué)習(xí)大數(shù)據(jù)技術(shù)的人需要具備的基礎(chǔ)技能,因此我會(huì)通過(guò)接下來(lái)的三十余篇文章介紹大數(shù)據(jù)平臺(tái)的搭建方法。在本文中我將向小伙伴們介紹一下搭建大數(shù)據(jù)集群需要哪些知識(shí)以及我們接下來(lái)搭建的大數(shù)據(jù)集群平臺(tái)架構(gòu),讓大家對(duì)平臺(tái)有個(gè)總體的認(rèn)識(shí)并普及一些概念。 首先我們接觸的是虛擬機(jī),及在虛擬機(jī)中安裝Linux操作系統(tǒng) 集群搭建完成后我們總共會(huì)有四個(gè)虛擬機(jī),其中偽分布集群有一臺(tái)虛擬機(jī),虛擬機(jī)名稱為single_node。分布式集群有三個(gè)虛擬機(jī) 名稱分別為master、slave1、slave2。各個(gè)虛擬機(jī)的IP配置及安裝軟件(含軟件運(yùn)行的模塊)如下表所示。
注:hostname:每個(gè)節(jié)點(diǎn)的主機(jī)名稱 IP:每個(gè)節(jié)點(diǎn)的IP地址 NN:NameNode DN:DataNode NM:NodeManager RM:ResourceManager SNN:SecondaryNameNode / :表示不安裝 分布式集群的架構(gòu)如下圖所示 1、 硬件 節(jié)點(diǎn):我們后面會(huì)經(jīng)常提到節(jié)點(diǎn),分布式環(huán)境中一個(gè)服務(wù)器就是一個(gè)節(jié)點(diǎn),在我們搭建的集群中服務(wù)器指的是通過(guò)VMware軟件虛擬出來(lái)的虛擬機(jī)。 操作系統(tǒng):服務(wù)器上運(yùn)行的操作系統(tǒng)基本上都是Linux操作系統(tǒng),當(dāng)然虛擬機(jī)中安裝的也是Linux系統(tǒng)。 網(wǎng)絡(luò):集群中的多個(gè)節(jié)點(diǎn)之間協(xié)同工作需要不斷交換數(shù)據(jù)及狀態(tài)、命令等信息,因此需要互通的網(wǎng)絡(luò)環(huán)境。我們的集群是通過(guò)虛擬機(jī)軟件虛擬出來(lái)的,網(wǎng)絡(luò)也是由虛擬機(jī)軟件虛擬出的虛擬網(wǎng)卡來(lái)實(shí)現(xiàn)數(shù)據(jù)交換的。 2、軟件 集群中的軟件主要有 hadoop、spark、hive、hbase、zookeeper這幾個(gè)。 Hadoop 雖然大數(shù)據(jù)集群平臺(tái)根據(jù)具體業(yè)務(wù)需求不同配置組成不同,但大部分集群都會(huì)以hadoop集群為基礎(chǔ)。例如大數(shù)據(jù)倉(cāng)庫(kù)Hive及分布式數(shù)據(jù)庫(kù)Hbase的存儲(chǔ)都會(huì)用到hadoop集群的分布式文件系統(tǒng)HDFS,計(jì)算部分默認(rèn)使用Hadoop原生的MapReduce計(jì)算框架。分布式計(jì)算框架spark可以使用hadoop內(nèi)置的通用資源管理模塊yarn來(lái)提供統(tǒng)一的資源管理和調(diào)度。 hadoop大數(shù)據(jù)集群一般說(shuō)來(lái)可以有單機(jī)模式、偽分布模式、分布式模式這三種模式。 分布式模式:是實(shí)際應(yīng)用的一種模式,分布式集群由多個(gè)節(jié)點(diǎn)組成理論上集群中的節(jié)點(diǎn)越多,集群的性能也就越好。 單機(jī)模式:?jiǎn)螜C(jī)模式只在一個(gè)節(jié)點(diǎn)上運(yùn)行,是一種默認(rèn)的配置方式,無(wú)需進(jìn)行其他配置即可運(yùn)行,以單Java進(jìn)程運(yùn)行,方便進(jìn)行調(diào)試,此時(shí)HDFS是不可用的。 偽分布式:此模式同樣也是在單節(jié)點(diǎn)上運(yùn)行的,與單機(jī)模式不同的是程序是以不同的Java進(jìn)程來(lái)運(yùn)行的,節(jié)點(diǎn)即作為NameNode也作為DataNode,此時(shí)可以使用HDFS,是常用的開(kāi)發(fā)測(cè)試模式。 Spark Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎,是目前比較流行的分布式計(jì)算框架。 Spark 主要有三個(gè)特點(diǎn) : 首先,高級(jí)API 剝離了對(duì)集群本身的關(guān)注,Spark 應(yīng)用開(kāi)發(fā)者可以專注于應(yīng)用所要做的計(jì)算本身。 其次由于是基于內(nèi)存的計(jì)算框架等原因,Spark 很快,支持交互式計(jì)算和復(fù)雜算法。 最后,Spark是一個(gè)通用引擎,可用它來(lái)完成各種各樣的運(yùn)算,包括 SQL 查詢、文本處理、機(jī)器學(xué)習(xí)等,而在 Spark 出現(xiàn)之前,我們一般需要學(xué)習(xí)各種各樣的引擎來(lái)分別處理這些需求。 Hive hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供完整的sql查詢功能,可以將sql語(yǔ)句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。 其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過(guò)類SQL語(yǔ)句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),不必開(kāi)發(fā)專門(mén)的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉(cāng)庫(kù)的統(tǒng)計(jì)分析。 Zookeeper ZooKeeper是一個(gè)分布式的,開(kāi)放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Hadoop和Hbase的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。 Hbase HBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目。HBase不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)。另一個(gè)不同的是HBase基于列的而不是基于行的模式。 Sqoop 是一款開(kāi)源的工具,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(kù)(mysql、postgresql...)間進(jìn)行數(shù)據(jù)的傳遞,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)(例如 : MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫(kù)中。 |
|