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

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

2014-11-16 07:04:02
關(guān)鍵詞:數(shù)據(jù)庫(kù)實(shí)驗(yàn)信息

韓 巖 李 曉

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

1 概述

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

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

2 提出問(wèn)題與方案

2.1 提出問(wèn)題與方案

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

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

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

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

2.2 提出方案的原因

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

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

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

(1)高可靠性:Hadoop按位存儲(chǔ)和處理數(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)之間動(dòng)態(tài)地移動(dòng)數(shù)據(jù),并保證各個(gè)節(jié)點(diǎn)的動(dòng)態(tài)平衡,因此處理速度非常快。

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

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

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

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

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

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

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

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

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

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

表1 日志格式

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

實(shí)驗(yàn)說(shuō)明:在單機(jī)環(huán)境下,分別對(duì)10萬(wàn)、100萬(wàn)、1000萬(wàn)條數(shù)據(jù)只進(jìn)行讀寫(xiě)效率的測(cè)試。以下實(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)境:?jiǎn)螜C(jī)條件下,在Eclipse下使用Java編寫(xiě)開(kāi)發(fā)的項(xiàng)目。分別對(duì)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ù)時(shí),對(duì)MySQL、MongoDB監(jiān)控信息如圖2、圖3。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

b修改/etc/fluent/Fluentd.conf相關(guān)配置,使得Fluent采集信息能存儲(chǔ)到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) 測(cè)試結(jié)果

a測(cè)試命令:

$ 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 整個(gè)系統(tǒng)工作原理

圖10 輸出結(jié)果

結(jié)語(yǔ)

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

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

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

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

[4]鄒貴金.深入云計(jì)算:MongoDB管理與開(kāi)發(fā)實(shí)戰(zhàn)詳解[M].北京:中國(guó)鐵道出版社,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ù)分布式存儲(chǔ)技術(shù)的研究與應(yīng)用[D]. 北京: 北京郵電大學(xué),2013.

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

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

猜你喜歡
數(shù)據(jù)庫(kù)實(shí)驗(yàn)信息
記一次有趣的實(shí)驗(yàn)
做個(gè)怪怪長(zhǎng)實(shí)驗(yàn)
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數(shù)據(jù)庫(kù)
NO與NO2相互轉(zhuǎn)化實(shí)驗(yàn)的改進(jìn)
實(shí)踐十號(hào)上的19項(xiàng)實(shí)驗(yàn)
太空探索(2016年5期)2016-07-12 15:17:55
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
展會(huì)信息
主站蜘蛛池模板: 日韩在线2020专区| 亚洲国产天堂久久综合| 国产精品一区在线麻豆| 精品人妻一区无码视频| 伊人久久青草青青综合| 欧美一区精品| 伊人久久影视| 亚洲天堂网在线观看视频| 一级一毛片a级毛片| 国产精品人人做人人爽人人添| 成人综合网址| 丰满人妻久久中文字幕| 极品国产一区二区三区| 亚洲精品波多野结衣| 亚洲 日韩 激情 无码 中出| 日韩成人高清无码| 谁有在线观看日韩亚洲最新视频 | 国产男女免费完整版视频| 最新国产成人剧情在线播放 | 喷潮白浆直流在线播放| 91精品最新国内在线播放| 成年网址网站在线观看| 3344在线观看无码| 亚洲精品色AV无码看| 亚洲一级色| 综合色亚洲| 亚洲国产成人麻豆精品| 中文字幕一区二区人妻电影| 亚洲欧美成人网| 91久久夜色精品| 亚洲黄色成人| 香蕉视频在线观看www| 免费在线a视频| 成人亚洲天堂| 91青青草视频| 久久91精品牛牛| 91在线无码精品秘九色APP | 欧美久久网| 伊人成色综合网| 国产男女XX00免费观看| 国产成人久久综合777777麻豆| 啦啦啦网站在线观看a毛片 | 97久久精品人人做人人爽| 国产一级二级三级毛片| 色综合日本| 亚洲中久无码永久在线观看软件 | hezyo加勒比一区二区三区| 国产精品永久不卡免费视频| 欧美日韩成人在线观看| 国产精品大白天新婚身材| 欧美亚洲一区二区三区在线| 男人天堂亚洲天堂| 亚洲欧美精品日韩欧美| 国产无码性爱一区二区三区| 97se亚洲| 老司机精品99在线播放| 国产成人精品一区二区三区| 国产精品青青| 亚洲国产成人麻豆精品| 97se亚洲综合在线韩国专区福利| 欧美激情伊人| 2021亚洲精品不卡a| 就去色综合| 欧美中文字幕第一页线路一| h网址在线观看| 国产av一码二码三码无码 | 国产亚洲高清在线精品99| 日韩在线中文| 国产熟睡乱子伦视频网站| 国产精品视频a| 国产人碰人摸人爱免费视频| 欧美人与性动交a欧美精品| 国产一区二区三区在线观看免费| 中国毛片网| 日本黄色a视频| 1024国产在线| 色婷婷电影网| 狠狠色丁香婷婷综合| 国产剧情国内精品原创| 国产97色在线| 精品成人一区二区三区电影 | av在线无码浏览|