999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Ansible的數(shù)據(jù)倉(cāng)庫(kù)自動(dòng)化部署研究與實(shí)現(xiàn)

2023-06-26 13:11:54熊超李滿劉曉莉秦黃劉曉娟
無(wú)線互聯(lián)科技 2023年8期

熊超 李滿 劉曉莉 秦黃 劉曉娟

摘要:隨著大數(shù)據(jù)時(shí)代到來(lái),企業(yè)對(duì)數(shù)據(jù)倉(cāng)庫(kù)的需求日益增加,一個(gè)企業(yè)通常需要部署和管理上千臺(tái)服務(wù)器,而數(shù)據(jù)倉(cāng)庫(kù)涉及的配置非常復(fù)雜。隨著集群的組件逐漸增多,規(guī)模逐漸增大,傳統(tǒng)的運(yùn)維方式將不再適用,不僅運(yùn)維難度大,而且效率較低。因此,為了降低運(yùn)維的難度,提高效率,文章提出一種通過(guò)Ansible來(lái)運(yùn)維管理服務(wù)器的方式,利用Ansible的批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能,編寫Playbook并且集成到roles中,實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的快速部署,提高企業(yè)的工作效率。

關(guān)鍵詞:Ansible;數(shù)據(jù)倉(cāng)庫(kù);自動(dòng)部署;Hadoop

中圖分類號(hào):TP311 ?文獻(xiàn)標(biāo)志碼:A

0 引言

數(shù)據(jù)倉(cāng)庫(kù)是大數(shù)據(jù)背景下的存儲(chǔ)和分析系統(tǒng),能夠支持海量數(shù)據(jù)的存儲(chǔ)和分析,是各大IT企業(yè)的重要組件。中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)發(fā)布的第49次《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》顯示,截至2021年12月,中國(guó)網(wǎng)民規(guī)模達(dá)10.32億人,較2020年12月增長(zhǎng)4 296萬(wàn)人,互聯(lián)網(wǎng)普及率達(dá)73.0%。在如此龐大的網(wǎng)民數(shù)量下,每一天都會(huì)產(chǎn)生海量的數(shù)據(jù),而雙十一、618這種購(gòu)物高峰期的前后一周內(nèi),各大互聯(lián)網(wǎng)企業(yè)的用戶產(chǎn)生的數(shù)據(jù)量和訂單都會(huì)激增,所以各大企業(yè)都會(huì)在這段時(shí)間內(nèi)臨時(shí)增加大量服務(wù)器。由于在數(shù)據(jù)倉(cāng)庫(kù)集群中,每增刪一個(gè)服務(wù)器都需要對(duì)集群中所有節(jié)點(diǎn)進(jìn)行修改,這就導(dǎo)致運(yùn)維人員在高峰期將面臨大量的重復(fù)任務(wù)。傳統(tǒng)的shell腳本運(yùn)維方式不僅效率低下,而且需要頻繁地修改和維護(hù)服務(wù)器,而Ansible自動(dòng)化運(yùn)維,不僅效率高,而且其中的template模塊能夠?qū)ε渲梦募M(jìn)行動(dòng)態(tài)修改,完美地解決了高峰期所帶來(lái)的大量重復(fù)任務(wù),減少了運(yùn)維人員的工作量,提升了運(yùn)維的效率[1-2]。

1 Ansible的工作原理

Ansible是基于Python的paramiko模塊開(kāi)發(fā)的一款輕量級(jí)自動(dòng)化運(yùn)維工具(見(jiàn)圖1),不遵循Client/agents架構(gòu),基于模塊化工作,一共有3 387種模塊,其中包括Command和shell模塊,能夠代替shell腳本完成大部分的工作內(nèi)容。Ansible安裝完成之后會(huì)生成/etc/ansible/hosts主機(jī)清單文件,在執(zhí)行Ansible命令時(shí),Ansible會(huì)訪問(wèn)這個(gè)文件拿到相應(yīng)的所有主機(jī)地址,通過(guò)SSH來(lái)批量執(zhí)行模塊,并且Ansible對(duì)shell模塊還做了一些優(yōu)化。通過(guò)shell模塊遠(yuǎn)程執(zhí)行本地腳本的時(shí)候,Ansible會(huì)自動(dòng)將腳本拷貝到目標(biāo)主機(jī)執(zhí)行,完成后還會(huì)自動(dòng)刪除腳本文件,即使在執(zhí)行異常退出時(shí),Ansible也會(huì)將遠(yuǎn)程腳本刪除,避免了腳本文件堆積[3-4]。

