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