国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Docker的分布式集群環(huán)境的快速搭建研究

2018-07-28 07:19:12陳平黃浩然
電腦知識與技術(shù) 2018年11期
關(guān)鍵詞:分布式

陳平 黃浩然

摘要:針對目前大規(guī)模分布式集群環(huán)境難以搭建、不同類型服務(wù)器難以兼容同一分布式框架的問題,提出一種基于Docker容器技術(shù)來組建分布式集群的設(shè)計(jì)方案。該方案主要采用了以Docker容器的方式打包Mesos系統(tǒng)、Marathon調(diào)度框架與Zookeeper應(yīng)用,并實(shí)現(xiàn)一鍵在Linux系統(tǒng)主機(jī)上快速部署分布式集群所需的環(huán)境。實(shí)驗(yàn)結(jié)果表明,將Docker技術(shù)與分布式集群技術(shù)結(jié)合起來時(shí),在部署、故障修復(fù)方面具有開銷小、速度快的優(yōu)點(diǎn),大大降低了分布式集群的部署的復(fù)雜性。

關(guān)鍵詞:Docker;mesos;marathon;zookeeper;分布式

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)11-0001-03

隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展、網(wǎng)絡(luò)用戶數(shù)量的急劇增長,互聯(lián)網(wǎng)中數(shù)據(jù)量也不斷增加。如今的系統(tǒng)應(yīng)用與日俱增,由于單個(gè)計(jì)算機(jī)受到內(nèi)存、CPU等硬件的限制,已經(jīng)無法快速滿足任務(wù)。因此為了讓服務(wù)器能快速響應(yīng)系統(tǒng)所分發(fā)的任務(wù),分布式系統(tǒng)的使用也已成為未來發(fā)展的必然趨勢。然而分布式集群的搭建依賴于包括操作系統(tǒng)、開發(fā)語言標(biāo)準(zhǔn)庫、相應(yīng)文件的配置等環(huán)境,這無形增加了分布式集群的部署、故障處理的難度,給配置人員帶來了許多不必要的困擾。因此,如何快速部署分布式集群便成為一項(xiàng)很有意義的研究。

Docker作為開源的引擎,可以輕松快速地為任何應(yīng)用創(chuàng)建一個(gè)輕量級、可移植的容器。它允許將相關(guān)系統(tǒng)鏡像與相關(guān)庫打包到一個(gè)鏡像中,這就省下了安裝操作系統(tǒng)和相關(guān)應(yīng)用程序依賴包的時(shí)間,極大地縮短了部署周期。因此將Docker技術(shù)與分布式集群相結(jié)合可以很好解決集群部署效率低、環(huán)境不兼容等問題。

1 技術(shù)背景

1.1 Mesos分布式資源管理技術(shù)

Mesos是Apache下被稱為是分布式系統(tǒng)內(nèi)核的開源資源管理框架。Mesos是一個(gè)帶有調(diào)度器的分布式系統(tǒng),能夠?qū)Ψ植际郊鹤黾?xì)粒度資源分配。Mesos由三個(gè)重要的部分組成:Master,Slave以及Framework。

Mesos-master是其核心組件,負(fù)責(zé)同一管理接入Mesos中的各個(gè)slave和框架,并通過資源邀約(resource offer)的方式將slave上的可用資源根據(jù)算法分配給框架進(jìn)行任務(wù)分發(fā)。

Mesos-slave是框架中真正執(zhí)行計(jì)算任務(wù)的節(jié)點(diǎn),它將自己的可用資源向master匯報(bào),由master的全局資源調(diào)度器分配相應(yīng)任務(wù)。

