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

用Fluent與MongoDB構建高效海量日志采集系統

2014-11-16 07:04:02
中國新技術新產品 2014年12期
關鍵詞:數據庫實驗信息

韓 巖 李 曉

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

1 概述

日志是一個完整系統里面重要的功能組成部分,其利用特定的形式準確并且規范地表達出系統產生的所有行為,依據對日志的分析不僅可以對系統自身的性能進行有效的優化,而且當系統發生故障時,能夠準確、及時地定位錯誤,方便加以修正。

目前,隨著互聯網web2.0的迅速發展,一個企業級的服務器每天產生日志信息是相當可觀的,日志分析研究多集中在如何挖掘數據,而對如何存儲海量數據研究較少。這主要是因為很多日志分析系統采用了關系數據庫存儲或簡單的順序存儲,如商用的Oracle數據庫,免費的MySQL。采用關系數據庫存在效率低下的缺點,簡單的順序存儲又存在功能不夠強大、查詢效率低等不足。因此日志處理缺乏一種能高效查詢、適合存儲海量數據的管理系統做支撐。現在處理海量日志系統的方案有很多,大部分是基于分布式的原理來實現解決的。本文提出一種Fluent與MongoDB相結合的方法來完成海量日志的存儲。

2 提出問題與方案

2.1 提出問題與方案

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

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

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

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

2.2 提出方案的原因

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

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

第三種方案選擇Hadoop的原因:Hadoop是一個能夠讓用戶輕松架構和使用的分布式計算平臺。用戶可以輕松地在Hadoop上開發和運行處理海量數據的應用程序。它主要有以下幾個優點:

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

(2)高擴展性:Hadoop是在可用的計算機集簇間分配數據并完成計算任務的,這些集簇可以方便地擴展到數以千計的節點中。

(3)高效性:Hadoop能夠在節點之間動態地移動數據,并保證各個節點的動態平衡,因此處理速度非常快。

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

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

2.3 解決問題關鍵點

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

(1)高并發讀寫:現今的網站都是實時的生成動態頁面,及時提供動態信息,所以數據庫的并發負載很高。尤其是電子商務網站,每秒可以是上百萬的請求。

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

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

3 實驗與結果分析

因為日志最主要是寫入與查詢操作,所以用以上三種想法分別對10萬、100萬、1000萬條數據只進行讀寫效率的測試。目的是為了驗證海量日志數據存儲與查詢有效性和可行性。

實驗日志數據格式如表1:

表1 日志格式

3.1 單機實驗

實驗說明:在單機環境下,分別對10萬、100萬、1000萬條數據只進行讀寫效率的測試。以下實驗是5次運行的平均結果。

圖1 單機批量插入數據

圖2 MySQL批量插入性能監控圖

圖3 MongoDB批量插入性能監控圖

圖4 單機批量查詢數據

實驗環境:單機條件下,在Eclipse下使用Java編寫開發的項目。分別對MySQL、Hadoop和MongoDB進行批量插入(原因:數據量大,逐條插入效率低)與查詢實驗。

(1)批量插入數據

單機環境下,批量插入數據的實驗結果如圖1。

在批量插入數據時,對MySQL、MongoDB監控信息如圖2、圖3。

(2)查詢數據

在實驗數據中隨機查詢100條數據所用的時間,查詢數據實驗結果如圖4。

在查詢數據時,對MySQL、MongoDB監控信息如圖5、圖6。

(3)實驗結果

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

3.2 集群實驗

實驗說明:在集群環境下,分別對10萬、100萬、1000萬條數據只進行讀寫效率的測試。以下實驗是5次運行的平均結果。

實驗環境:集群條件下,在Eclipse下使用Java編寫開發的項目。分別對MySQL、Hadoop和MongoDB進行實驗。

集群環境如下:①MySQL集群:是在虛擬機下以Amoeba為代理服務器3臺MySQL數據庫構成一個集群;②Hadoop集群:是在虛擬機下3個結點,1個master結點,2個datanode結點;③MongoDB集群:是在虛擬機下由MongoDB構建的3組復制集,每組3個分片,3個Configsvr,1個路由節點。

(1)批量插入數據

實驗結果如圖7。

(2)查詢數據

在實驗數據中隨機查詢100條數據所用的時間,查詢數據實驗結果如圖8。

(3) 實驗結果

實驗結論:在集群環境下,滿足單機條件下的結論,但時間略微有點增加的主要原因是集群的啟動與集群之間數據通信。隨著數據量的增大,三類不同的集群在插入與查詢數據的時間都有所降低,并且MongoDB在查詢數據上表現出明顯的優勢。總之,無論是在單機環境下還是在集群環境下,MongoDB都表現出自己獨特的優勢,適合作為海量日志的數據倉庫。