Ansible有Playbook的定義,Playbook是由一個(gè)或多個(gè)Play組成的列表。Play的主要功能是將預(yù)定義的一組主機(jī),裝扮成事先通過(guò)Ansible中task定義好的角色。task實(shí)際是調(diào)用Ansible中的一個(gè)模塊,將多個(gè)Play組織在一個(gè)Playbook中,就可以按照一定的順序執(zhí)行預(yù)定義的動(dòng)作。

在整個(gè)數(shù)據(jù)倉(cāng)庫(kù)集群中,如果需要增加或者減少服務(wù)器,就必須修改所有服務(wù)器的配置文件,大部分自動(dòng)化運(yùn)維工具對(duì)此沒(méi)有很好的解決方案,但是Ansible中的template就完美地解決了這個(gè)問(wèn)題。通過(guò)Jinja2語(yǔ)言為每一個(gè)配置文件編寫一個(gè)模板,所有的服務(wù)器都根據(jù)這個(gè)模板進(jìn)行配置。對(duì)于需要變動(dòng)的部分,Jinja2也提供了循環(huán)和分支遍歷提前設(shè)置好的變量文件進(jìn)行靈活改變,這樣工作人員只需要修改一個(gè)文件就可以對(duì)所有服務(wù)器的配置文件進(jìn)行更改。

但是在實(shí)際生產(chǎn)環(huán)境中,用一個(gè)Playbook來(lái)管理整個(gè)數(shù)據(jù)倉(cāng)庫(kù)集群顯然是不合理的,如果僅僅需要更新某一個(gè)組件,就需要把整個(gè)集群都檢測(cè)一遍。因此,Ansible提出了role的定義,工作人員可以將某一個(gè)組件的安裝、配置、啟動(dòng)設(shè)置成一個(gè)role,在批量部署和修改的時(shí)候通過(guò)調(diào)用這個(gè)role就能完成這一組件的部署。在需要部署、修改某一組件的時(shí)候,工作人員僅需要調(diào)用這一組件對(duì)應(yīng)的role,而不是重新部署和配置整個(gè)集群。

在文件結(jié)構(gòu)上,每一個(gè)role都對(duì)應(yīng)一個(gè)文件夾,每一個(gè)文件夾都有tasks,files,templates,handlers,vars子文件夾等。其中最主要的就是tasks文件,里面放了很多yml文件,每一個(gè)文件都對(duì)應(yīng)一個(gè)操作,比如安裝、配置和啟動(dòng)等。此外,文件夾中還有一個(gè)main.yml文件,main.yml文件決定了操作的執(zhí)行順序,將需要執(zhí)行的yml文件按照?qǐng)?zhí)行順序從上到下依次聲明,在role執(zhí)行的時(shí)候就會(huì)按照順序調(diào)用對(duì)應(yīng)的yml文件,從而完成整個(gè)組件的部署和修改。

2 數(shù)據(jù)倉(cāng)庫(kù)集群部署規(guī)劃

Ansible部署數(shù)據(jù)倉(cāng)庫(kù)集群的過(guò)程非常靈活,只需要根據(jù)集群規(guī)劃(見(jiàn)表1),為每一個(gè)組件編寫role,再依次執(zhí)行就能完成整個(gè)集群的部署。

為了方便統(tǒng)一管理,提前確定好組件壓縮包目錄、安裝目錄、變量文件以及對(duì)應(yīng)組件的壓縮包名稱和安裝名稱,如表2—3所示。

3 Ansible自動(dòng)化部署過(guò)程

3.1 基礎(chǔ)環(huán)境配置

關(guān)鍵配置主要包括:(1)配置SSH免密連接,需要Ansible節(jié)點(diǎn)對(duì)集群所有節(jié)點(diǎn)免密登錄。(2)Ansible節(jié)點(diǎn)安裝Ansible。(3)準(zhǔn)備集群需要的所有組件的壓縮包。此外還需要完成系統(tǒng)的一些基礎(chǔ)配置,這些基礎(chǔ)配置也都可以通過(guò)Ansible來(lái)批量完成,例如:執(zhí)行ansible all -m shell -a “sed -i’s/SELINUX=.*/SELINUX=disabled’ /etc/selinux/config”,設(shè)置selinux永久關(guān)閉、執(zhí)行ansible all -m shell-a “systemctl stop firewalld”、ansible all -m shell-a “systemctl disable firewalld”關(guān)閉防火墻并關(guān)閉開(kāi)機(jī)自動(dòng)開(kāi)啟,執(zhí)行ansible all -m copy -a “src=path to hosts dest=/etc/hosts”為所有主機(jī)添加主機(jī)映射等。

