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

面向DNS日志的MapReduce性能優(yōu)化技術(shù)研究

2018-05-23 11:46:20劉鶴煜張棪楊興華崔華俊譚倩
智能計算機與應用 2018年2期

劉鶴煜 張棪 楊興華 崔華俊 譚倩

摘 要: DNS日志是互聯(lián)網(wǎng)中重要的訪問日志,數(shù)量巨大且承載著大量信息,需要借助大數(shù)據(jù)技術(shù)進行處理和分析。現(xiàn)網(wǎng)DNS日志數(shù)據(jù)量大,且數(shù)據(jù)傾斜現(xiàn)象嚴重,對MapReduce的性能有較為嚴重的影響。基于上述問題,采用小文件合并方法優(yōu)化分片,緩解Map端的數(shù)據(jù)傾斜問題,并實現(xiàn)動態(tài)設置分片大小,提高MapReduce作業(yè)執(zhí)行效率。該方法有效均衡了Map任務的負載,從而提高了數(shù)據(jù)傾斜情況下的MapReduce作業(yè)的執(zhí)行效率和資源利用率。實驗表明,使用該方法可以有效縮短MapReduce作業(yè)的執(zhí)行時間。

關(guān)鍵詞: DNS日志;數(shù)據(jù)傾斜;MapReduce;性能優(yōu)化

Abstract:DNS log is important access log of the Internet which are large in number meanwhile carries a large amount of information. DNS log could be processed and analyzed with big data technologies. In the actual network the amount of DNS log is large and the data is skewed seriously. These characteristics of DNS logs have a serious impact on the performance of MapReduce. Based on the above problems small file merging method is used to optimize slipt process of MapReduce and alleviate the data skew of the Map end. Moreover this method realizes setting split size dynamically and improves the efficiency of MapReduce execution. This method balances the load of Map tasks effectively and improves the execution efficiency of MapReduce job and resource utilization ratio under data skew. Experiments show that this method can effectively decrease the execution time of MapReduce jobs.

Key words: DNS log;data skew;MapReduce;performance optimization

引言

域名系統(tǒng)(Domain Name System,DNS)是一個分布式數(shù)據(jù)庫,主要實現(xiàn)了域名和IP地址之間的映射[1-2]。DNS解析過程中產(chǎn)生大量日志,在某運營商的網(wǎng)絡中,每天可以產(chǎn)生幾十TB級的DNS日志,需要使用大數(shù)據(jù)技術(shù)對DNS日志進行處理和分析。在此,研究選擇Hadoop平臺[3]和MapReduce編程模型[4]對DNS日志展開探討與研發(fā)。其中,Hadoop是一個分布式系統(tǒng)基礎架構(gòu),核心是分布式文件系統(tǒng)(HDFS)[5]和MapReduce編程模型。

現(xiàn)網(wǎng)DNS日志具有數(shù)據(jù)量大、數(shù)據(jù)傾斜現(xiàn)象嚴重的特點。數(shù)據(jù)傾斜現(xiàn)象會導致MapReduce在進行DNS日志處理的過程中出現(xiàn)相應的數(shù)據(jù)傾斜問題。MapReduce中的數(shù)據(jù)傾斜問題分為Map端的數(shù)據(jù)傾斜和Reduce端的數(shù)據(jù)傾斜[6-7]。Map端數(shù)據(jù)傾斜是由輸入數(shù)據(jù)分布不均勻?qū)е碌模琑educe端數(shù)據(jù)傾斜是由鍵值對分布不均勻?qū)е碌摹?/p>

為了解決Map端的數(shù)據(jù)傾斜問題,本文針對DNS日志處理過程中輸入數(shù)據(jù)分布不均勻的情況提出了MapReduce作業(yè)優(yōu)化,實現(xiàn)了小文件合并方法,還能夠動態(tài)設計確定分片大小。通過實驗對比發(fā)現(xiàn)優(yōu)化的小文件合并方法比MapReduce默認的方法效果更好,并且能夠?qū)NS日志業(yè)務處理時間縮短30%以上。

1 MapReduce背景

MapReduce是一個可用于并行運算的編程模型,分為Map和Reduce兩個階段。在執(zhí)行過程中,MapReduce首先對輸入數(shù)據(jù)進行分片(split),每個分片由一個Map任務來加工操作。經(jīng)過Map任務處理的結(jié)果會通過分區(qū)函數(shù)的分區(qū)(Partition)運算后,并將不同分區(qū)交給相應Reduce任務處理,全部Reduce任務執(zhí)行過后,將結(jié)果存儲在HDFS上。用戶可以根據(jù)需求只設置Map任務,而不設置Reduce任務。