4 構建日志系統

4.1 用Fluent與MongoDB構建日志采集系統

通過以上實驗結果說明MongoDB可以作為海量日志的數據倉庫,以下是用Fluent采集日志信息存儲到MongoDB或集群中的原理與過程。

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

(2) 實現步驟:

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

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

① 配置輸入信息:

type tail

format apache2

path /var/log/apache2/access_log

tag mongo.apache.access

② 配置單機輸出信息:

type mongo

database apache

collection access

host localhost

port 27017

flush_interval 10s

③ 配置復制集輸出信息:

type mongo_replset

database apache

collection fmongo

nodes ip1:port1, ip2:port2,…

flush_interval 10s

(3) 測試結果

a測試命令:

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

b輸出結果如圖10.

圖5 MySQL查詢性能監控圖

圖6 MongoDB查詢性能監控圖

圖7 集群批量插入數據

圖8 集群批量查詢數據

圖9 整個系統工作原理

圖10 輸出結果

結語

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

[1]白超,楊靜,吳建國.基于并行計算的海量日志分析系統實現[J].計算機技術與發展,2013,23(7):80-83.

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

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

[4]鄒貴金.深入云計算:MongoDB管理與開發實戰詳解[M].北京:中國鐵道出版社,2013:72-205.

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

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

[7]李存琛.海量數據分布式存儲技術的研究與應用[D]. 北京: 北京郵電大學,2013.

[8]孫巍,譚成翔.基于Amoeba中間件的分布式數據庫管理系統[J].計算機與現代化.2013,02:153-156.

[9]張華強.關系型數據庫與NoSQL數據庫[J].電腦知識與技術,2011,7(20):4802-4804.

猜你喜歡
數據庫實驗信息
記一次有趣的實驗
做個怪怪長實驗
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 一级毛片免费的| 91无码视频在线观看| 免费无码在线观看| 成人国产免费| 女人一级毛片| 免费国产在线精品一区| 无码视频国产精品一区二区 | 曰韩人妻一区二区三区| 美女高潮全身流白浆福利区| 欧美成人影院亚洲综合图| 99久久性生片| 三区在线视频| 亚洲成a人片| 91免费国产在线观看尤物| 四虎免费视频网站| 国产在线日本| 午夜色综合| 成人午夜天| 国产人免费人成免费视频| 麻豆国产精品视频| 久久综合色视频| 国产丝袜第一页| 麻豆精品国产自产在线| 午夜精品久久久久久久2023| 国产欧美精品午夜在线播放| 欧美中文字幕在线播放| 亚洲成aⅴ人片在线影院八| 欧洲熟妇精品视频| 国产91熟女高潮一区二区| 亚洲国产一区在线观看| 又粗又大又爽又紧免费视频| 欧美一级高清视频在线播放| 中文字幕乱码中文乱码51精品| 91成人在线观看视频| 全色黄大色大片免费久久老太| 国产午夜人做人免费视频| 国产素人在线| 国产黄色视频综合| 国产成人综合久久精品下载| 欧美在线黄| 亚洲精品日产精品乱码不卡| 日日拍夜夜嗷嗷叫国产| 亚洲乱码在线播放| 国内精品手机在线观看视频| 72种姿势欧美久久久久大黄蕉| 波多野吉衣一区二区三区av| 国产精品13页| 欧美成人亚洲综合精品欧美激情| 亚洲色精品国产一区二区三区| 亚洲日本中文综合在线| 国产91视频免费观看| 婷婷色中文| 欧美日韩在线亚洲国产人| 亚洲综合日韩精品| 亚洲AV无码不卡无码| 最新午夜男女福利片视频| 国产精品lululu在线观看| 青青国产视频| 国内精品久久久久鸭| 欧美第二区| 国产成人综合亚洲欧美在| 国产精品内射视频| 亚洲黄色片免费看| 亚洲啪啪网| 一级爱做片免费观看久久| 熟女成人国产精品视频| 一区二区三区国产| 在线亚洲小视频| 亚洲av无码片一区二区三区| 久久大香香蕉国产免费网站| 久久精品中文字幕少妇| 日本人真淫视频一区二区三区| 日韩AV无码免费一二三区| 黄色免费在线网址| 五月天香蕉视频国产亚| 国产一区免费在线观看| 日本尹人综合香蕉在线观看| 中文字幕66页| 成人午夜免费视频| 天天激情综合| 人妻精品久久无码区| 中文字幕日韩久久综合影院|