3.2 編寫role并測(cè)試

工作人員創(chuàng)建一個(gè)roles目錄,在該目錄中創(chuàng)建需要部署的組件的子目錄:Hadoop,zookeeper,Kafka,F(xiàn)lume,Hive,Sqoop,Spark,Hbase,并在每個(gè)子目錄中創(chuàng)建files,handlers,tasks,templates目錄。在編寫role之前創(chuàng)建一個(gè)全局的變量文件vars.yml,設(shè)置一個(gè)包括集群所有節(jié)點(diǎn)IP的數(shù)組和每個(gè)組件所在節(jié)點(diǎn)的IP,并且設(shè)置一些常用的變量,方便在需要的時(shí)候進(jìn)行修改。組件的部署流程大致分為3個(gè)步驟——解壓、修改配置文件、啟動(dòng),分別對(duì)應(yīng)tasks目錄中的3個(gè)yml文件:install.yml,config.yml,start.yml。除此之外,還有配置文件的模板文件,Ansible通過(guò)模板文件來(lái)動(dòng)態(tài)修改配置文件。

4 Ansible部署和測(cè)試

編寫好的role不能直接執(zhí)行,在Ansible架構(gòu)中只提供了單個(gè)模塊的執(zhí)行命令(ansible)和Playbook的執(zhí)行命令(ansible-playbook)。想要執(zhí)行role必須通過(guò)Playbook來(lái)調(diào)用role,示例如下:

---

- hosts: all

remote_user: xx

vars_files:

- /home/xx/ansible/roles/vars.yml

- ...

roles:

- { role: hadoop ,tags: ['hadoop'] }

- { role: spark-standalone ,tags: ['spark-standalone'] }

- { role: zookeeper ,tags: ['zookeeper']}

- { role: kafka ,tags: ['kafka'] }

Playbook的核心元素包括Hosts(主機(jī)清單)、tasks(任務(wù)集)、Variables(內(nèi)置變量或者自定義變量)、roles(角色集)、tags(標(biāo)簽)等。調(diào)用role的時(shí)候必須聲明hosts,roles,如果設(shè)置了外部變量文件則必須添加vars_files,引入變量文件,如果需要用到其他用戶執(zhí)行role,可以添加“remote_user: xx”指定連接的用戶,前提是當(dāng)前用戶對(duì)目標(biāo)主機(jī)能夠通過(guò)SSH免密登錄。

在執(zhí)行Playbook之前,通常會(huì)在ansible-playbook命令后面加上“--syntax-check”或者“-C”對(duì)Playbook進(jìn)行語(yǔ)法檢測(cè)和測(cè)試運(yùn)行,當(dāng)確認(rèn)無(wú)誤后再真正執(zhí)行部署命令。在Playbook執(zhí)行過(guò)程中,藍(lán)色的部分表示該步驟跳過(guò)執(zhí)行,綠色的部分表示執(zhí)行成功并且不需要做改變的操作,黃色的部分表示執(zhí)行成功并且對(duì)目標(biāo)主機(jī)做變更,紅色的部分表示執(zhí)行失敗。

5 結(jié)語(yǔ)

市面上有很多專門做數(shù)據(jù)倉(cāng)庫(kù)運(yùn)維和自動(dòng)部署的集成工具,比如Ambari和CDH,雖然很方便,功能也比較多,但是不夠靈活。對(duì)于Ambari和CDH這種平臺(tái)級(jí)工具而言,想要進(jìn)行組件更新非常復(fù)雜,必須重新編譯Ambari的源碼才能完成對(duì)單個(gè)組件的更新。就這一點(diǎn)而言,Ansible很好地解決了這個(gè)問(wèn)題,不僅自身部署靈活,而且各個(gè)組件之間的角色互相獨(dú)立。不僅如此,Ansible是一個(gè)開(kāi)源的工具,對(duì)于大數(shù)據(jù)的初學(xué)者而言這是一個(gè)不錯(cuò)的選擇,而且Ansible的部署流程比較偏向底層,在部署過(guò)程中能夠讓初學(xué)者很清晰地了解到整個(gè)數(shù)倉(cāng)的架構(gòu)。

參考文獻(xiàn)

[1]李沁蔓.基于Ansible的服務(wù)器自動(dòng)化運(yùn)維技術(shù)研究與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2020(13):23-26,31.

