• 
    

    
    

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

      ?

      開源組件在新華社數(shù)據(jù)服務(wù)平臺中的應(yīng)用

      2018-08-17 07:27:42喬愛軍
      中國傳媒科技 2018年7期
      關(guān)鍵詞:開源服務(wù)平臺集群

      文/喬愛軍

      隨著媒體融合發(fā)展的要求,移動互聯(lián)網(wǎng)的深入普及,新華社傳統(tǒng)的IT架構(gòu)已經(jīng)不能適應(yīng)新時代報道的需求。新華社于2016年底開始構(gòu)建新一代技術(shù)體系,目前,基于開源技術(shù)的全媒體采編發(fā)平臺(新采編發(fā))、全媒體供稿平臺(新供稿)、辦公協(xié)同平臺(新OA)、全媒體業(yè)務(wù)管理平臺(新聞熱點、新聞線索、落地統(tǒng)計、報道指揮)四大應(yīng)用平臺基本建設(shè)完成。數(shù)據(jù)服務(wù)平臺作為新華社數(shù)據(jù)匯聚中心,為上述四大平臺提供底層支撐?,F(xiàn)數(shù)據(jù)服務(wù)平臺已經(jīng)初步建成,提供了數(shù)據(jù)接入、存儲、服務(wù)、處理、分析、統(tǒng)計、應(yīng)用等服務(wù),實現(xiàn)了社內(nèi)稿件、引進資源、互聯(lián)網(wǎng)數(shù)據(jù)、用戶信息、行為數(shù)據(jù)和服務(wù)審計數(shù)據(jù)的聚合,為各應(yīng)用系統(tǒng)提供數(shù)據(jù)服務(wù)。數(shù)據(jù)服務(wù)平臺采用分布式、開源的架構(gòu)體系,輔助于一體化分層的監(jiān)控體系,為新華社融合報道提供了強有力的支撐。

      1. 數(shù)據(jù)服務(wù)平臺概況

      數(shù)據(jù)服務(wù)平臺對外提供四大類的服務(wù),即服務(wù)管理、數(shù)據(jù)服務(wù)、大數(shù)據(jù)計算服務(wù)和GlusterFS文件存儲服務(wù)。服務(wù)管理實現(xiàn)服務(wù)接口的統(tǒng)一管理,提供服務(wù)注冊、發(fā)現(xiàn)、路由、管理等功能。服務(wù)管理除了注冊和管理數(shù)據(jù)服務(wù)平臺自己的服務(wù)外,還注冊了用戶認證管理系統(tǒng)和辦公協(xié)同平臺等其他系統(tǒng)的服務(wù)。數(shù)據(jù)服務(wù)目前提供了基礎(chǔ)服務(wù)、全文檢索、數(shù)據(jù)訂閱、語義分析、推薦、標(biāo)簽、用戶信息、資源管理8類99個服務(wù)。大數(shù)據(jù)計算服務(wù)在新華社總社、東壩機房分別部署了17個節(jié)點和14個節(jié)點。大數(shù)據(jù)計算服務(wù)可為全社提供Spark、Storm計算服務(wù),HDFS、HBase、Hive存儲分析能力。GlusterFS分布式文件存儲服務(wù),同樣分為兩個集群,目前總社主集群30個節(jié)點,東壩備份集群12個節(jié)點,已經(jīng)為四大平臺和數(shù)據(jù)服務(wù)平臺提供了322T的空間。

      圖 1 數(shù)據(jù)服務(wù)平臺總體架構(gòu)圖

      數(shù)據(jù)服務(wù)平臺自下而上分為四層,即基礎(chǔ)組件層、數(shù)據(jù)處理層、數(shù)據(jù)服務(wù)層和應(yīng)用層,依托于基礎(chǔ)設(shè)施層。

      2.基礎(chǔ)組件層

      基礎(chǔ)組件層使用的主要開源組件有18個,為數(shù)據(jù)服務(wù)平臺、全媒體采編發(fā)、新OA、落地統(tǒng)計、影響力分析和項目管理系統(tǒng)提供服務(wù)。根據(jù)開源組件在數(shù)據(jù)服務(wù)平臺中的功能,我們將其分為數(shù)據(jù)庫、分布式文件存儲、大數(shù)據(jù)計算、數(shù)據(jù)交換、其他五類。

      2.1 數(shù)據(jù)庫類組件

      數(shù)據(jù)庫類組件主要包括MongoDB、ES、MySQL(MariaDB)、HBase、Codis/Redis。MongoDB用于存儲社內(nèi)稿件,HBASE和ES除存儲社內(nèi)稿件外還存儲互聯(lián)網(wǎng)數(shù)據(jù),MySQL用于系統(tǒng)運行所需要的關(guān)系型數(shù)據(jù)。Codis/Redis在數(shù)據(jù)服務(wù)平臺中存儲頻繁使用的業(yè)務(wù)數(shù)據(jù),如授權(quán)使用的分類、用戶行為數(shù)據(jù)、稿件推薦數(shù)據(jù)等。

      MongoDB是專為可擴展性、高性能和高可用性而設(shè)計的數(shù)據(jù)庫,介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品。它可以從單服務(wù)器部署擴展到大型、復(fù)雜的多數(shù)據(jù)中心架構(gòu)。利用內(nèi)存計算的優(yōu)勢,MongoDB能夠提供高性能的數(shù)據(jù)讀寫操作。 MongoDB的副本復(fù)制和自動故障轉(zhuǎn)移功能使應(yīng)用程序具有企業(yè)級的可靠性和操作靈活性,分片機制提供了方便的橫向擴展能力。其非結(jié)構(gòu)化的特性,方便存儲各種類型稿件數(shù)據(jù)、用戶數(shù)據(jù)、日志數(shù)據(jù)。在數(shù)據(jù)服務(wù)平臺中使用MongoDB數(shù)據(jù)庫代替了原來的Oracle數(shù)據(jù)庫存儲社內(nèi)稿件,作為核心應(yīng)用數(shù)據(jù)庫。

      ES是Elastic Search的簡稱,它是由多個Lucene實例組成的分布式檢索和分析系統(tǒng),是分布式的搜索引擎和數(shù)據(jù)分析引擎,可以對海量數(shù)據(jù)進行近實時處理。ES結(jié)合了全文檢索、數(shù)據(jù)分析以及分布式技術(shù),提供了強大功能。數(shù)據(jù)服務(wù)平臺中使用ES做檢索處理。

      MySQL是一種大家廣泛熟悉的關(guān)系數(shù)據(jù)庫。但MySQL被Oracle公司掌控后,MySQL原來開發(fā)者創(chuàng)立了MariaDB分支。MariaDB與Mysql高度兼容,并保證開源免費。數(shù)據(jù)服務(wù)平臺主要使用MySQL保存服務(wù)和應(yīng)用信息、線路和目錄監(jiān)控信息、分發(fā)信息等系統(tǒng)元數(shù)據(jù)、配置等結(jié)構(gòu)化數(shù)據(jù)。

      HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,該技術(shù)來源于 Fay Chang 所撰寫的Google論文Bigtable。HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。HBase主要用于存儲社內(nèi)稿件和互聯(lián)網(wǎng)稿件等數(shù)據(jù),用于離線數(shù)據(jù)分析。

      Codis/Redis是KeyValue型內(nèi)存數(shù)據(jù)庫。Codis是一個分布式 Redis 解決方案,通過Codis Proxy,將多臺Redis服務(wù)器集中起來使用,實現(xiàn)Redis服務(wù)器橫向擴展。對于上層的應(yīng)用來說, 連接到 Codis Proxy 和連接原生的Redis Server 沒有明顯的區(qū)別,上層應(yīng)用可以像使用單機的 Redis 一樣使用Codis。 Codis 底層會處理請求的轉(zhuǎn)發(fā),不停機的數(shù)據(jù)遷移等工作, 這些后臺事務(wù)對于前面的客戶端來說是透明的, 可以簡單地認為后邊連接的是一個內(nèi)存無限大的 Redis 服務(wù)。

      2.2 分布文件存儲類組件

      分布式文件存儲類組件包含HDFS、GlusterFS。

      HDFS是Hadoop分布式文件系統(tǒng)的簡稱。HDFS是一個高度容錯性的系統(tǒng),適合部署在廉價通用的機器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS放寬了一部分POSIX約束,實現(xiàn)流式讀取文件系統(tǒng)數(shù)據(jù)的目的。數(shù)據(jù)服務(wù)平臺中,HDFS主要為Hive、HBase等組件提供文件系統(tǒng)支撐服務(wù),存儲日志及用戶行為數(shù)據(jù)等。

      GlusterFS是一種分布式文件系統(tǒng),存儲的對象為文件。它將多臺服務(wù)器上的空間統(tǒng)一管理起來形成存儲池供外界使用。相比于其他的分布式文件系統(tǒng),GlusterFS最大的優(yōu)點在于運維簡單,極易上手。GlusterFS的架構(gòu)為三層:集群、卷、Brick。在數(shù)據(jù)服務(wù)平臺中,按照存儲文件大小將集群分為三類:一類是小文件集群,存儲1k-100K左右大小的文件,主要涉及CNML文件,圖片的縮略圖,部分音視頻的關(guān)鍵幀;另一類是中文件集群,存儲500k-10M左右的文件,一般涉及圖片、Word、Pdf等附件;最后一類是大文件集群,存儲10M以上的文件,主要涉及音視頻文件。每個集群會根據(jù)業(yè)務(wù)需要,分別建立不同的卷,每個卷由指定的集群中的部分或全部服務(wù)器下的Brick組成。Brick是一個被建立的目錄,用來存儲數(shù)據(jù)。

      2.3 大數(shù)據(jù)計算類組件

      大數(shù)據(jù)計算類組件包括Storm、Hive、Spark、YARN。

      Storm用于分布式的實時流式數(shù)據(jù)處理。應(yīng)用場景有實時分析、連續(xù)計算、在線學(xué)習(xí)、分布式RPC、ETL等。Storm集群由Nimbus、Supervisor節(jié)點組成,Nimbus是主控節(jié)點,用于提交任務(wù)、分配集群任務(wù),集群監(jiān)控;Supervisor是計算節(jié)點,接受Nimbus分配的任務(wù),管理屬于自己的Worker進程;Nimbus和Supervisor通過Zookeeper進行協(xié)同。數(shù)據(jù)服務(wù)平臺中,使用Storm實現(xiàn)數(shù)據(jù)的格式轉(zhuǎn)換和數(shù)據(jù)轉(zhuǎn)儲,為數(shù)據(jù)分析提供數(shù)據(jù)基礎(chǔ)。

      Hive是建立在Hadoop上的數(shù)據(jù)倉庫基礎(chǔ)構(gòu)架。它提供了一系列的工具,可以用來進行數(shù)據(jù)提取轉(zhuǎn)化加載(ETL),可以存儲、查詢和分析存儲在Hadoop中的大規(guī)模數(shù)據(jù)。Hive 定義了簡單的類 SQL 查詢語言,稱為 HQL,它允許熟悉 SQL 的用戶查詢數(shù)據(jù)。同時,這個語言也允許MapReduce開發(fā)者開發(fā)自定義的 mapper 和reducer 來處理復(fù)雜的分析工作。

      Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計的快速通用的計算引擎。Spark是加州大學(xué)伯克利分校的AMP實驗室所開源的類Hadoop MapReduce的通用并行框架。Spark擁有Hadoop MapReduce所具有的優(yōu)點,但不同于MapReduce的是,Spark中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS。因此,Spark能更好地適用于數(shù)據(jù)挖掘與機器學(xué)習(xí)等場景。

      YARN是大數(shù)據(jù)集群中資源的管理和調(diào)度模塊。YARN的基本思想是將資源管理、任務(wù)調(diào)度和監(jiān)控分成不同的模塊。主要方法是創(chuàng)建一個全局的ResourceManager(RM)和為每個應(yīng)用程序創(chuàng)建的ApplicationMaster(AM)。這里的應(yīng)用程序是指單一的作業(yè)或作業(yè)的DAG(有向無環(huán)圖)。ResourceManager控制整個集群并管理基礎(chǔ)計算資源的分配。ResourceManager 將各個資源部分(計算、內(nèi)存、帶寬等)精心安排給NodeManager。ResourceManager 還與 ApplicationMaster 一起分配資源,與 NodeManager 一起啟動和監(jiān)視它們的基礎(chǔ)應(yīng)用程序。

      2.4 數(shù)據(jù)交換類組件

      數(shù)據(jù)服務(wù)平臺使用了兩種消息交換組件,分別是RabbitMQ和Kafka。使用消息交換組件有兩大優(yōu)點:一是系統(tǒng)之間解耦,降低系統(tǒng)間的耦合性;另一個是業(yè)務(wù)削峰,當(dāng)生產(chǎn)者大量產(chǎn)生數(shù)據(jù)時,消費者無法快速消費,消息組件作為中間層來保存這個數(shù)據(jù),達到業(yè)務(wù)削峰的目的。

      RabbitMQ是實現(xiàn)AMQP(即Advanced Message Queuing Protocol,高級消息隊列協(xié)議)的一種消息中間件,最初起源于金融系統(tǒng),用于在分布式系統(tǒng)中存儲轉(zhuǎn)發(fā)消息。在數(shù)據(jù)服務(wù)平臺中,利用RabbitMQ實現(xiàn)各應(yīng)用程序間的消息傳遞,完成稿件處理的各流程,是數(shù)據(jù)服務(wù)平臺的核心應(yīng)用。下圖為數(shù)據(jù)服務(wù)平臺中新聞稿件處理流程圖,從圖中可以看到核心的消息隊列是由RabbitMQ來實現(xiàn)的,它將數(shù)據(jù)服務(wù)平臺內(nèi)部各模塊和外部各系統(tǒng)連接起來。

      Kafka是一個分布式的流平臺,它有三個關(guān)鍵的功能:發(fā)布和定閱流式記錄,類似消息隊列或企業(yè)消息系統(tǒng);以容錯的方式存儲流式消息記錄;及時處理流式消息記錄。Kafka主要用來構(gòu)建實時的流式數(shù)據(jù)管道,構(gòu)建實時流式數(shù)據(jù)應(yīng)用。在數(shù)據(jù)服務(wù)平臺中,Kafka主要用于互聯(lián)網(wǎng)數(shù)據(jù)、用戶行為數(shù)據(jù)、服務(wù)審計數(shù)據(jù)、日志數(shù)據(jù)的交換和傳輸。比如,落地統(tǒng)計系統(tǒng)從互聯(lián)網(wǎng)采集的數(shù)據(jù)經(jīng)過清洗和過濾后,放到Kafka的topic中,供數(shù)據(jù)服務(wù)平臺入庫或其他系統(tǒng)進行處理分析。探頭系統(tǒng)采集的用戶行為數(shù)據(jù)、服務(wù)管理系統(tǒng)的服務(wù)審計數(shù)據(jù)、應(yīng)用系統(tǒng)和基礎(chǔ)組件的日志數(shù)據(jù)通過Kafka傳給Storm進行處理或存入HDFS供其他應(yīng)用分析處理。

      圖 2 新聞稿件處理流程

      2.5 其他類組件

      其他類開源組件包括Zookeeper、Nginx、Sqoop、Ambari、ELK。

      Zookeeper是為分布式應(yīng)用提供協(xié)同服務(wù)的高性能分布式系統(tǒng),它可以提供配置信息維護服務(wù)、命名服務(wù)、分布式同步服務(wù)、組服務(wù)。大部分基于分布式的大數(shù)據(jù)組件需要Zookeeper提供支撐。

      Nginx是俄羅斯人編寫的十分輕量級、高性能的HTTP和反向代理服務(wù)器,也是一個IMAP/POP3/SMTP代理服務(wù)器。Nginx以事件驅(qū)動的方式編寫,具有非常好的性能,同時也是一個非常高效的反向代理、負載均衡。Nginx具有很高的穩(wěn)定性,支持熱部署,啟動容易, 并且?guī)缀蹩梢宰龅?*24不間斷運行,即使運行數(shù)個月也不需要重新啟動。還能夠在不間斷服務(wù)的情況下,對軟件版本進行升級。數(shù)據(jù)服務(wù)平臺中大量應(yīng)用使用Nginx做代理,實現(xiàn)負載均衡,或直接提供Web應(yīng)用服務(wù)。

      Sqoop是一個用來將Hadoop和關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)相互轉(zhuǎn)移的工具,可以將一個關(guān)系型數(shù)據(jù)庫(如MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)入進到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)入到關(guān)系型數(shù)據(jù)庫中。對于某些NoSQL數(shù)據(jù)庫它也提供了連接器。數(shù)據(jù)服務(wù)平臺使用此工具將MySQL中的用戶數(shù)據(jù)導(dǎo)入到HIve中。

      Ambari是一種基于Web的管理工具,支持Apache Hadoop集群的部署、管理和監(jiān)控。Ambari已支持大多數(shù)Hadoop組件,包括HDFS、MapReduce、Hive、Pig、Hbase、Zookeeper、Sqoop和Hcatalog等。使用Ambari可以方便部署安裝Hadoop集群,起停Hadoop集群中的相關(guān)組件,監(jiān)控Hadoop集群及相關(guān)組件的運行狀況。

      ELK由三個開源組件(ES、Logstash、Kibana)構(gòu)成的日志收集、處理和展示工具。數(shù)據(jù)服務(wù)平臺使用ELK做應(yīng)用日志分析。

      3. 數(shù)據(jù)服務(wù)層和數(shù)據(jù)處理層

      數(shù)據(jù)服務(wù)層和數(shù)據(jù)處理層的部分功能使用Spring Cloud Netflix微服務(wù)架構(gòu)實現(xiàn)。通過Eureka + Zuul +Ribbon + Feign + Hystrix構(gòu)建微服務(wù)架構(gòu),將數(shù)據(jù)處理層中的公共模塊封裝成服務(wù)接口,注冊到Eureka服務(wù)器上。Eureka維護著每個服務(wù)的生命周期,并通過心跳確定服務(wù)是否正常。Zuul部署在Eureka前端,作為智能路由為外部請求提供統(tǒng)一入口。服務(wù)客戶端使用Feign方式調(diào)用,通過Ribbon實現(xiàn)服務(wù)端的負載均衡;Hystrix斷路器為避免發(fā)生雪崩效應(yīng)而引入,對服務(wù)延遲和故障提供更加強大的容錯能力。

      結(jié)語

      數(shù)據(jù)服務(wù)平臺利用開源組件的分布可擴展性,結(jié)合數(shù)據(jù)服務(wù)層使用的微服務(wù)架構(gòu),使新華社數(shù)據(jù)管理架構(gòu)出現(xiàn)兩大轉(zhuǎn)變:第一個轉(zhuǎn)變是從庫到數(shù)據(jù)的變化。數(shù)據(jù)的存儲方式由集中式的關(guān)系型數(shù)據(jù)庫轉(zhuǎn)換成了分布式數(shù)據(jù)庫;數(shù)據(jù)加工由原來簡單的增、刪、改、查轉(zhuǎn)換為數(shù)據(jù)的處理、分析、挖掘;數(shù)據(jù)的種類由原來單一的新聞稿件擴展到了互聯(lián)網(wǎng)數(shù)據(jù)、用戶行為數(shù)據(jù)、日志數(shù)據(jù)等多元化數(shù)據(jù);數(shù)據(jù)量也由發(fā)生了巨大變化,原來每日生成的稿件數(shù)據(jù)約幾萬條,現(xiàn)在每日采集清理后的互聯(lián)網(wǎng)數(shù)據(jù)達三百多萬條,另外還有大量的用戶行為和日志數(shù)據(jù)。第二個轉(zhuǎn)變是從系統(tǒng)到平臺的轉(zhuǎn)變。原來的IT系統(tǒng)以單個系統(tǒng)為單位對外提供功能,隨著時間的發(fā)展,新華社的IT系統(tǒng)林立,功能交錯依賴,眾多新系統(tǒng)上線后,老舊系統(tǒng)不能及時下線并占用大量資源,增大了運維難度;平臺的建立,完成了從提供功能向提供服務(wù)能力的轉(zhuǎn)變,把功能分解為服務(wù),統(tǒng)一注冊管理,避免了重復(fù)建設(shè),降低了運維難度;平臺的服務(wù)對象,由單一應(yīng)用擴展到同時為多個應(yīng)用提供服務(wù);平臺建設(shè)由原來的使用商業(yè)化產(chǎn)品轉(zhuǎn)向使用開源組件,節(jié)省了系統(tǒng)建設(shè)成本,提高了系統(tǒng)上線速度,滿足了互聯(lián)網(wǎng)時代產(chǎn)品快速上線、不斷迭代的要求;新的平臺使用水平分層、橫向擴展的分布式架構(gòu),取代原來系統(tǒng)使用的垂直一體架構(gòu),從而實現(xiàn)服務(wù)能力快速、低成本、動態(tài)平滑擴展。

      猜你喜歡
      開源服務(wù)平臺集群
      密碼服務(wù)平臺
      打造一體化汽車服務(wù)平臺
      論基于云的電子政務(wù)服務(wù)平臺構(gòu)建
      海上小型無人機集群的反制裝備需求與應(yīng)對之策研究
      五毛錢能買多少頭牛
      一種無人機集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計
      電子制作(2018年11期)2018-08-04 03:25:40
      基于云計算的民航公共信息服務(wù)平臺
      Python與Spark集群在收費數(shù)據(jù)分析中的應(yīng)用
      勤快又呆萌的集群機器人
      大家說:開源、人工智能及創(chuàng)新
      阿鲁科尔沁旗| 岢岚县| 桓仁| 平原县| 雅江县| 汤原县| 平舆县| 额尔古纳市| 丰镇市| 大理市| 湘潭县| 卓资县| 哈尔滨市| 梁河县| 北宁市| 石台县| 库伦旗| 锦州市| 陇西县| 太保市| 察雅县| 和林格尔县| 维西| 逊克县| 镇巴县| 汝州市| 鄂托克旗| 泌阳县| 洪泽县| 白朗县| 新泰市| 砀山县| 万盛区| 宣化县| 古蔺县| 揭阳市| 新余市| 阳信县| 汉源县| 北票市| 屯留县|