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

大數(shù)據(jù)背景下批處理優(yōu)化

2024-05-29 00:00:00郭俊
中國新通信 2024年5期
關(guān)鍵詞:大數(shù)據(jù)

摘要:隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡(luò)用戶量呈現(xiàn)爆炸式增長,各應(yīng)用系統(tǒng)的數(shù)據(jù)量正在急劇增加。海量的數(shù)據(jù)對于批處理程序的效率提出了更高的要求,原始的基于單實例數(shù)據(jù)庫單節(jié)點應(yīng)用部署的處理方式已經(jīng)無法滿足需求。因此,在底層數(shù)據(jù)存儲方面,技術(shù)人員可以根據(jù)業(yè)務(wù)特點,使用分布式數(shù)據(jù)庫并按照特定字段進行分片存儲;在應(yīng)用程序的算法設(shè)計方面,技術(shù)人員則可以利用分布式服務(wù)多節(jié)點多線程并發(fā)處理優(yōu)勢,并基于生產(chǎn)者消費者模型優(yōu)化異步處理模式。

關(guān)鍵詞:大數(shù)據(jù);分布式數(shù)據(jù)庫;分布式服務(wù);批處理

一、引言

近年來,隨著信息化的不斷發(fā)展,應(yīng)用軟件積累下來的數(shù)據(jù)總量呈指數(shù)級增長,數(shù)據(jù)資產(chǎn)越來越被重視,并構(gòu)建出了基于大數(shù)據(jù)的批處理程序進行數(shù)據(jù)挖掘分析。然而,互聯(lián)網(wǎng)領(lǐng)域數(shù)據(jù)挖掘從某些方面來說仍然處于萌芽起步階段,依然存在制約和深化數(shù)據(jù)挖掘應(yīng)用的困境和瓶頸問題[1]。在初期,對數(shù)據(jù)量估算以及技術(shù)架構(gòu)滯后會導(dǎo)致批處理程序運行時間過長,而長期占用數(shù)據(jù)庫連接會導(dǎo)致數(shù)據(jù)庫對外服務(wù)能力降低。因此,如何整體優(yōu)化批處理,以提高運行效率,并降低運行時間,就顯得尤為重要。

本文利用分布式的MySQL數(shù)據(jù)庫替代單實例的Oracle數(shù)據(jù)庫,在充分梳理業(yè)務(wù)邏輯的基礎(chǔ)上,根據(jù)關(guān)鍵字段進行分庫分片處理,以提高SQL執(zhí)行的并發(fā)性。同時,考慮到單節(jié)點服務(wù)器的劣勢,本文使用多節(jié)點多進程的處理模式,形成了一個批處理計算集群,同時引入了消息隊列機制,對批處理任務(wù)進行拆分,以便更好地發(fā)揮分布式處理的優(yōu)勢。

二、系統(tǒng)設(shè)計

(一)數(shù)據(jù)庫設(shè)計

在關(guān)系型數(shù)據(jù)庫中,Oracle憑借其較好的性能和多樣的功能得到了眾多軟件開發(fā)者的認(rèn)可。曾經(jīng)IT部署大多依靠EMC高端存儲、Oracle數(shù)據(jù)庫以及IBM服務(wù)器,只能通過提高服務(wù)器單機性能的方式來提升服務(wù)能力。然而,在數(shù)據(jù)規(guī)模驟增后,IOE模式具有的成本高、反應(yīng)遲鈍、靈活性差等缺點也愈發(fā)明顯。

MySQL既是一款開源的數(shù)據(jù)庫,也是一個穩(wěn)定可靠的數(shù)據(jù)管理系統(tǒng),經(jīng)常被定制來管理數(shù)據(jù)庫[2],作為一個比較成熟的DBMS,其底層的實現(xiàn)是比較完善的[3]。MySQL的存儲引擎和數(shù)據(jù)庫是分離的,提供了多種存儲引擎供用戶選擇,以實現(xiàn)不同的功能需求[4],同時低耦合性使得開發(fā)者可以根據(jù)需要選擇合適的存儲引擎。MySQL Cluster是專門為分布式集群環(huán)境所提供的解決方案,MySQL NDB Cluster能夠讓多個MySQL服務(wù)器以集群模式同時運行。MySQL Cluster的無共享體系結(jié)構(gòu)降低了對硬件的要求,每個節(jié)點有獨立的內(nèi)存和磁盤,提高了系統(tǒng)的容災(zāi)性。MySQL所提供的replication技術(shù)可以滿足各種集群化應(yīng)用的需求,典型的有:雙機熱備、垂直或者水平拆分表、讀寫分離集群。通過使用該技術(shù),人們可以提高數(shù)據(jù)庫的服務(wù)性能和安全性、方便進行數(shù)據(jù)分析等[5]。

