• 
    

    
    

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

      基于HDFS的高校開源軟件鏡像站架構(gòu)探究*

      2023-01-30 04:08:18王曉建
      計(jì)算機(jī)時(shí)代 2023年1期
      關(guān)鍵詞:鏡像開源頁面

      王曉建,袁 磊

      (云南師范大學(xué),云南 昆明 650500)

      0 引言

      隨著信息技術(shù)的快速發(fā)展和高校信息化建設(shè)的不斷完善和深入,越來越多的高校搭建了自己的開源軟件鏡像站點(diǎn),大部分高校搭建自己的鏡像站點(diǎn)都是在內(nèi)網(wǎng),有少部分也對外服務(wù),但是高校師生在訪問這些站點(diǎn)時(shí)也會(huì)出現(xiàn)速度慢,同步時(shí)間長等問題,還有許多開源軟件應(yīng)用在科學(xué)計(jì)算等專業(yè)領(lǐng)域,如果高校沒有自己的開源鏡像,就會(huì)導(dǎo)致一方面用戶必須忍受緩慢不穩(wěn)定的網(wǎng)絡(luò)連接、浪費(fèi)大量時(shí)間,另一方面學(xué)校也浪費(fèi)了大量入口帶寬,而隨著互聯(lián)網(wǎng)和分布式存儲(chǔ)技術(shù)的發(fā)展,搭高校急需搭建屬于自己的開源軟件鏡像站點(diǎn)來滿足師生的學(xué)習(xí)和科研需求,而HDFS具備了容錯(cuò)性高、成本低、通用性好等特點(diǎn)[1-2],易于搭建能存儲(chǔ)大量碎片文件的分布式存儲(chǔ)系統(tǒng)。

      1 Hadoop及相關(guān)技術(shù)簡介

      HDFS 分布式文件系統(tǒng)是Hadoop 核心技術(shù)之一,提供了開源的存儲(chǔ)框架,是一個(gè)實(shí)現(xiàn)數(shù)據(jù)分布式存儲(chǔ)的文件系統(tǒng)[3]。該系統(tǒng)通過高效的分布式算法集成多集群節(jié)點(diǎn),對大數(shù)據(jù)量的數(shù)據(jù)進(jìn)行分布式存儲(chǔ)和有效備份,當(dāng)其中一個(gè)節(jié)點(diǎn)宕機(jī)時(shí),系統(tǒng)可以讀取其他有效節(jié)點(diǎn)的數(shù)據(jù),并且系統(tǒng)對每個(gè)節(jié)點(diǎn)的物理性能要求并不高。因此,HDFS 采用主/從架構(gòu),包括客戶端、主控節(jié)點(diǎn)(NameNode)和數(shù)據(jù)節(jié)(DataNode)。其中,NameNode 主要負(fù)責(zé)管理文件系統(tǒng)的命名空間、元數(shù)據(jù)信息及客戶端對文件的訪問;DataNode 主要負(fù)責(zé)接收并處理客戶端的讀寫請求和NameNode 的調(diào)度,存儲(chǔ)并檢索HDFS 的數(shù)據(jù)塊,是文件存儲(chǔ)的實(shí)際位置,并通過周期性的心跳報(bào)文將所有數(shù)據(jù)塊信息發(fā)送給NameNode。HDFS 的這種主/從設(shè)計(jì)結(jié)構(gòu)使得用戶數(shù)據(jù)不會(huì)流經(jīng)主控節(jié)點(diǎn),從而提高系統(tǒng)性能和效率。

      Hadoop 是典型的主從(Master/Slave)結(jié)構(gòu)。其構(gòu)成包括一個(gè)NameNode(名稱節(jié)點(diǎn))和多個(gè)DataNode(數(shù)據(jù)節(jié)點(diǎn))。主服務(wù)器是由NameNode 構(gòu)成的,它的主要作用是管理HDFS(分布式文件系統(tǒng))的NameSpace(命名空間),其中保存了FsImage和EditLog兩個(gè)核心的數(shù)據(jù)結(jié)構(gòu)。前者用來對文件系統(tǒng)樹和文件樹中所有文件的元數(shù)據(jù)進(jìn)行維護(hù);后者則用來進(jìn)行創(chuàng)建文件、刪除文件、重命名文件等一系列操作,并執(zhí)行Client提出的文件訪問命令。本文使用HDFS 作為主要的后端存儲(chǔ)系統(tǒng),能較好地利用服務(wù)器資源和存儲(chǔ)資源,并且達(dá)到很好地冗余效果。

      2 鏡像站點(diǎn)的架構(gòu)與部署

      2.1 基于Hadoop架構(gòu)的鏡像站

      HDFS 采用master/worker 架構(gòu)[4]。一 個(gè)HDFS 集群是有一個(gè)Namenode 和若干Datanode 組成[5]。Namenode 是一個(gè)中心服務(wù)器,負(fù)責(zé)管理文件系統(tǒng)的namespace 和客端對文件的訪問。Datanode 在集群中一般是一個(gè)節(jié)點(diǎn)一個(gè),負(fù)責(zé)管理節(jié)點(diǎn)上它們附帶的存儲(chǔ)。在內(nèi)部,一個(gè)文件其實(shí)分成一個(gè)或多個(gè)block,這些block 存儲(chǔ)在Datanode 集合里。Namenode 執(zhí)行文件系統(tǒng)的namespace 操作,例如打開、關(guān)閉、重命名文件和目錄,同時(shí)決定block 到具體Datanode 節(jié)點(diǎn)的映射。Datanode 在Namenode 的指揮下進(jìn)行block 的創(chuàng)建、刪除和復(fù)制。Namenode 和Datanode 都是設(shè)計(jì)成可以跑在普通的廉價(jià)的運(yùn)行Linux 的機(jī)器上。HDFS采用java 語言開發(fā),因此可以部署在很大范圍的機(jī)器上。一個(gè)典型的部署場景是一臺(tái)機(jī)器跑一個(gè)單獨(dú)的Namenode節(jié)點(diǎn),集群中的其他機(jī)器各跑一個(gè)Datanode實(shí)例。Namenode 是所有HDFS 元數(shù)據(jù)的仲裁者和管理者,這樣,用戶數(shù)據(jù)永遠(yuǎn)不會(huì)流過Namenode,便于管理和維護(hù)。Hadoop的架構(gòu)圖如圖1所示。

      圖1 Hadoop架構(gòu)圖

      鏡像站使用HDFS存儲(chǔ)數(shù)據(jù)有下面四個(gè)優(yōu)點(diǎn):

      ⑴故障檢測、硬件容錯(cuò)、數(shù)據(jù)冗余

      HDFS 文件系統(tǒng)中的所有文件都以block 的方式存儲(chǔ)在集群的節(jié)點(diǎn)上,而且還有多副本的特性,保證了硬件的容錯(cuò),當(dāng)某一節(jié)點(diǎn)損壞時(shí),數(shù)據(jù)不會(huì)丟失。如果出現(xiàn)一些不可抗拒的因素導(dǎo)致其中某節(jié)點(diǎn)損壞時(shí),能通過Hdfs Trash(回收箱)或HdfsSnapShot(快照)方式恢復(fù)數(shù)據(jù)。

      ⑵處理流式的數(shù)據(jù)訪問

      流式數(shù)據(jù)處理方式:一次寫入,多次讀取[6]。HDFS 的數(shù)據(jù)處理規(guī)模比較大,應(yīng)用一次需要訪問大量的數(shù)據(jù),同時(shí)這些應(yīng)用一般都是批量處理,而不是用戶交互式處理。應(yīng)用程序能以流的形式訪問數(shù)據(jù)集。鏡像站的文件大多數(shù)都是ISO或者一些軟件的安裝包,所有流式處理數(shù)據(jù)對這些文件的訪問是有好處的。

      ⑶適合存儲(chǔ)大文件

      搭建鏡像系統(tǒng)需要存儲(chǔ)大量的ISO 文件和一些Linux的軟件包,所需要的文件是通過同步的方式下載到本地,這些文件大部分都是幾百GB,甚至達(dá)TB 大小的文件,很適合使用HDFS的文件系統(tǒng)來存儲(chǔ)。

      ⑷可構(gòu)建在廉價(jià)的機(jī)器上

      很多高校并不像很多商業(yè)公司一樣,有足夠的服務(wù)器資源和存儲(chǔ)資源,很多服務(wù)器性能可能不是很高,而HDFS 文件系統(tǒng)不需要很高的服務(wù)器性能也能完成部署。

      2.2 服務(wù)器規(guī)劃

      云南師范大學(xué)信息管理處現(xiàn)在共有四臺(tái)閑置服務(wù)器,需要部署Hadoop 文件系統(tǒng),選擇存存儲(chǔ)容量最大的一臺(tái)服務(wù)器作為master,用來存儲(chǔ)鏡像的相關(guān)數(shù)據(jù),其余作為服務(wù)節(jié)點(diǎn),其中worker01 節(jié)點(diǎn)部署備份節(jié)點(diǎn),以便在數(shù)據(jù)丟失的情況下進(jìn)行數(shù)據(jù)的恢復(fù),worker1 和worker2 作為數(shù)據(jù)節(jié)點(diǎn),用來存儲(chǔ)發(fā)行版的相關(guān)更新文件,服務(wù)器規(guī)劃詳情見表1。

      表1 服務(wù)器規(guī)劃

      2.3 服務(wù)器配置

      ⑴主機(jī)名和防火墻設(shè)置

      在服務(wù)器配置之前,需要關(guān)閉防火墻,設(shè)置靜態(tài)IP,且IP 地址為內(nèi)網(wǎng)的IP 地址,使服務(wù)器無法暴露在外部網(wǎng)絡(luò)之中,設(shè)置為上表中的IP 地址,修改hosts 文件,而且需要重新配置,部署完成之后需要讓worker節(jié)點(diǎn)和slave節(jié)點(diǎn)能互相識別,將所有服務(wù)器的IP地址和主機(jī)名添加到該文件中,同時(shí)能夠使節(jié)點(diǎn)之間免密遠(yuǎn)程連接。

      ⑵配置SSH免密登錄

      關(guān)于ssh 免密碼的設(shè)置,要求每兩臺(tái)主機(jī)之間設(shè)置免密碼,自己的主機(jī)與自己的主機(jī)之間也要求設(shè)置免密碼。這項(xiàng)操作可以在root 用戶下執(zhí)行,執(zhí)行完畢公鑰在/root/.ssh/id_rsa.pub。

      ⑶配置Hadoop 相關(guān)文件,配置HDFS 中namenode 的地址和Hadoop運(yùn)行時(shí)產(chǎn)生的的臨時(shí)文件的目錄。

      修改core-site.xml文件:

      ⑷配置同步工具tunasync

      同步原理是使用rsync 做增量同步。本文使用的是清華大學(xué)開源軟件鏡像站開發(fā)的tunasync,這個(gè)工具使用的是自動(dòng)化腳本進(jìn)行增量同步,簡單易用。因?yàn)閠unasync 使用Golang 開發(fā),所以需要先配置Golang 環(huán)境。使用命令行安裝Golang 環(huán)境即可。配置完成后使用以下命令啟動(dòng)同步的任務(wù):

      啟動(dòng)之后可以使用:tunasynctl list-p 12345-all查看同步的進(jìn)程和狀態(tài),如圖2所示。

      圖2 同步進(jìn)程和狀態(tài)

      2.4 配置前端Web頁面

      前端頁面的配置使用的是清華大學(xué)的開源軟件鏡像站點(diǎn)的模板,需要配置站點(diǎn)信息。部署前需要修改頁面相關(guān)信息,編輯_config.yml文件:

      配置完前端信息之后,使用bundle exec jekyll serve--detach-H 0.0.0.0 在本地生成前端所需要的_site目錄,然后將其軟連接到存放同步鏡像的文件夾,開啟Nginx 服務(wù)之后在Nginx 的配置文件中添加鏡像的存放目錄為網(wǎng)站的根目錄。為了便于在前臺(tái)頁面查看同步的相關(guān)信息,可以在后臺(tái)設(shè)置定時(shí)任務(wù),每天凌晨將當(dāng)天同步信息的JSON 文件下載并輸出到_site目錄的static文件夾,便于在前臺(tái)頁面中展示。

      鏡像站的前端使用的是ruby 語言,使用在后臺(tái)生成的頁面,后端使用的是Nginx,服務(wù)器端在后臺(tái)生成頁面,一個(gè)簡單的Web 服務(wù)器軟件(例如TUNA 使用的Nginx),將所有有關(guān)文件設(shè)置好路徑提供下載,就可以實(shí)現(xiàn)最基本的鏡像站功能。鏡像站絕大多數(shù)業(yè)務(wù)均為靜態(tài)文件服務(wù),因此類似的高性能靜態(tài)文件Web 服務(wù)器軟件均可按需選擇,本文使用的是Nginx服務(wù)器來提供對外服務(wù)。Nginx 服務(wù)器將靜態(tài)頁面通過軟連接的方式同步到前端。同步完成之后可以通過同步狀態(tài)頁面查看上一次同步的時(shí)間、大小、狀態(tài)、上游、下一次同步時(shí)間等信息,同步成功后的狀態(tài)如圖3所示。

      圖3 同步狀態(tài)

      3 結(jié)束語

      鏡像站的搭建,存儲(chǔ)上的充分利用和同步是關(guān)鍵。對信息中心存儲(chǔ)資源,基于HDFS 的分布式文件存儲(chǔ)系統(tǒng),能將存儲(chǔ)資源集中使用,而且有較好的冗余性,能在一部分節(jié)點(diǎn)失效的情況下對數(shù)據(jù)進(jìn)行恢復(fù),為高校建設(shè)屬于自己的鏡像站點(diǎn)提供了建議。本鏡像站點(diǎn)還在測試中,在完成后端的所有鏡像文件和軟件的同步之后可將其部署到公網(wǎng),一方面能使校園網(wǎng)的用戶直接用內(nèi)網(wǎng)進(jìn)行訪問,方便師生使用開源軟件鏡像站點(diǎn),另一方面互聯(lián)網(wǎng)用戶也能訪問使用,推動(dòng)開源軟件社區(qū)的發(fā)展。

      本文描述的鏡像站還存在一定的不足和需改進(jìn)之處,比如數(shù)據(jù)丟失時(shí)的恢復(fù)機(jī)制;同時(shí)因?yàn)榇疟P空間有限,所以只是同步了一部分常用的鏡像文件和Linux 常用的軟件包,如果磁盤充足,可以同步更多的鏡像文件和軟件包,能達(dá)到很多商業(yè)軟件公司的效果。此外,由于目前的服務(wù)器是掛載在信息中心的備用服務(wù)器上,所以外網(wǎng)訪問還是會(huì)受到很多影響,帶寬和校園網(wǎng)走的是同一條,所以當(dāng)校園網(wǎng)在線人數(shù)過多時(shí)就會(huì)出現(xiàn)網(wǎng)速變慢,如果有條件可以使用專門的寬帶進(jìn)行升級,能有效提升網(wǎng)絡(luò)訪問的速度。

      猜你喜歡
      鏡像開源頁面
      大狗熊在睡覺
      刷新生活的頁面
      鏡像
      五毛錢能買多少頭牛
      鏡像
      小康(2018年23期)2018-08-23 06:18:52
      大家說:開源、人工智能及創(chuàng)新
      開源中國開源世界高峰論壇圓桌會(huì)議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
      開源計(jì)算機(jī)輔助翻譯工具研究
      鏡像
      小康(2015年4期)2015-03-31 14:57:40
      鏡像
      小康(2015年6期)2015-03-26 14:44:27
      卓资县| 马龙县| 环江| 穆棱市| 广水市| 雅安市| 陵川县| 郸城县| 海晏县| 太谷县| 清镇市| 即墨市| 德庆县| 拉萨市| 格尔木市| 遵义市| 来安县| 旌德县| 栾城县| 故城县| 秭归县| 托克逊县| 卢湾区| 安龙县| 东安县| 贵德县| 开化县| 襄城县| 江孜县| 佛冈县| 平遥县| 东莞市| 岳普湖县| 凤台县| 巢湖市| 从化市| 宜川县| 香格里拉县| 突泉县| 平远县| 新龙县|