• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      陳平 黃浩然

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

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

      中圖分類號:TP311 文獻標識碼: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)用與日俱增,由于單個計算機受到內(nèi)存、CPU等硬件的限制,已經(jīng)無法快速滿足任務(wù)。因此為了讓服務(wù)器能快速響應(yīng)系統(tǒng)所分發(fā)的任務(wù),分布式系統(tǒng)的使用也已成為未來發(fā)展的必然趨勢。然而分布式集群的搭建依賴于包括操作系統(tǒng)、開發(fā)語言標準庫、相應(yīng)文件的配置等環(huán)境,這無形增加了分布式集群的部署、故障處理的難度,給配置人員帶來了許多不必要的困擾。因此,如何快速部署分布式集群便成為一項很有意義的研究。

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

      1 技術(shù)背景

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

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

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

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

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

      1.2 Marathon容器編排框架

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

      1.3 Zookeper服務(wù)

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

      1.4 Docker容器技術(shù)

      1.4.1 Docker概述

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

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

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

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

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

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

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

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

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

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

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

      2.2.1 Mesos

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

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

      3)在環(huán)境中寫入兩個bash腳本,分別對應(yīng)“master”與“slave”。兩個腳本包括了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 集群實現(xiàn)流程

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

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

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

      4)在其中一臺master主機中運行該bash文件,實現(xiàn)集群一鍵搭建。

      x

      3 實驗結(jié)果與性能分析

      3.1 實驗目的

      本次實驗的目的有兩個:

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

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

      3.2 實驗結(jié)果與分析

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

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

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

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

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

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

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

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

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

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

      4 結(jié)論

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

      參考文獻:

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

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

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

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

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

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

      猜你喜歡
      分布式
      基于RTDS的分布式光伏并網(wǎng)建模研究
      湖南電力(2022年3期)2022-07-07 08:56:58
      光伏:從嚴控制發(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
      基于預處理MUSIC算法的分布式陣列DOA估計
      制導與引信(2017年3期)2017-11-02 05:16:56
      分布式光伏:爆發(fā)還是徘徊
      能源(2017年5期)2017-07-06 09:25:54
      基于點估計法的分布式電源的配置優(yōu)化
      一種用于微電網(wǎng)分布式發(fā)電的新型Buck-Boost逆變器
      基于DDS的分布式三維協(xié)同仿真研究
      雷達與對抗(2015年3期)2015-12-09 02:38:50
      西門子 分布式I/O Simatic ET 200AL
      凤山县| 溧阳市| 启东市| 石台县| 克山县| 五原县| 石屏县| 周宁县| 泸溪县| 平和县| 长海县| 新晃| 明星| 绍兴县| 武强县| 金沙县| 临江市| 大竹县| 新沂市| 会理县| 灵丘县| 县级市| 丹东市| 嘉义市| 上杭县| 正安县| 赞皇县| 仙居县| 新兴县| 仲巴县| 大埔区| 灵川县| 华蓥市| 涿鹿县| 通渭县| 深水埗区| 怀集县| 中山市| 桑植县| 阳东县| 昌都县|