1.1 MapReduce分片規(guī)則

(1)確定分片大小。數(shù)學公式可表述如下:

其中,minimumSize表示最小分片大小,默認為1字節(jié);maximumSize表示最大分片大小,默認為Java long類型的最大值;blockSize表示HDFS的數(shù)據(jù)塊大小,默認為128 MB。默認情況下,MapReduce作業(yè)以bolckSize作為分片大小對輸入數(shù)據(jù)進行分片。

(2)分片規(guī)則。文件大小不足splitSize時,將該文件作為一個單獨的分片;遇到超過splitSize的文件時,如果可拆分,則按splitSize進行拆分;如果不可拆分,則作為一個單獨分片。

1.2 MapReduce分區(qū)規(guī)則

MapReduce作業(yè)會調(diào)用分區(qū)函數(shù)(patitioner)對Map的輸出進行劃分,默認情況下使用hash分區(qū)函數(shù),其規(guī)則如下:

其中,k是鍵;hash(k)是鍵的hash值;r是Reduce數(shù)目。通過這個方法可以將Map的中間結(jié)果按照鍵進行劃分,交給指定的Reduce進行處理。

2 DNS日志業(yè)務邏輯

在現(xiàn)網(wǎng)業(yè)務需求中,需要對DNS日志進行處理和分析。原始的DNS日志中定義有源IP、域名、目的IP、采集時間、DNS解析類型共5個字段,通過對這些字段的統(tǒng)計分析可以對域名表征的互聯(lián)網(wǎng)資源加以分析和監(jiān)測,其處理流程包括數(shù)據(jù)清洗、輕度匯總、主題匯總、業(yè)務指標計算。

其中,數(shù)據(jù)清洗主要是對DNS日志進行數(shù)據(jù)校驗,檢查數(shù)據(jù)完整以及數(shù)據(jù)合法性。輕度匯總主要是按照業(yè)務需求對DNS日志字段進行處理,并對解析次數(shù)提供初步匯總統(tǒng)計。業(yè)務指標的計算需要利用輕度匯總或者主題匯總的結(jié)果,并結(jié)合業(yè)務的實際意義來獲得處理輸出。研究中,重點涉及有網(wǎng)內(nèi)解析占比、熱點網(wǎng)站分析等業(yè)務指標。

在DNS日志的處理流程中,每個作業(yè)的Map階段擬將實現(xiàn)字段的處理,如合法性檢查、截取字符串、根據(jù)精細域名獲取泛域名等。在Reduce階段,則旨在完成解析次數(shù)匯總統(tǒng)計、2張表的等值連接等。

3.1 DNS日志特性

現(xiàn)網(wǎng)DNS日志具有如下特性:

(1)數(shù)據(jù)量巨大。在運營商網(wǎng)絡中,用戶訪問互聯(lián)網(wǎng)產(chǎn)生的DNS日志總量約為每日幾十TB,且仍在不斷增長。

(2)數(shù)據(jù)傾斜現(xiàn)象嚴重。數(shù)據(jù)傾斜分為數(shù)據(jù)量分布不均勻和日志內(nèi)容分布不均勻。在數(shù)據(jù)量方面,DNS日志文件容量差異很大,存在海量小文件。原始DNS日志中,超過80%的文件小于40 MB;清洗后的DNS日志中有60%~70%的文件小于128 MB,1%的文件大小超過1 GB。在日志內(nèi)容方面,不同網(wǎng)站、不同域名對應的記錄數(shù)不同,并且相差很大。某大型網(wǎng)站解析次數(shù)在總解析次數(shù)中占比超過25%,少數(shù)幾個大型網(wǎng)站解析次數(shù)之和超過40%。

3.2 數(shù)據(jù)傾斜問題

數(shù)據(jù)傾斜現(xiàn)象使Map端和Reduce端出現(xiàn)資源利用不充分、作業(yè)執(zhí)行時間長等問題。而且,輸入數(shù)據(jù)分配不均,每個Map處理的數(shù)據(jù)量相差較大,會導致Map端數(shù)據(jù)傾斜;輸入數(shù)據(jù)的鍵值對分布不均,在分區(qū)過程中不能勻量分配到每個Reduce任務,從而導致Reduce端數(shù)據(jù)傾斜。本文將著重討論Map端數(shù)據(jù)傾斜問題的解決方案。分析DNS日志特性可知,在數(shù)據(jù)清洗和輕度匯總階段,輸入數(shù)據(jù)的文件大小分布不均,每個Map任務處理的數(shù)據(jù)量相差很大,出現(xiàn)Map端的數(shù)據(jù)傾斜問題。