本文所研究的案例是在IOE的模式下對多個地市用戶數(shù)據(jù)進行分析的批處理服務(wù),數(shù)據(jù)量也由前期的以萬計增長到如今的以億計,因此批處理程序亟待優(yōu)化。在數(shù)據(jù)存儲方面,需要在MySQL集群分庫存儲的基礎(chǔ)上進行水平拆分并形成分片表,以最大限度地降低單表數(shù)據(jù)量。在可靠性方面,依托MySQL提供的replication技術(shù)保障數(shù)據(jù)庫集群的高可用性以及高并發(fā)。在SEDA架構(gòu)下,整合多個MySQL數(shù)據(jù)庫對外提供統(tǒng)一的服務(wù),并結(jié)合zookeeper中間件進行集群同步,以全面提升數(shù)據(jù)庫的存儲和運算能力。

(二)應(yīng)用層設(shè)計

大數(shù)據(jù)的批處理是讓有界源數(shù)據(jù)(如本文中使用到的分布式MySQL數(shù)據(jù)庫)進行大批量數(shù)據(jù)的處理任務(wù)。大數(shù)據(jù)下的批處理涉及的數(shù)據(jù)量大,傳統(tǒng)的單進程模式難以在短時間內(nèi)完成。

隨著數(shù)據(jù)量的增加,前期曾引入過多線程模式,雖然在一定程度上緩解了處理效率低下的問題,但是受限于單機性能瓶頸,急需拓寬優(yōu)化思路。因此,如何將大任務(wù)拆分成多個小任務(wù),并分配到多個機器上實現(xiàn)并行處理,同時考慮到數(shù)據(jù)同步各任務(wù)間互不干擾,成為批處理優(yōu)化的重點。

當(dāng)前,隨著網(wǎng)絡(luò)的發(fā)展以及其在大數(shù)據(jù)處理方面的深入研究,分布式計算開始與計算理論相融合。例如,云計算和網(wǎng)格計算的核心思想是利用好網(wǎng)絡(luò)中的計算資源,分?jǐn)偞髷?shù)據(jù)的處理工作,從而發(fā)揮分布式計算的長處。當(dāng)前關(guān)注的科研轉(zhuǎn)化率需要將理論應(yīng)用到生產(chǎn)實踐中,從而為社會創(chuàng)造價值。在軟件的實際應(yīng)用中,并行計算和分布式計算的優(yōu)點是能夠充分發(fā)揮“集體的力量”,將大任務(wù)分解成小任務(wù),并分配給多個計算節(jié)點同時計算[6]。

分布式計算的優(yōu)勢主要體現(xiàn)在以下幾個方面:

面向服務(wù):分布式處理集群對用戶透明,用戶只需要提交任務(wù)請求,平臺就可以在處理完成后將結(jié)果返回給用戶。

降低成本:在單機處理模式下,運行大數(shù)據(jù)量的批處理需要相當(dāng)高的服務(wù)器配置,推高了軟件使用的成本。而分布式集群模式降低了對單個服務(wù)器的性能要求,可以根據(jù)實際需求平衡好成本和性能。

提高可用性:在單機處理模式下,單臺服務(wù)器的故障會導(dǎo)致系統(tǒng)直接宕機,給用戶帶來不良的體驗。在分布式集群模式下,多個計算節(jié)點可以互為熱備,單個服務(wù)器異常可以自動將其移除集群,并且不影響任務(wù)的繼續(xù)執(zhí)行。

在服務(wù)器集群分布式計算模式下,還需要考慮利用好每一個單機。因此,本文設(shè)計了多進程和多線程并發(fā)的模型,如圖1所示。在單進程多線程模式下,線程間共享主進程資源,當(dāng)線程數(shù)量超過合適的閾值后,會加劇資源的占用,造成系統(tǒng)性能的下降。而在多進程模式下,進程間的資源是獨立的,減少了資源爭用帶來的損耗。

在并發(fā)處理模型中使用了基于Kafka架構(gòu)的分布式消息中間件,其主要優(yōu)勢特點包括解耦、異步、削峰[7],其重要組成部分有:

Topic(主題):可以對消息進行區(qū)分,農(nóng)民畫按照批處理任務(wù)類型劃分Topic。

Producer(生產(chǎn)者):生產(chǎn)者即消息的創(chuàng)建者,在接收到任務(wù)后,生產(chǎn)者需要對任務(wù)進行拆分,隨后將子任務(wù)根據(jù)Topic放入對應(yīng)的消息隊列中。在消費者集群完成業(yè)務(wù)處理后,生產(chǎn)者則需要對結(jié)果數(shù)據(jù)進行整合并返回給客戶端。

Consummer(消費者):Kafka集群管理所有的消費者節(jié)點,而消費者節(jié)點監(jiān)聽訂閱的主題,在有任務(wù)到來時,從對應(yīng)的消息隊列中拉取子任務(wù)信息,以完成子業(yè)務(wù)邏輯處理。