Framework(框架)通常是指運(yùn)行在Mesos上的分布式應(yīng)用程序,職責(zé)是調(diào)度各種類型的任務(wù)??蚣苡煽蚣苷{(diào)度器與執(zhí)行器(Executor)兩部分組成??蚣苷{(diào)度器的職責(zé)是負(fù)責(zé)協(xié)調(diào)框架內(nèi)所有任務(wù)資源的調(diào)度,而執(zhí)行器運(yùn)行在slave上,負(fù)責(zé)任務(wù)的執(zhí)行控制。

1.2 Marathon容器編排框架

Marathon是一個(gè)成熟的,輕量級的,擴(kuò)展性很強(qiáng)的Apache Mesos的容器編排框架,它主要用來調(diào)度和運(yùn)行常駐服務(wù)(long-running service),提供了友好的界面和Rest API來創(chuàng)建和管理應(yīng)用,并能夠自動(dòng)為應(yīng)用程序做容錯(cuò)遷移。能夠運(yùn)行在shell上的任務(wù)均可以很容易的通過Marathon在Mesos平臺(tái)上啟動(dòng)與管理。

1.3 Zookeper服務(wù)

ZooKeeper 是 Google 的 Chubby一個(gè)開源的實(shí)現(xiàn),是 Hadoop 和 Hbase 項(xiàng)目的重要組件。Zookeper服務(wù)器端不提供任何分布式同步原語,而是提供了非常簡單并且強(qiáng)大的API,應(yīng)用程序可以根據(jù)這些API構(gòu)建更高層次的分布式同步原語。

1.4 Docker容器技術(shù)

1.4.1 Docker概述

Docker是基于Linux的容器技術(shù)(LXC),將應(yīng)用包裝在容器里,使其具有移植性和獨(dú)立性。Docker類似于虛擬化服務(wù)器,他支持一臺(tái)機(jī)器上運(yùn)行多個(gè)容器進(jìn)程,針對不同的服務(wù)提供不同的image,并且可以統(tǒng)一封裝各類不同的應(yīng)用運(yùn)行環(huán)境、提供統(tǒng)一管理和操作接口。

1.4.2 Docker體系架構(gòu)與優(yōu)勢

Docker采用了客戶、服務(wù)器(CS)架構(gòu)。從客戶端開始以TCP/REST發(fā)送請求,由Docker Host進(jìn)行請求收集以實(shí)現(xiàn)遠(yuǎn)程控制。在工作過程中,用戶使用Docker Client與Docker Daemon建立通信并將請求發(fā)送給后者。Docker Daemon內(nèi)部包括Docker Server與Engine兩個(gè)部分,前者使其可以接受Docker Client的請求,而Engine執(zhí)行Docker內(nèi)部的一系列工作。Docker Registry 是用來存儲(chǔ)容器倉庫的鏡像。在運(yùn)行的過程中Docker Daemon與Docker Registry進(jìn)行通信,用來實(shí)現(xiàn)搜索、下載、上傳鏡像的功能。

Docker的優(yōu)勢也很明顯,具體如下:

1)使用image來部署環(huán)境,簡化了服務(wù)器遷移而導(dǎo)致的環(huán)境再部署問題,提高了工作效率并降低了部署過程中出現(xiàn)環(huán)境問題的風(fēng)險(xiǎn)。

2)Docker具有沙盒隔離特性,以容器化管理的方式將應(yīng)用與系統(tǒng)隔離開,增強(qiáng)了安全性。

3)使用Docker來部署應(yīng)用縮短了環(huán)境交付和部署周期,方便開發(fā)人員快速部署開發(fā)環(huán)境。并使測試與維護(hù)變得方便。節(jié)約了開發(fā)、部署時(shí)間,實(shí)現(xiàn)了快速迭代。

2 基于Docker構(gòu)建分布式集群

2.1 主體架構(gòu)思路

Docker的運(yùn)行方式主要是以宿主機(jī)來分管容器,而我們的實(shí)驗(yàn)所使用的Mesos為分布式集群管理框架,在實(shí)驗(yàn)過程中要將其與Marathon、Zookeeper技術(shù)相結(jié)合,所以在這里為了環(huán)境搭建的便利我們用Dockerfile技術(shù)將上述應(yīng)用集成到Docker鏡像中并打包,以實(shí)現(xiàn)主從機(jī)環(huán)境的一鍵搭建功能。如圖1所示為Mesos的相關(guān)應(yīng)用實(shí)現(xiàn)流程。

2.2 基于Docker技術(shù)的架構(gòu)實(shí)現(xiàn)流程

2.2.1 Mesos

1)客戶端從Registory中下載Ubuntu并建立Container。

2)運(yùn)行Container并使用apt-get命令安裝JDK以及Mesos,之后配置相關(guān)參量,并在此docker鏡像中運(yùn)行curl命令從docker官網(wǎng)中下載docker應(yīng)用(目的是為了方便之后部署docker應(yīng)用)。

3)在環(huán)境中寫入兩個(gè)bash腳本,分別對應(yīng)“master”與“slave”。兩個(gè)腳本包括了master與slave具體的環(huán)境變量參數(shù)的配置,包括了集群數(shù)量、日志位置、master對應(yīng)的ip地址等。

4)將Container內(nèi)信息打包成Image或?qū)⑴渲眯畔懭雂ockerfile中。

2.2.2 Zookeper