數(shù)據(jù)清洗作業(yè)的輸入數(shù)據(jù)是.gz格式。在處理.gz文件時 MapReduce不能對.gz文件來劃定分片,只能將完整的.gz文件作為一個分片交給一個Map任務進行統(tǒng)籌操作。該作業(yè)的分片結(jié)果是大量Map任務處理數(shù)據(jù)量很小的分片,但其余Map任務需要處理數(shù)據(jù)量大的分片。

由DNS日志業(yè)務邏輯可知,數(shù)據(jù)清洗作業(yè)只有Map階段,該作業(yè)輸出結(jié)果與輸入文件個數(shù)和數(shù)據(jù)量分布均勻與否相關(guān),該結(jié)果也將作為輕度匯總作業(yè)的輸入,得到進一步處理。

輕度匯總作業(yè)的輸入是數(shù)據(jù)清洗作業(yè)的輸出。MapReduce支持對文本文件進行分片,因此輕度匯總作業(yè)中,大文件會被拆分為不同分片,小文件則作為獨立的分片。由于輸入文件數(shù)據(jù)量分布不均勻,輕度匯總作業(yè)也會出現(xiàn)大量Map任務的輸入數(shù)據(jù)量很小的情況。

根據(jù)MapReduce的分片規(guī)則,研究發(fā)現(xiàn)如果輸入數(shù)據(jù)中有海量小文件,使用默認的分片規(guī)則會遇到如下問題:

(1)Map任務的任務管理和啟動占用較多時間。Hadoop為每個任務啟動一個新的JVM耗時約1 s[8],如果Map任務處理的分片數(shù)據(jù)量很小,執(zhí)行時間只有幾秒甚至更少,那么此時的任務管理和啟動的時間開銷就不容忽視。

(2)Map任務執(zhí)行時不能充分利用內(nèi)存資源。如果一個Map任務處理的小文件體積遠小于Map任務申請到的內(nèi)存資源(默認為1 024 MB),那么這個任務申請的內(nèi)存將無法得到充分利用,造成資源浪費。

因此在數(shù)據(jù)清洗和輕度匯總作業(yè)中,需要解決Map端數(shù)據(jù)傾斜問題,使Map任務負載最終能夠達到均衡。

4 小文件合并方法

為了解決Map端的數(shù)據(jù)傾斜問題,考慮在MapReduce作業(yè)的分片過程中對海量小文件進行合并,將多個小文件合并為一個較大分片后再提送處理,使Map任務的負載更加均衡。本文采用實現(xiàn)CombineFileInputFormat類的方法對小文件進行合并。

CombineFileInputFormat是一個抽象類,可以在分片時將小文件合并,作為一個分片進行處理。對于大文件,如果文件可拆分,則拆分為多個分頻;如果不可拆分,則直接作為一個分片。該類中有3個關(guān)鍵變量,分別是:分片大小最大值(maxSize)、同一節(jié)點上分片大小最小值(minSizeNode)、同一機架上分片大小最小值(minSizeRack)。默認情況下,以上變量均為0,用戶可以通過配置參數(shù)設定上述變量,需要確保minSizeNode≤minSizeRack≤maxSize。

創(chuàng)建分片時,首先遍歷節(jié)點,對節(jié)點上的數(shù)據(jù)塊按照maxSize進行合并,如果該節(jié)點剩余數(shù)據(jù)塊之和大于minSizeNode,則合并為一個分片;其次遍歷機架,對機架上的數(shù)據(jù)塊按照maxSize進行合并,如果該機架剩余數(shù)據(jù)塊之和大于minSizeRack,則合并為一個分片;對于沒有加入任何分片的小文件進行統(tǒng)一處理,按照maxSize求得最終的合并。

為了使MapReduce作業(yè)在執(zhí)行過程中能夠更加有效,本文針對可拆分文件和不可拆分文件的處理過程引入了控制優(yōu)化,改進完善了小文件合并方法,對maxSize、minSizeNode、minSizeRack參數(shù)進行調(diào)優(yōu),并設計給出了動態(tài)確定分片大小的方法。

4.1 數(shù)據(jù)清洗的解決方案

數(shù)據(jù)清洗作業(yè)的輸入是不可拆分的.gz文件,且數(shù)據(jù)量分布不均勻,存在海量小文件,需要利用CombineFileInputFormat類對小文件進行合并。

