一臺(tái)虛擬機(jī)基于docker搭建大數(shù)據(jù)HDP集群的思路詳解
前言
好多人問(wèn)我,這種基于大數(shù)據(jù)平臺(tái)的xxxx的畢業(yè)設(shè)計(jì)要怎么做。這個(gè)可以參考之前寫得關(guān)于我大數(shù)據(jù)畢業(yè)設(shè)計(jì)的文章。這篇文章是將對(duì)之前的畢設(shè)進(jìn)行優(yōu)化。
個(gè)人覺(jué)得可以分為兩個(gè)部分。第一個(gè)部分就是基礎(chǔ)的平臺(tái)搭建。例如Hadoop集群、Kafka集群。
第二個(gè)部分就是上層應(yīng)用的建設(shè),例如基于大數(shù)據(jù)平臺(tái)的數(shù)據(jù)分析,以及大屏展示之類的可視化應(yīng)用。前者提供了基礎(chǔ)平臺(tái)能力,讓整個(gè)設(shè)計(jì)加入大數(shù)據(jù)元素;后者提供了上層應(yīng)用能力,主要是讓別人明白你利用大數(shù)據(jù)平臺(tái)做了什么。
前些日子閑得無(wú)聊,在一臺(tái)虛擬機(jī)上基于docker容器,使用Ambari搭建了一個(gè)HDP版本的Hadoop大數(shù)據(jù)集群。所以就結(jié)合這篇文章,對(duì)第一部分進(jìn)行闡述,提供一個(gè)新的思路。
思路
在集群搭建的過(guò)程中,遇到了形形色色的問(wèn)題。在問(wèn)題里去思考、去查閱資料。這是一個(gè)蠻有意思的事情。
在上一篇文章也寫了,我的大數(shù)據(jù)畢業(yè)設(shè)計(jì)的Hadoop平臺(tái)搭建部分,是基于三臺(tái)虛擬機(jī)實(shí)現(xiàn)的。當(dāng)時(shí)使用的Apache版本的Hadoop。
Apache版本的缺點(diǎn)是沒(méi)有一個(gè)統(tǒng)一的管控平臺(tái)。
前期的安裝需要在每個(gè)節(jié)點(diǎn)手動(dòng)分發(fā)安裝包、執(zhí)行啟動(dòng)命令。后期的節(jié)點(diǎn)維護(hù)、服務(wù)啟停都需要去后臺(tái)執(zhí)行命令。
加上三臺(tái)虛擬機(jī),每次啟動(dòng)費(fèi)個(gè)老勁。所以我就尋思用Ambari來(lái)搭建一個(gè)HDP版本的、一個(gè)虛擬機(jī)就能搞定的、基于docker容器的Hadoop集群。
整體架構(gòu)
整個(gè)架構(gòu)設(shè)計(jì)和技術(shù)選型,都是根據(jù)個(gè)人需求選擇,可以參考。
1. 技術(shù)選型
宿主機(jī)和docker的操作系統(tǒng)選擇的是centos7。我嘗試了centos8,不太行。主要
docker:容器,代替虛擬機(jī)節(jié)點(diǎn)搭建集群docker-compose:編排容器。對(duì)所有容器進(jìn)行管理、啟動(dòng)Ambari:2.7.3版本??梢暬惭b、監(jiān)控、管理所有集群。HDP:3.1版本。其中包括Hadoop、HDFS、Yarn、Spark、Kafka、Zookeeper等服務(wù)。MySQL:ambari元數(shù)據(jù)庫(kù)。后面應(yīng)用也會(huì)用到。
除此之外,還需要shell編寫一些腳本。

2. 架構(gòu)設(shè)計(jì)

平臺(tái)一覽
這就是Ambari的首頁(yè)儀表盤的部分,里面可以看到HDFS的存儲(chǔ),內(nèi)存使用量指標(biāo)。

Hadoop集群
Hadoop集群一共用了四個(gè)節(jié)點(diǎn)。NameNode,一個(gè)備用的NameNode,兩個(gè)DataNode。

點(diǎn)擊右側(cè)的NameNode UI可以看到Hadoop集群的UI界面。

集群節(jié)點(diǎn)
這里的Hosts指的就是所有集群節(jié)點(diǎn)的個(gè)數(shù),也是docker節(jié)點(diǎn)的個(gè)數(shù)。這里因?yàn)閮?nèi)存有限,所以一個(gè)docker啟動(dòng)了好幾個(gè)服務(wù)。

例如這個(gè)kafka1節(jié)點(diǎn),即安裝了Kafka,又安裝了Zookeeper。