三、技術(shù)實現(xiàn)

(一)數(shù)據(jù)庫層面的優(yōu)化

本文所研究的案例中,舊系統(tǒng)是基于Oracle的單實例數(shù)據(jù)庫,數(shù)據(jù)采用了集中式存儲,批處理的查詢處理速度非常緩慢。在業(yè)務(wù)方面,系統(tǒng)涉及的用戶數(shù)據(jù)的核心字段為地市(City_ID)和用戶ID(Acct_id),根據(jù)主鍵字段用戶ID統(tǒng)計有幾億用戶量。按照業(yè)務(wù)特點,可以根據(jù)City_ID進行分片。

由于各個城市用戶量分布極其不均衡,對于數(shù)據(jù)量大的城市(如:一線城市),規(guī)劃一個或多個片區(qū),再根據(jù)主鍵Acct_ID進行二次的水平拆分;對于數(shù)據(jù)量小的城市(如:縣級市),可以多地市合并到一個片區(qū)。此外,依托MySQL Cluster組合成MySQL集群可以為應(yīng)用層提供統(tǒng)一的服務(wù)。在拆分任務(wù)時,生產(chǎn)者需要充分利用分片數(shù)據(jù)庫特性,按照分片維度劃分子任務(wù),任務(wù)表結(jié)構(gòu)如表1所示。

(二)應(yīng)用層優(yōu)化

該系統(tǒng)舊批處理程序受限于單次處理的數(shù)據(jù)量,需要人為控制批處理的參數(shù),以減少單次處理的用戶量。例如,單次只處理一個地市的部分用戶,程序效率低下耗費了大量的人力。而經(jīng)過優(yōu)化后,可以采用分布式集群處理模式,處理方式如下:

1.在生產(chǎn)者進程接收到命令之后,完成任務(wù)的拆分入庫如圖2所示。首先,獲取用戶表的分片信息;其次,根據(jù)分片拆分子任務(wù),再次將子任務(wù)入庫后發(fā)送任務(wù)消息通知消費者;最后,等待消費者處理完畢后進行結(jié)果匯總。

2.在監(jiān)聽的主題上被喚醒后,消費者拉取子任務(wù)信息進行多線程處理并更新任務(wù)狀態(tài),如圖3所示。

(三)結(jié)果展示

為了驗證優(yōu)化方案的效率,本實驗采用了MySQL集群,按照每個分片表賬戶信息不超過10000條的原則進行水平拆分,共拆分了500個分片表。

實驗選用的環(huán)境為32核CPU、128G內(nèi)存的Linux服務(wù)器,使用JAVA語言進行代碼層實現(xiàn);利用ZooKeeper分布式調(diào)度框架,部署了1個生產(chǎn)者節(jié)點和8個消費者節(jié)點,每個消費者節(jié)點2個進程,每個進程包含12個并發(fā)線程。

當(dāng)client端發(fā)起批處理服務(wù)時,根據(jù)入侵命令處理了200個片區(qū)約60萬用戶的數(shù)據(jù),各節(jié)點的處理用戶量和處理時長如圖4所示。在舊有的單節(jié)點的批處理模式下,60萬用戶量需要人為控制拆分成多個串行批次,并執(zhí)行2個多小時。而經(jīng)過優(yōu)化后,60萬用戶的處理時長可以降低到15分鐘以內(nèi)。由此可見,通過分布式架構(gòu)優(yōu)化數(shù)據(jù)庫和應(yīng)用程序的方式是可行的,并且效果顯著。

四、結(jié)束語

在大數(shù)據(jù)背景下,通過數(shù)據(jù)庫集群化以及應(yīng)用系統(tǒng)處理的并行化,使得分布式架構(gòu)得到了更好地利用,不僅壓縮了批處理的處理時長,還能夠充分地利用已有服務(wù)器資源,以節(jié)約成本。在實際應(yīng)用中,本實驗可以根據(jù)情況調(diào)整生產(chǎn)者和消費者部署的節(jié)點個數(shù)以及單節(jié)點的并發(fā)線程數(shù),系統(tǒng)的靈活性、穩(wěn)定性得到了很好地驗證,因此以上方案在生產(chǎn)實踐中是完全可行的。

作者單位:郭俊 武漢工程大學(xué)網(wǎng)絡(luò)信息中心

參考文獻(xiàn)

[1]李建明.數(shù)據(jù)挖掘技術(shù)在互聯(lián)網(wǎng)中的應(yīng)用[J].集成電路應(yīng)用,2021,38(09):198-199.

[2]SIYOMVO SYLDIE.基于MySQL分布式數(shù)據(jù)庫系統(tǒng)同步分析與實現(xiàn)[J].微型電腦應(yīng)用,2015,31(02):61-64.

