亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2023-06-26 13:11:54熊超李滿劉曉莉秦黃劉曉娟
        無線互聯(lián)科技 2023年8期
        關(guān)鍵詞:數(shù)據(jù)倉庫

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

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

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

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

        0 引言

        數(shù)據(jù)倉庫是大數(shù)據(jù)背景下的存儲(chǔ)和分析系統(tǒng),能夠支持海量數(shù)據(jù)的存儲(chǔ)和分析,是各大IT企業(yè)的重要組件。中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)發(fā)布的第49次《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》顯示,截至2021年12月,中國網(wǎng)民規(guī)模達(dá)10.32億人,較2020年12月增長4 296萬人,互聯(lián)網(wǎng)普及率達(dá)73.0%。在如此龐大的網(wǎng)民數(shù)量下,每一天都會(huì)產(chǎn)生海量的數(shù)據(jù),而雙十一、618這種購物高峰期的前后一周內(nèi),各大互聯(lián)網(wǎng)企業(yè)的用戶產(chǎn)生的數(shù)據(jù)量和訂單都會(huì)激增,所以各大企業(yè)都會(huì)在這段時(shí)間內(nèi)臨時(shí)增加大量服務(wù)器。由于在數(shù)據(jù)倉庫集群中,每增刪一個(gè)服務(wù)器都需要對集群中所有節(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)修改,完美地解決了高峰期所帶來的大量重復(fù)任務(wù),減少了運(yùn)維人員的工作量,提升了運(yùn)維的效率[1-2]。

        1 Ansible的工作原理

        Ansible是基于Python的paramiko模塊開發(fā)的一款輕量級自動(dòng)化運(yùn)維工具(見圖1),不遵循Client/agents架構(gòu),基于模塊化工作,一共有3 387種模塊,其中包括Command和shell模塊,能夠代替shell腳本完成大部分的工作內(nèi)容。Ansible安裝完成之后會(huì)生成/etc/ansible/hosts主機(jī)清單文件,在執(zhí)行Ansible命令時(shí),Ansible會(huì)訪問這個(gè)文件拿到相應(yīng)的所有主機(jī)地址,通過SSH來批量執(zhí)行模塊,并且Ansible對shell模塊還做了一些優(yōu)化。通過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ī),裝扮成事先通過Ansible中task定義好的角色。task實(shí)際是調(diào)用Ansible中的一個(gè)模塊,將多個(gè)Play組織在一個(gè)Playbook中,就可以按照一定的順序執(zhí)行預(yù)定義的動(dòng)作。

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

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

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

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

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

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

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

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

        關(guān)鍵配置主要包括:(1)配置SSH免密連接,需要Ansible節(jié)點(diǎn)對集群所有節(jié)點(diǎn)免密登錄。(2)Ansible節(jié)點(diǎn)安裝Ansible。(3)準(zhǔn)備集群需要的所有組件的壓縮包。此外還需要完成系統(tǒng)的一些基礎(chǔ)配置,這些基礎(chǔ)配置也都可以通過Ansible來批量完成,例如:執(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)閉開機(jī)自動(dòng)開啟,執(zhí)行ansible all -m copy -a “src=path to hosts dest=/etc/hosts”為所有主機(jī)添加主機(jī)映射等。

        3.2 編寫role并測試

        工作人員創(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),分別對應(yīng)tasks目錄中的3個(gè)yml文件:install.yml,config.yml,start.yml。除此之外,還有配置文件的模板文件,Ansible通過模板文件來動(dòng)態(tài)修改配置文件。

        4 Ansible部署和測試

        編寫好的role不能直接執(zhí)行,在Ansible架構(gòu)中只提供了單個(gè)模塊的執(zhí)行命令(ansible)和Playbook的執(zhí)行命令(ansible-playbook)。想要執(zhí)行role必須通過Playbook來調(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)前用戶對目標(biāo)主機(jī)能夠通過SSH免密登錄。

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

        5 結(jié)語

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

        猜你喜歡
        數(shù)據(jù)倉庫
        基于數(shù)據(jù)倉庫的數(shù)據(jù)傾斜解決方案研究
        基于數(shù)據(jù)倉庫的住房城鄉(xiāng)建設(shè)信息系統(tǒng)整合研究
        頁巖氣工程大數(shù)據(jù)倉庫建設(shè)與管理系統(tǒng)開發(fā)
        錄井工程(2017年3期)2018-01-22 08:39:50
        分布式存儲(chǔ)系統(tǒng)在液晶面板制造數(shù)據(jù)倉庫中的設(shè)計(jì)
        電子制作(2016年15期)2017-01-15 13:39:15
        探析電力系統(tǒng)調(diào)度中數(shù)據(jù)倉庫技術(shù)的應(yīng)用
        基于數(shù)據(jù)倉庫的數(shù)據(jù)分析探索與實(shí)踐
        91日本在线精品高清观看| 午夜免费电影| а天堂中文最新一区二区三区| 久久精品国产亚洲av大全| 色伊人国产高清在线| 日韩精品极品免费观看| 久久91精品国产一区二区| 亚洲色一区二区三区四区| 亚洲日产一线二线三线精华液| 粗了大了 整进去好爽视频| 最新国产美女一区二区三区| 日韩国产自拍视频在线观看| 一区二区精品国产亚洲| 亚洲国产成人片在线观看| 亚洲精品毛片一区二区三区 | 欧美国产日韩a在线视频| 国内精品91久久久久| 亚洲中文字幕一二区精品自拍| 伊人久久这里只有精品| 国产又色又爽又黄刺激在线视频| 亚洲不卡中文字幕无码| 国产 无码 日韩| 特级黄色大片性久久久| 久久久久久自慰出白浆| a级国产乱理伦片在线播放| 国产免费久久精品99re丫y| 国产av一区二区三区在线| 国产一区二区三区不卡在线观看| 三级全黄的视频在线观看| 日本一区午夜艳熟免费 | 国产白嫩护士被弄高潮| 国产亚洲婷婷香蕉久久精品| 日本女同伦理片在线观看| 少妇又紧又爽丰满在线视频| 中文字幕在线亚洲精品| 女人夜夜春高潮爽a∨片| 国产美女亚洲精品一区| 日本熟妇中出高潮视频| а√中文在线资源库| 国产真实乱人偷精品人妻| 伊人亚洲综合影院首页|