創(chuàng)建小文件合并類CombineSmallFileInputFormat作為MapReduce作業(yè)的輸入格式,該類繼承Combine FileInputFormat類,并且實現(xiàn)createRecordReader()方法,該方法主要用于部署指導Map任務讀取輸入文件的方式。

圖1展示了優(yōu)化后的數(shù)據(jù)清洗作業(yè)。經(jīng)過優(yōu)化的方案會根據(jù)分片大小等參數(shù)的設置對小文件進行合并,將.gz格式的大文件作為一個獨立的分片進行處理。

4.2 輕度匯總的解決方案

輕度匯總作業(yè)的輸入是數(shù)據(jù)清洗作業(yè)的輸出,為可拆分的文本文件,且數(shù)據(jù)量分布不均勻,存在海量小文件。研究推得的解決方案步驟可分述如下:

步驟一 與數(shù)據(jù)清洗的方法一致,實現(xiàn)小文件合并類CombineSmallFileInputFormat作為MapReduce作業(yè)的輸入格式。

步驟二 采用動態(tài)方式設置mapred.max.split.size參數(shù),以輸入文件的均值作為分片大小。

步驟三 設置minSizeNode及minSizeRack參數(shù),來優(yōu)化分片大小。

圖2是優(yōu)化后的輕度匯總作業(yè),主要實現(xiàn)了對小文件的合并,以及對大文件的拆分。同時,還增加了根據(jù)輸入文件的大小動態(tài)確定分片的方法及分片相關(guān)參數(shù)的優(yōu)化,使作業(yè)執(zhí)行時間進一步縮短。

5 性能測試

小文件合并方法的對比實驗將在Hadoop集群上設計展開仿真測試。該集群共89個節(jié)點,包括2個NameNode。其中,NameNode1是備用名節(jié)點,NameNode2是主節(jié)點,存在87個DataNode,所有節(jié)點均為相同配置,為同構(gòu)集群。仿真測試中,物理環(huán)境的主題內(nèi)容可具體選配如下:操作系統(tǒng)為CentOS 6.4 (Final);實驗平臺為Hadoop 2.6.0-cdh5.4.2;JDK環(huán)境為JDK 1.7.0_80;內(nèi)存為256 G;CPU為32核Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60 GHz;硬盤為18.8 T。

根據(jù)各省份日志的特點,選擇5個省份某一天數(shù)據(jù)清洗后的DNS日志作為測試數(shù)據(jù),共21 741個文件,7.2 TB。各省日志的數(shù)據(jù)統(tǒng)計可見表1。

測試用的MapReduce作業(yè)實現(xiàn)計數(shù)功能,輸入數(shù)據(jù)的字段為:源IP、域名、目的IP、時間、解析類型,以四元組源IP、域名、目的IP、時間(精確到小時)為鍵進行計數(shù),輸出結(jié)果為:源IP、域名、目的IP、時間(精確到小時)、解析次數(shù)。

5.1 CombineFileInputFormat和TextInputFormat對比實驗

測試中,設計了5組實驗用于對比小文件合并方法和默認分片方法的作業(yè)執(zhí)行時間,并且對小文件合并方法又設置不同分片大小進行結(jié)果比較。實驗配置的指標細節(jié)可見表2。實驗結(jié)果可見表3和圖3。

如圖3所示,合并小文件方法性能提升與分片大小設置有關(guān)。使用文件大小平均值作為輸入的分片,效果穩(wěn)定,而且明顯優(yōu)于其余4個實驗。

5.2 minSizeNode、minSizeRack參數(shù)的對比

此后,又設計了3組實驗均使用小文件合并方法,并以均值為分片大小,但指定使用不同minSizeNode、minSizeRack的值進行對比實驗。實驗中的參數(shù)指標設置可見表4。實驗結(jié)果可見表5和圖4。

如圖4所示,使用minSizeNode、minSizeRack默認值時的小文件合并作業(yè)效果會更好。究其原因即在于,未能設置這2個參數(shù)時,MapReduce會將不足一個分片大小的數(shù)據(jù)塊統(tǒng)一處理,以用戶設置的分片大小進行合并,而當每個Map任務處理的數(shù)據(jù)量均衡時,會比較節(jié)省集群資源。

6 結(jié)束語

本文針對現(xiàn)網(wǎng)DNS日志的特性,對MapReduce作業(yè)中Map端數(shù)據(jù)傾斜問題提出了改進的方案,并將小文件合并成較大的分片。在此基礎上,對可以拆分的大文件進行拆分,不可拆分的大文件則作為獨立的分片進行處理,同時還做到了動態(tài)確定分片大小,使Map端負載趨于均衡,從而有效解決了Map