[3]張飛,姜進磊,李慶虎.利用MySQL構(gòu)建分布式應(yīng)用[J].計算機工程與應(yīng)用,2001(18):102-104,112.

[4]高見斌.基于MYSQL數(shù)據(jù)庫存儲引擎的研究[J].數(shù)字通信世界,2018(05):41,56.

[5]MySQL5.1Reference Manual:Chapter16[EB/OL].http://dev.mysql.com/doc/refman/5.1/en/replication.html.

[6]段孝國.分布式計算技術(shù)介紹[J].電腦知識與技術(shù),2011,7(22):5463-5465.

[7]Neha Narkhede,Gwen Shapira等著,薛命燈譯.Kafka權(quán)威指南[M].北京:人民郵電出版社,2018:12-54.

猜你喜歡
大數(shù)據(jù)
基于在線教育的大數(shù)據(jù)研究
中國市場(2016年36期)2016-10-19 04:41:16
“互聯(lián)網(wǎng)+”農(nóng)產(chǎn)品物流業(yè)的大數(shù)據(jù)策略研究
中國市場(2016年36期)2016-10-19 03:31:48
基于大數(shù)據(jù)的小微電商授信評估研究
中國市場(2016年35期)2016-10-19 01:30:59
大數(shù)據(jù)時代新聞的新變化探究
商(2016年27期)2016-10-17 06:26:00
淺談大數(shù)據(jù)在出版業(yè)的應(yīng)用
今傳媒(2016年9期)2016-10-15 23:35:12
“互聯(lián)網(wǎng)+”對傳統(tǒng)圖書出版的影響和推動作用
今傳媒(2016年9期)2016-10-15 22:09:11
大數(shù)據(jù)環(huán)境下基于移動客戶端的傳統(tǒng)媒體轉(zhuǎn)型思路
新聞世界(2016年10期)2016-10-11 20:13:53
基于大數(shù)據(jù)背景下的智慧城市建設(shè)研究
科技視界(2016年20期)2016-09-29 10:53:22
數(shù)據(jù)+輿情:南方報業(yè)創(chuàng)新轉(zhuǎn)型提高服務(wù)能力的探索
中國記者(2016年6期)2016-08-26 12:36:20
主站蜘蛛池模板: 国产成人艳妇AA视频在线| 欧美成人精品一区二区| 色综合a怡红院怡红院首页| 亚洲精选高清无码| 2021最新国产精品网站| 国产成人午夜福利免费无码r| 国产好痛疼轻点好爽的视频| 国产精品美人久久久久久AV| 一本大道无码高清| 国产精品美乳| 久久黄色免费电影| 五月激情婷婷综合| 国产精品永久在线| 99热这里只有精品免费| 黄色国产在线| 美女视频黄又黄又免费高清| 欧美国产综合色视频| 国产人碰人摸人爱免费视频| 国产午夜不卡| 国产H片无码不卡在线视频| 日本亚洲欧美在线| 亚洲成人动漫在线观看| 99一级毛片| 日本高清有码人妻| 在线观看国产小视频| 无码人中文字幕| 亚洲一本大道在线| h视频在线播放| 国产在线91在线电影| 在线观看免费AV网| 国产sm重味一区二区三区| 欧美日韩在线第一页| 亚洲欧洲日韩久久狠狠爱 | 午夜在线不卡| 日韩在线第三页| 91精品最新国内在线播放| 免费A∨中文乱码专区| 久久久精品国产亚洲AV日韩| 亚洲欧美自拍中文| 成年免费在线观看| 国产一区二区三区夜色 | 国产日本欧美亚洲精品视| 午夜影院a级片| 亚洲中文字幕av无码区| 99精品福利视频| 久青草网站| 亚洲精品国产首次亮相| 无码精油按摩潮喷在线播放| 好吊日免费视频| 久久精品人人做人人综合试看| 美女被狂躁www在线观看| 久久香蕉国产线| 伊人五月丁香综合AⅤ| 人人澡人人爽欧美一区| 91伊人国产| 亚洲人成人无码www| 国产a在视频线精品视频下载| 日本人又色又爽的视频| 日本a∨在线观看| 久久五月视频| 久久综合成人| 91丝袜在线观看| 欧洲亚洲一区| 青青草原国产免费av观看| 亚洲成人高清在线观看| 99re在线免费视频| 国产福利在线免费观看| 国产精品xxx| 青青国产成人免费精品视频| 欧美激情成人网| 激情综合婷婷丁香五月尤物| 亚洲欧洲日韩国产综合在线二区| 日韩精品无码不卡无码| 国产欧美网站| av天堂最新版在线| 亚洲Av综合日韩精品久久久| 日本免费一区视频| 亚洲黄色网站视频| 国产一线在线| 久青草免费在线视频| 亚洲国产日韩在线观看| 亚洲啪啪网|