1)客戶端從Registory中下載Ubuntu并建立Container。

2)在鏡像中使用apt-get命令安裝JDK,并使用wget命令安裝Zookeeper應(yīng)用并配置相應(yīng)環(huán)境參數(shù)。

3)將Container內(nèi)信息打包成Image或?qū)⑴渲眯畔懭雂ockerfile中。

2.2.3 Marathon

1)客戶端從Registory中下載Ubuntu并建立Container。

2)調(diào)用apt-get命令安裝Marathon所依賴的JDK與Mesos。之后調(diào)用curl命令下載marathon的.tgz文件并使用“tar xzf marathon-1.1.1.tgz”命令解壓縮。

3)將Container打包為Image或?qū)⑴渲眯畔懭雂ockerfile中。

2.2.4 集群實(shí)現(xiàn)流程

1)在所有機(jī)器中下載并安裝docker應(yīng)用。并開啟docker daemon的TCP監(jiān)聽端口(為了方便之后使用bash命令一鍵部署環(huán)境)。

2)在bash文件中寫入docker命令,分別在三臺(tái)不同IP的主機(jī)中開啟Zookeper與Mesos-master。之后寫入docker命令在兩個(gè)不同的主機(jī)中分別開啟mesos-slave。

3)在bash文件最后寫入啟動(dòng)marathon的docker命令,并將master、zookeeper主機(jī)所在的IP地址寫入啟動(dòng)命令中。

4)在其中一臺(tái)master主機(jī)中運(yùn)行該bash文件,實(shí)現(xiàn)集群一鍵搭建。

x

3 實(shí)驗(yàn)結(jié)果與性能分析

3.1 實(shí)驗(yàn)?zāi)康?/p>

本次實(shí)驗(yàn)的目的有兩個(gè):

1)通過本次實(shí)驗(yàn)驗(yàn)證使用Docker容器技術(shù)自動(dòng)化構(gòu)建的分布式集群運(yùn)行是否正常。

2)通過多組測試,比較通過運(yùn)行使用Dockerfile技術(shù)部署出的集群與使用傳統(tǒng)方式部署集群的性能與效率。

3.2 實(shí)驗(yàn)結(jié)果與分析

1)鑒于硬件條件的限制,測試采用了虛擬機(jī)構(gòu)建分布式的方法

硬件平臺(tái):windows10主機(jī)一臺(tái)并使用了型號為i7-4710MQ的CPU,虛擬機(jī)鏡像分配50G硬盤與2G內(nèi)存。

軟件平臺(tái):windows10操作系統(tǒng)的主機(jī),VMware12.5.5,三臺(tái)ubuntu16.04 LTS虛擬鏡像。

在完成上述應(yīng)用的dockerfile與bash腳本編寫后,通過執(zhí)行bash腳本成功搭建出Mesos分布式集群在mesos-master結(jié)點(diǎn)主機(jī)處訪問127.0.0.1:5050可以查看集群中所部屬的兩個(gè)slave節(jié)點(diǎn),在Framework界面可以看到marathon框架成功執(zhí)行。在主機(jī)中通過執(zhí)行命令可以發(fā)布相應(yīng)的任務(wù),任務(wù)會(huì)隨機(jī)分配至符合要求的slave節(jié)點(diǎn)處。在終止當(dāng)前master節(jié)點(diǎn)后,由于zookeeper的存在,master節(jié)點(diǎn)將自動(dòng)切換至另一臺(tái)處于熱備份狀態(tài)的master節(jié)點(diǎn)上,以實(shí)現(xiàn)故障的自動(dòng)處理功能。

通過docker技術(shù)搭建出的mesos集群可以實(shí)現(xiàn)其應(yīng)用本身所具有的功能,該分布式集群運(yùn)行正常。

2)傳統(tǒng)方式部署集群與使用docker方式部署集群效率比較

為了解決單一實(shí)驗(yàn)的偶然因素對實(shí)驗(yàn)結(jié)果的影響,本次實(shí)驗(yàn)進(jìn)行了多組測試并取平均值,得到圖3的結(jié)果,其中系列1為使用傳統(tǒng)虛擬機(jī)技術(shù),而系列2為使用docker技術(shù)。從圖中我們得到當(dāng)分別部署2、10、50、100、500臺(tái)slave節(jié)點(diǎn)時(shí),傳統(tǒng)虛擬機(jī)部署集群環(huán)境花費(fèi)的時(shí)間均為分鐘級別,而使用docker技術(shù)則以秒來計(jì)數(shù)。