[2]范永合,楊澎濤,朱應(yīng)科,等.基于Ansible實(shí)現(xiàn)Zabbix自動(dòng)部署[J].電腦知識(shí)與技術(shù),2019(35):260-261.

[3]李湘林,向全,韋美雁,等.基于Ansible自動(dòng)化運(yùn)維系統(tǒng)批量部署LAMP架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)[J].大眾科技,2021(3):1-4.

[4]趙創(chuàng)業(yè),唐亮亮,郭威,等.基于Ansible和Flume的海量數(shù)據(jù)自動(dòng)化采集系統(tǒng)[J].電子設(shè)計(jì)工程,2020(3):47-51.

(編輯 王雪芬)

Research and implementation of data warehouse automation deployment based on Ansible

Xiong? Chao, Li? Man*, Liu? Xiaoli, Qin? Huang, Liu? Xiaojuan

(Guangzhou College of Technology and Business, Guangzhou 510000, China)

Abstract:? As the big data era, the enterprise growing demand for data warehouse, an enterprise usually need to deploy and manage thousands of servers, which involves the configuration of the data warehouse is very complex, as the big data era, enterprise growing demand for data warehouse, an enterprise usually need to deploy and manage thousands of servers, which involves the configuration of the data warehouse is very complicated, As the components of the cluster gradually increase and the scale gradually increases, the traditional operation and maintenance methods will no longer be applicable, which is not only difficult to operate and maintain, but also inefficient. Therefore, in order to reduce the difficulty of operation and maintenance and increase the efficiency, this paper proposes a way to operate and maintain the server through Ansible. Using the functions of batch system configuration, batch program deployment and batch command running of Ansible, the Playbook is written and integrated into roles to realize the rapid deployment of the data warehouse system, increase the work efficiency of the enterprise.

Key words: Ansible; the data warehouse; automatic deployment; Hadoop

主站蜘蛛池模板: 经典三级久久| 精品国产一区91在线| 亚洲人成网站在线观看播放不卡| 视频二区中文无码| 亚洲香蕉久久| 久草视频精品| 亚洲高清日韩heyzo| 亚洲日韩精品综合在线一区二区| 在线色国产| 欧美一级高清视频在线播放| 一级黄色欧美| 欧美中文一区| 天天摸夜夜操| 精品无码国产一区二区三区AV| 国产精品久久久久久久伊一| 天天色天天操综合网| 欧美亚洲国产一区| P尤物久久99国产综合精品| 91亚洲精品国产自在现线| 欧美激情视频一区二区三区免费| 日韩av无码DVD| 在线一级毛片| 一级毛片免费高清视频| 99视频有精品视频免费观看| 青青草原国产av福利网站| 国产日韩丝袜一二三区| 91精品人妻互换| 狠狠v日韩v欧美v| 国产手机在线ΑⅤ片无码观看| 亚洲无码高清视频在线观看| 国产无码精品在线| 高清不卡毛片| 波多野结衣亚洲一区| 在线看片国产| 国产黄在线观看| 国产清纯在线一区二区WWW| 国产三级成人| 在线无码av一区二区三区| 国产呦精品一区二区三区下载| 亚洲成人免费看| 免费人成网站在线观看欧美| 国产精女同一区二区三区久| 亚洲AⅤ永久无码精品毛片| 国产精品久久精品| 亚洲第一视频免费在线| 2020久久国产综合精品swag| 91精品专区国产盗摄| 国产一区二区网站| 高清码无在线看| 亚洲一区二区约美女探花| 亚洲黄色成人| 88av在线看| 四虎精品免费久久| 亚洲乱亚洲乱妇24p| 无码又爽又刺激的高潮视频| 国产在线一二三区| 亚洲成肉网| 欧美97欧美综合色伦图| 久久久久青草线综合超碰| 无码内射在线| 亚洲性网站| 精品国产中文一级毛片在线看| 久久99精品久久久久纯品| 国产精品欧美在线观看| 欧美亚洲国产日韩电影在线| 欧美不卡视频一区发布| yjizz视频最新网站在线| 欧美、日韩、国产综合一区| 中文国产成人精品久久| 成人午夜天| 亚洲美女一区| 日本在线免费网站| 亚洲无码视频一区二区三区| 久久精品这里只有国产中文精品| 亚洲成人精品在线| 日本亚洲国产一区二区三区| 亚洲天堂网视频| 第一区免费在线观看| 男人天堂伊人网| 国产sm重味一区二区三区| 亚洲欧美激情另类| 欧美日韩国产在线观看一区二区三区 |