環(huán)境準(zhǔn)備
我在實(shí)踐docker搭建集群的時(shí)候,90%的時(shí)間都花費(fèi)在了環(huán)境準(zhǔn)備上。同樣,遇到的90%的問(wèn)題也都在這個(gè)步驟上。
1. 虛擬機(jī)準(zhǔn)備
我自己的架構(gòu)是一臺(tái)虛擬機(jī),然后其他節(jié)點(diǎn)都是用docker代替的。docker你可以理解為輕量虛擬機(jī)。
我選擇docker的理由:
覺(jué)得挺有意思,想挑戰(zhàn)一下自己的軟肋。*一個(gè)虛擬機(jī)可能需要占用20G存儲(chǔ),一個(gè)docker只占用幾百M(fèi)B**。只需要啟動(dòng)一臺(tái)虛擬機(jī)即可。docker作為應(yīng)用服務(wù)運(yùn)行在這臺(tái)虛擬機(jī)上。
其實(shí),這里我是建議使用3 ~ 4臺(tái)虛擬機(jī)的。因?yàn)閐ocker本身對(duì)于很多人來(lái)說(shuō)是有一定難度的,再加上需要將docker構(gòu)建成節(jié)點(diǎn),是需要花費(fèi)很多時(shí)間的。
2. docker容器準(zhǔn)備
如果說(shuō)是頭鐵非要用docker,那么可以看看這一步。我在這一步構(gòu)建節(jié)點(diǎn)docker鏡像的時(shí)候,反復(fù)構(gòu)建了很多次。
dockerfile
我們要自己編寫dockerfile幾月centtos7來(lái)構(gòu)建docker容器的系統(tǒng)鏡像。而且,docker容器代替了虛擬機(jī),那么docker容器里的環(huán)境就要和虛擬機(jī)一樣。所以dockerfile需要滿足以下條件。
開放22端口,啟動(dòng)sshd服務(wù)配置jdk、scala生成密鑰,配置ssh免密登錄python2.7(centos7自帶)yum安裝一些軟件,例如chrony等配置hosts
在編寫dockerfile階段,查閱了很多資料,反復(fù)構(gòu)建,嘗試了很多次才成功。
docker-compose
docker-compose是docker容器的編排工具,需要編寫一個(gè)yaml配置文件,通過(guò)start/stop來(lái)啟動(dòng)/停止所有的容器。

這個(gè)centos_hdp就是我自己構(gòu)建的鏡像,ports來(lái)開放容器的端口,volumes來(lái)掛載宿主機(jī)的目錄。
3. 下載安裝包
我在2016年畢業(yè)設(shè)計(jì)中,所搭建的大數(shù)據(jù)平臺(tái)的各個(gè)組件都是獨(dú)立下載安裝的。Hadoop的安裝包需要去Hadoop官網(wǎng)下載,Kafka安裝包需要去Kafka官網(wǎng)下載。想安裝哪個(gè)版本就安裝哪個(gè)版本。
基于Ambari安裝,所有組件都包含在HDP安裝包里,不過(guò)這個(gè)安裝包挺大的,10G。
ambari-2.7.3.0-centos7.tar.gz HDP-3.1.0.0-centos7-rpm.tar.gz HDP-UTILS-1.1.0.22-centos7.tar.gz HDP-GPL-3.1.0.0-centos7-gpl.tar.gz
上面就是所需安裝包的列表,下載到之后,放到本地搭建的http服務(wù)器中,在ambari安裝中時(shí)使用。
結(jié)語(yǔ)
本篇文章主要講了大數(shù)據(jù)集群搭建的架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)思路部分,后面文章會(huì)探討上層應(yīng)用的構(gòu)建。我現(xiàn)在自己也在學(xué)前端,想自己實(shí)現(xiàn)一些web應(yīng)用。關(guān)于大數(shù)據(jù)集群搭建、后臺(tái)實(shí)現(xiàn)以及前端技術(shù),可以私我加群互相交流。
基于docker使用Ambari搭建Hadoop是有難度的,謹(jǐn)慎嘗試。
到此這篇關(guān)于一臺(tái)虛擬機(jī)基于docker搭建大數(shù)據(jù)HDP集群 的文章就介紹到這了,更多相關(guān)docker搭建HDP集群 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker鏡像的拉取登陸上傳及保存等相關(guān)使用命令
這篇文章主要為大家介紹了docker鏡像的拉取登陸上傳及保存等相關(guān)使用命令,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
Linux上使用docker啟動(dòng)redis并遠(yuǎn)程訪問(wèn)的實(shí)現(xiàn)
這篇文章主要介紹了Linux上使用docker啟動(dòng)redis并遠(yuǎn)程訪問(wèn)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
使用 VPS 下載 Docker 鏡像并導(dǎo)入到本地服務(wù)器的過(guò)程
這篇文章主要介紹了使用 VPS 下載 Docker 鏡像并導(dǎo)入到本地服務(wù)器,通過(guò)使用 VPS 下載 Docker 鏡像并將其傳輸?shù)奖镜胤?wù)器,我們可以克服網(wǎng)絡(luò)限制,更靈活地管理和部署 Docker 鏡像,需要的朋友可以參考下2024-08-08
docker 學(xué)習(xí)筆記之docker連接網(wǎng)絡(luò)的設(shè)置
本篇文章主要介紹了docker 學(xué)習(xí)筆記之docker連接網(wǎng)絡(luò)的設(shè)置 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02