1)使用傳統(tǒng)虛擬機(jī)的形式進(jìn)行搭建,此時(shí)需要將環(huán)境搭建到虛擬機(jī)鏡像中,并通過復(fù)制等方式實(shí)現(xiàn)移植。利用此方式可以免去復(fù)雜環(huán)境的搭建過程,但是由于虛擬機(jī)是將整個(gè)系統(tǒng)運(yùn)行在虛擬的硬件平臺(tái)上,所以開啟一個(gè)虛擬機(jī)的時(shí)間是以分鐘為單位。當(dāng)部署虛擬機(jī)數(shù)量較多的時(shí)候,使用傳統(tǒng)的虛擬機(jī)技術(shù)將耗費(fèi)大量時(shí)間。

2)使用docker容器技術(shù)對集群環(huán)境進(jìn)行搭建。由于docker啟動(dòng)時(shí)間是以秒為單位,所以其時(shí)間優(yōu)勢巨大,非常適合大量應(yīng)用的快速部署。在使用docker鏡像后,集群的整體移植性又大大增強(qiáng),當(dāng)出現(xiàn)錯(cuò)誤時(shí)只需要重新部署相應(yīng)鏡像即可。

由實(shí)驗(yàn)結(jié)果分析得到,隨著slave節(jié)點(diǎn)數(shù)量的增加,使用docker技術(shù)部署集群更為便捷。

4 結(jié)論

本文提出了一種使用docker技術(shù)融合Mesos技術(shù)高效部署分布式集群的方案。相對于傳統(tǒng)的部署方法,此方案簡化了部署難度,提高了部署效率。實(shí)驗(yàn)結(jié)果也表明此方案的可用性。因此兩者的結(jié)合必定會(huì)為未來分布式集群搭建的發(fā)展提供一條嶄新的思路。

參考文獻(xiàn):

[1] 李新麗.基于Mesos和Docker構(gòu)建大數(shù)據(jù)平臺(tái)技術(shù)研究與應(yīng)用[J].吉林建筑大學(xué)學(xué)報(bào),2016(2).

[2] 柯尊旺.Mesos平臺(tái)下多資源調(diào)度算法的研究與改進(jìn)[D].烏魯木齊:新疆大學(xué),2016.

[3] 黃志堅(jiān).基于 Docker 的 ZooKeeper 自動(dòng)化運(yùn)維系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2016.

[4] 陳存香,陳清金,張巖.Hadoop與Docker技術(shù)的融合[J].本期關(guān)注,2015(5).

[5] 田玉靖,張晨光,任女爾.基于Docker的Redis緩存架構(gòu)的研究[J].電腦知識與技術(shù),2015,11(23).

[6] 李杰,劉廣鐘.Hadoop分布式集群的自動(dòng)化容器部署研究[J].計(jì)算機(jī)應(yīng)用研究,2016,33(11).

猜你喜歡
分布式
基于RTDS的分布式光伏并網(wǎng)建模研究
湖南電力(2022年3期)2022-07-07 08:56:58
光伏:從嚴(yán)控制發(fā)展規(guī)模 分布式限定10GW
能源(2018年5期)2018-06-15 08:55:58
分布式光伏發(fā)展的四大矛盾
能源(2017年7期)2018-01-19 05:05:03
分布式光伏熱錢洶涌
能源(2017年10期)2017-12-20 05:54:07
基于預(yù)處理MUSIC算法的分布式陣列DOA估計(jì)
分布式光伏:爆發(fā)還是徘徊
能源(2017年5期)2017-07-06 09:25:54
基于點(diǎn)估計(jì)法的分布式電源的配置優(yōu)化
一種用于微電網(wǎng)分布式發(fā)電的新型Buck-Boost逆變器
基于DDS的分布式三維協(xié)同仿真研究
西門子 分布式I/O Simatic ET 200AL
富锦市| 武强县| 社旗县| 松溪县| 西城区| 诸城市| 顺义区| 大渡口区| 福鼎市| 静宁县| 浙江省| 兴仁县| 孟村| 宣城市| 竹山县| 蕉岭县| 丰都县| 开远市| 德江县| 徐闻县| 临朐县| 岳普湖县| 积石山| 新龙县| 太和县| 丰原市| 嘉鱼县| 视频| 阳新县| 三江| 郎溪县| 波密县| 临泉县| 长寿区| 密云县| 句容市| 普宁市| 澄江县| 田阳县| 沈丘县| 闸北区|