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

        ?

        用Fluent與MongoDB構(gòu)建高效海量日志采集系統(tǒng)

        2014-11-16 07:04:02
        中國新技術(shù)新產(chǎn)品 2014年12期
        關(guān)鍵詞:單機(jī)數(shù)據(jù)量批量

        韓 巖 李 曉

        (1.中國科學(xué)院新疆理化技術(shù)研究所,新疆 烏魯木齊 830011; 2.中國科學(xué)院大學(xué),北京 100049)

        1 概述

        日志是一個完整系統(tǒng)里面重要的功能組成部分,其利用特定的形式準(zhǔn)確并且規(guī)范地表達(dá)出系統(tǒng)產(chǎn)生的所有行為,依據(jù)對日志的分析不僅可以對系統(tǒng)自身的性能進(jìn)行有效的優(yōu)化,而且當(dāng)系統(tǒng)發(fā)生故障時,能夠準(zhǔn)確、及時地定位錯誤,方便加以修正。

        目前,隨著互聯(lián)網(wǎng)web2.0的迅速發(fā)展,一個企業(yè)級的服務(wù)器每天產(chǎn)生日志信息是相當(dāng)可觀的,日志分析研究多集中在如何挖掘數(shù)據(jù),而對如何存儲海量數(shù)據(jù)研究較少。這主要是因?yàn)楹芏嗳罩痉治鱿到y(tǒng)采用了關(guān)系數(shù)據(jù)庫存儲或簡單的順序存儲,如商用的Oracle數(shù)據(jù)庫,免費(fèi)的MySQL。采用關(guān)系數(shù)據(jù)庫存在效率低下的缺點(diǎn),簡單的順序存儲又存在功能不夠強(qiáng)大、查詢效率低等不足。因此日志處理缺乏一種能高效查詢、適合存儲海量數(shù)據(jù)的管理系統(tǒng)做支撐?,F(xiàn)在處理海量日志系統(tǒng)的方案有很多,大部分是基于分布式的原理來實(shí)現(xiàn)解決的。本文提出一種Fluent與MongoDB相結(jié)合的方法來完成海量日志的存儲。

        2 提出問題與方案

        2.1 提出問題與方案

        對于海量日志存儲與查詢,LZ是一個廣告公司的技術(shù)人員,需要對500M行(5億行)的log信息進(jìn)行存儲和數(shù)據(jù)分析工作,并提出了自己的三種想法:

        (1)將海量數(shù)據(jù)存在MySQL中并對每一個字段做索引。

        (2)將以上數(shù)據(jù)存在MongoDB中并建立索引。

        (3)將所有行加載到Hadoop中,通過MapReduce進(jìn)行數(shù)據(jù)分析。

        2.2 提出方案的原因

        第一方案選擇MySQL的原因:MySQL是一個開放源碼的小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),軟件本身具有體積小、速度快、總體擁有成本低的特點(diǎn)。MySQL是跨操作系統(tǒng)、支持多線程、支持多種存儲引擎和查詢速度快的數(shù)據(jù)庫管理系統(tǒng)。MySQL具有關(guān)系數(shù)據(jù)庫的特征,基本可以反映出關(guān)系數(shù)據(jù)庫的特性。

        第二種方案選擇MongoDB的原因:MongoDB是分布式文檔存儲數(shù)據(jù)庫,它的特點(diǎn)是高性能、易部署、易使用,存儲數(shù)據(jù)非常方便。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似JSON的BSON格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。MongoDB的文檔模型自由靈活,可以讓你在開發(fā)過程中暢順無比。對于大數(shù)據(jù)量、高并發(fā)、弱事務(wù)的互聯(lián)網(wǎng)應(yīng)用,MongoDB可以應(yīng)對自如。MongoDB內(nèi)置的水平擴(kuò)展機(jī)制提供了從百萬到十億級別的數(shù)據(jù)量處理能力,完全可以滿足Web2.0和移動互聯(lián)網(wǎng)的數(shù)據(jù)存儲需求,其開箱即用的特性也大大降低了中小型網(wǎng)站的運(yùn)維成本。

        第三種方案選擇Hadoop的原因:Hadoop是一個能夠讓用戶輕松架構(gòu)和使用的分布式計(jì)算平臺。用戶可以輕松地在Hadoop上開發(fā)和運(yùn)行處理海量數(shù)據(jù)的應(yīng)用程序。它主要有以下幾個優(yōu)點(diǎn):

        (1)高可靠性:Hadoop按位存儲和處理數(shù)據(jù)的能力值得人們信賴。

        (2)高擴(kuò)展性:Hadoop是在可用的計(jì)算機(jī)集簇間分配數(shù)據(jù)并完成計(jì)算任務(wù)的,這些集簇可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn)中。

        (3)高效性:Hadoop能夠在節(jié)點(diǎn)之間動態(tài)地移動數(shù)據(jù),并保證各個節(jié)點(diǎn)的動態(tài)平衡,因此處理速度非??臁?/p>

        (4)高容錯性:Hadoop能夠自動保存數(shù)據(jù)的多個副本,并且能夠自動將失敗的任務(wù)重新分配。

        (5)低成本:Hadoop是開源的,項(xiàng)目的軟件成本因此會大大降低。

        2.3 解決問題關(guān)鍵點(diǎn)

        針對以上三種解決方案對處理海量的日志信息共同特征,解決海量日志存取主要解決以下幾個問題:

        (1)高并發(fā)讀寫:現(xiàn)今的網(wǎng)站都是實(shí)時的生成動態(tài)頁面,及時提供動態(tài)信息,所以數(shù)據(jù)庫的并發(fā)負(fù)載很高。尤其是電子商務(wù)網(wǎng)站,每秒可以是上百萬的請求。

        (2)海量數(shù)據(jù)的高效存儲與訪問:高效的解決海量數(shù)據(jù)的讀取是最核心的問題之一。對海里數(shù)據(jù)而言,如果數(shù)據(jù)存儲速度較慢,就會造成網(wǎng)絡(luò)堵塞甚至網(wǎng)絡(luò)癱瘓。如果數(shù)據(jù)庫的查詢性能較低,就不能及時滿足用戶查詢需求。

        (3)高擴(kuò)展性與可用性:在增加較少硬件成本下,較大提高軟件的性能與負(fù)載能力,保證其擴(kuò)展性是可行的。另外,很多服務(wù)是實(shí)時的、不間斷的,所以保證其可用性也是必要的。

        3 實(shí)驗(yàn)與結(jié)果分析

        因?yàn)槿罩咀钪饕菍懭肱c查詢操作,所以用以上三種想法分別對10萬、100萬、1000萬條數(shù)據(jù)只進(jìn)行讀寫效率的測試。目的是為了驗(yàn)證海量日志數(shù)據(jù)存儲與查詢有效性和可行性。

        實(shí)驗(yàn)日志數(shù)據(jù)格式如表1:

        表1 日志格式

        3.1 單機(jī)實(shí)驗(yàn)

        實(shí)驗(yàn)說明:在單機(jī)環(huán)境下,分別對10萬、100萬、1000萬條數(shù)據(jù)只進(jìn)行讀寫效率的測試。以下實(shí)驗(yàn)是5次運(yùn)行的平均結(jié)果。

        圖1 單機(jī)批量插入數(shù)據(jù)

        圖2 MySQL批量插入性能監(jiān)控圖

        圖3 MongoDB批量插入性能監(jiān)控圖

        圖4 單機(jī)批量查詢數(shù)據(jù)

        實(shí)驗(yàn)環(huán)境:單機(jī)條件下,在Eclipse下使用Java編寫開發(fā)的項(xiàng)目。分別對MySQL、Hadoop和MongoDB進(jìn)行批量插入(原因:數(shù)據(jù)量大,逐條插入效率低)與查詢實(shí)驗(yàn)。

        (1)批量插入數(shù)據(jù)

        單機(jī)環(huán)境下,批量插入數(shù)據(jù)的實(shí)驗(yàn)結(jié)果如圖1。

        在批量插入數(shù)據(jù)時,對MySQL、MongoDB監(jiān)控信息如圖2、圖3。

        (2)查詢數(shù)據(jù)

        在實(shí)驗(yàn)數(shù)據(jù)中隨機(jī)查詢100條數(shù)據(jù)所用的時間,查詢數(shù)據(jù)實(shí)驗(yàn)結(jié)果如圖4。

        在查詢數(shù)據(jù)時,對MySQL、MongoDB監(jiān)控信息如圖5、圖6。

        (3)實(shí)驗(yàn)結(jié)果

        實(shí)驗(yàn)結(jié)論:在數(shù)據(jù)量較小的情況下,無論是批量插入還是查詢基本都是同一個數(shù)據(jù)量級上,都能滿足用戶的需求; 但隨著數(shù)據(jù)量的增大,數(shù)據(jù)庫建立索引后查詢效率明顯增加了,也增大了存儲空間。通過圖2與圖3可知,MongoDB最大插入速度是MySQL最大插入速度的近700倍。通過圖5與圖6可以得知,MongoDB最大查詢速度是MySQL最大查詢速度的近2倍。

        3.2 集群實(shí)驗(yàn)

        實(shí)驗(yàn)說明:在集群環(huán)境下,分別對10萬、100萬、1000萬條數(shù)據(jù)只進(jìn)行讀寫效率的測試。以下實(shí)驗(yàn)是5次運(yùn)行的平均結(jié)果。

        實(shí)驗(yàn)環(huán)境:集群條件下,在Eclipse下使用Java編寫開發(fā)的項(xiàng)目。分別對MySQL、Hadoop和MongoDB進(jìn)行實(shí)驗(yàn)。

        集群環(huán)境如下:①M(fèi)ySQL集群:是在虛擬機(jī)下以Amoeba為代理服務(wù)器3臺MySQL數(shù)據(jù)庫構(gòu)成一個集群;②Hadoop集群:是在虛擬機(jī)下3個結(jié)點(diǎn),1個master結(jié)點(diǎn),2個datanode結(jié)點(diǎn);③MongoDB集群:是在虛擬機(jī)下由MongoDB構(gòu)建的3組復(fù)制集,每組3個分片,3個Configsvr,1個路由節(jié)點(diǎn)。

        (1)批量插入數(shù)據(jù)

        實(shí)驗(yàn)結(jié)果如圖7。

        (2)查詢數(shù)據(jù)

        在實(shí)驗(yàn)數(shù)據(jù)中隨機(jī)查詢100條數(shù)據(jù)所用的時間,查詢數(shù)據(jù)實(shí)驗(yàn)結(jié)果如圖8。

        (3) 實(shí)驗(yàn)結(jié)果

        實(shí)驗(yàn)結(jié)論:在集群環(huán)境下,滿足單機(jī)條件下的結(jié)論,但時間略微有點(diǎn)增加的主要原因是集群的啟動與集群之間數(shù)據(jù)通信。隨著數(shù)據(jù)量的增大,三類不同的集群在插入與查詢數(shù)據(jù)的時間都有所降低,并且MongoDB在查詢數(shù)據(jù)上表現(xiàn)出明顯的優(yōu)勢??傊?,無論是在單機(jī)環(huán)境下還是在集群環(huán)境下,MongoDB都表現(xiàn)出自己獨(dú)特的優(yōu)勢,適合作為海量日志的數(shù)據(jù)倉庫。

        4 構(gòu)建日志系統(tǒng)

        4.1 用Fluent與MongoDB構(gòu)建日志采集系統(tǒng)

        通過以上實(shí)驗(yàn)結(jié)果說明MongoDB可以作為海量日志的數(shù)據(jù)倉庫,以下是用Fluent采集日志信息存儲到MongoDB或集群中的原理與過程。

        (1)整個系統(tǒng)工作原理如圖9。

        (2) 實(shí)現(xiàn)步驟:

        a在Linux下,安裝MongoDB或MongoDB集群以及fluent-plugin-mongo。

        b修改/etc/fluent/Fluentd.conf相關(guān)配置,使得Fluent采集信息能存儲到MongoDB中。

        ① 配置輸入信息:

        type tail

        format apache2

        path /var/log/apache2/access_log

        tag mongo.apache.access

        ② 配置單機(jī)輸出信息:

        type mongo

        database apache

        collection access

        host localhost

        port 27017

        flush_interval 10s

        ③ 配置復(fù)制集輸出信息:

        type mongo_replset

        database apache

        collection fmongo

        nodes ip1:port1, ip2:port2,…

        flush_interval 10s

        (3) 測試結(jié)果

        a測試命令:

        $ ab -n 100000 -c 100 http://ip地址/

        b輸出結(jié)果如圖10.

        圖5 MySQL查詢性能監(jiān)控圖

        圖6 MongoDB查詢性能監(jiān)控圖

        圖7 集群批量插入數(shù)據(jù)

        圖8 集群批量查詢數(shù)據(jù)

        圖9 整個系統(tǒng)工作原理

        圖10 輸出結(jié)果

        結(jié)語

        本文通過驗(yàn)證MongoDB存儲與查詢高效性,然后與Fluent相結(jié)合構(gòu)造一個日志采集系統(tǒng)。這種方式可以滿足海量日志采集與存儲工作,將日志信息直接存儲到數(shù)據(jù)庫中,對日志的“增刪改查”更方便、更高效,而且日志信息可以進(jìn)行分布式的存儲。但這種方式也有很多不足,例如:單機(jī)情況下存儲數(shù)據(jù)不穩(wěn)定性,集群情況下存儲數(shù)據(jù)的不平衡性和負(fù)載均衡的問題等。后續(xù)工作還有MongoDB集群的優(yōu)化和日志分析系統(tǒng)的實(shí)現(xiàn)等任務(wù)。

        [1]白超,楊靜,吳建國.基于并行計(jì)算的海量日志分析系統(tǒng)實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(7):80-83.

        [2]王兆永. 面向大規(guī)模批量日志數(shù)據(jù)存儲方法的研究[D]. 成都: 電子科技大學(xué),2011.

        [3]nosqlfan Inc.. MySQL、MongoDB 還是Hadoop ? [EB/OL].[2010-09-02]. http://blog.nosqlfan.com/html/510.html.

        [4]鄒貴金.深入云計(jì)算:MongoDB管理與開發(fā)實(shí)戰(zhàn)詳解[M].北京:中國鐵道出版社,2013:72-205.

        [5]Kristina Cbodorow, Micbael Dirolf.MongoDB權(quán)威指南[M]. 北京:人民郵電出版社,2011:45-152.

        [6]程苗,陳華平.基于Hadoop的Web日志挖掘[J].計(jì)算機(jī)工程,2011,37(11):37-39.

        [7]李存琛.海量數(shù)據(jù)分布式存儲技術(shù)的研究與應(yīng)用[D]. 北京: 北京郵電大學(xué),2013.

        [8]孫巍,譚成翔.基于Amoeba中間件的分布式數(shù)據(jù)庫管理系統(tǒng)[J].計(jì)算機(jī)與現(xiàn)代化.2013,02:153-156.

        [9]張華強(qiáng).關(guān)系型數(shù)據(jù)庫與NoSQL數(shù)據(jù)庫[J].電腦知識與技術(shù),2011,7(20):4802-4804.

        猜你喜歡
        單機(jī)數(shù)據(jù)量批量
        熱連軋單機(jī)架粗軋機(jī)中間坯側(cè)彎廢鋼成因及對策
        新疆鋼鐵(2021年1期)2021-10-14 08:45:36
        基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
        批量提交在配置分發(fā)中的應(yīng)用
        計(jì)算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
        高刷新率不容易顯示器需求與接口標(biāo)準(zhǔn)帶寬
        寬帶信號采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計(jì)與研究
        電子制作(2019年13期)2020-01-14 03:15:18
        宇航通用單機(jī)訂單式管理模式構(gòu)建與實(shí)踐
        水電的“百萬單機(jī)時代”
        能源(2017年9期)2017-10-18 00:48:22
        淺議高校網(wǎng)銀批量代發(fā)
        基于AUTOIT3和VBA的POWERPOINT操作題自動批量批改
        国产精品亚洲精品国产| 精品国产福利片在线观看| 中国老太老肥熟女视频| 国产精品女同一区二区软件| 亚洲爆乳精品无码一区二区三区| 97精品人妻一区二区三区香蕉| 久久精品国产亚洲婷婷| 在线观看播放免费视频| 亚洲av综合色区无码一区| a级毛片成人网站免费看| 婷婷亚洲国产成人精品性色| 精品久久一区二区av| 国产精品会所一区二区三区| 国产成人精品电影在线观看| 国产亚洲AV无码一区二区二三区| 黄色中文字幕视频网站| 国产av无码专区亚洲av果冻传媒| 国产成人无码区免费内射一片色欲 | 精品国产午夜久久久久九九| 亚洲av乱码国产精品观| 久久亚洲av成人无码电影a片| 中文字幕无线码中文字幕| 国产高清女人对白av在在线| 国产一区二区三区视频在线观看| 十八禁在线观看视频播放免费| 亚洲免费视频播放| 日本二区三区视频在线观看| 性色av一二三天美传媒| 成年无码aⅴ片在线观看| 国产呦系列视频网站在线观看| 中文国产乱码在线人妻一区二区| 欧美成免费a级毛片| 国产成人精品自在线无码| 日韩一区二区中文字幕视频| 国产无遮挡aaa片爽爽| 丰满人妻无奈张开双腿av| 亚洲女同同性少妇熟女| 国产av综合网站不卡| 日本熟妇色xxxxx欧美老妇| 久久久久久久综合日本| 九七青青草视频在线观看|