端的數(shù)據(jù)傾斜問題。相比默認的分片規(guī)則,該方法可以將DNS日志處理過程中的MapReduce作業(yè)執(zhí)行時間縮短30%。在后續(xù)工作中,將對MapReduce作業(yè)中的Reduce端數(shù)據(jù)傾斜問題進行優(yōu)化,實現(xiàn)Reduce端負載均衡。

參考文獻

[1] MOCKAPETRIS P V. Domain names: Concepts and facilities[EB/OL]. [1987-11]. https://www.rfc-editor.org/rfc/rfc1034.txt.

[2] MOCKAPETRIS P V. Domain names: Implementation and specification[EB/OL]. [1987-11]. https://datatracker.ietf.org/doc/rfc1035/.

[3] Apache. Apache Hadoop[EB/OL]. [2017-12-18]. http://hadoop.apache.org/.

[4] DEAN J GHEMAWAT S. MapReduce: Simplified data processing on large clusters[J]. Communications of the ACM 2008 51(1):107-113.

[5] Apache. HDFS Architecture Guide[EB/OL]. [2013-08-04]. http://hadoop.apache.org/docs/r1.2.1/hdfs_design.html.

[6] KWON Y BALAZINSKA M HOWE B et al. A study of skew in MapReduce Applications[C]// 5th Open Cirrus Summit. Moscow,Russia:Russian Academy of Sciences,2011:1-5.

[7] KWON Y C BALAZINSKA M HOWE B et al. SkewTune in action: Mitigating skew in MapReduce applications[J]. Proceedings of the VLDB Endowment 2012 5(12):1934-1937.

[8] TOM W. Hadoop權(quán)威指南[M]. 3版. 華東師范大學數(shù)據(jù)科學與工程學院,譯. 北京:清華大學出版社,2015.

主站蜘蛛池模板: 2020极品精品国产| 欧美国产日韩在线观看| 无码aaa视频| 亚洲无码熟妇人妻AV在线| 精品福利视频网| 亚洲中文字幕久久精品无码一区 | 性欧美精品xxxx| 免费视频在线2021入口| 成人噜噜噜视频在线观看| 91在线播放国产| 91视频区| 中文字幕在线日本| 国产精品无码久久久久久| 天天综合天天综合| 成人无码一区二区三区视频在线观看| 噜噜噜久久| 国产精品福利在线观看无码卡| 欧美不卡视频一区发布| 精品久久高清| 国产成人精品亚洲77美色| 丁香综合在线| 亚洲最大福利网站| 日韩中文字幕亚洲无线码| 超碰精品无码一区二区| 欧美精品啪啪| 高清无码一本到东京热| 久久久久国产一区二区| 97超级碰碰碰碰精品| 第一区免费在线观看| 欧美中文字幕在线视频| a天堂视频| 国产粉嫩粉嫩的18在线播放91 | 日韩少妇激情一区二区| 18禁黄无遮挡免费动漫网站| 不卡无码网| 美女无遮挡被啪啪到高潮免费| 亚洲区视频在线观看| 九九视频免费看| 亚洲免费人成影院| 国产成人精品高清在线| AV无码无在线观看免费| 色妞www精品视频一级下载| 亚洲人成网线在线播放va| 高清视频一区| 毛片卡一卡二| 亚洲最新地址| 3D动漫精品啪啪一区二区下载| 国内黄色精品| 一区二区三区在线不卡免费| 亚洲人成网站色7777| 国产理论一区| 91美女视频在线观看| 亚洲天堂在线免费| 国产SUV精品一区二区| 精品国产免费观看| 一级爆乳无码av| 国产在线日本| 成年午夜精品久久精品| 国产小视频在线高清播放 | 日本精品视频一区二区| 精品成人免费自拍视频| 亚洲精品在线影院| 亚洲视频影院| 国产打屁股免费区网站| 国产91无毒不卡在线观看| 福利片91| 国产人人射| 午夜人性色福利无码视频在线观看 | 国产在线一区二区视频| 午夜成人在线视频| 久久香蕉国产线看精品| 无码网站免费观看| 日韩国产一区二区三区无码| 成年人免费国产视频| 丁香六月激情综合| 99久久亚洲综合精品TS| 欧美亚洲一区二区三区导航| 亚洲中文在线看视频一区| 91在线丝袜| 亚洲人成亚洲精品| 亚洲综合色婷婷| 国内嫩模私拍精品视频|