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

基于hive的日志倉庫構建研究

2016-12-19 20:49:07蔣煥亮
計算機時代 2016年11期

蔣煥亮

摘 要: 隨著電商平臺、門戶網站的訪問量越來越大,產生的日志信息也越來越多,傳統的日志文件處理方法無法滿足需求。通過分析Hadoop分布式文件系統(HDFS)、并行計算框架MapReduce和數據倉庫Hive技術特點,研究日志倉庫的體系結構及關鍵技術并建立日志數據倉庫。與數據庫相比,數據處理效率顯著提升。

關鍵詞: 日志; 數據倉庫; MapReduce; Hive

中圖分類號:TP393 文獻標志碼:A 文章編號:1006-8228(2016)11-21-04

Establishment of Web logs data warehouses based on Hive

Jiang Huanliang

(Shaoxing Vocational&Technical College, Shaoxing, Zhejiang 312000, China)

Abstract: With the amount of access to the web-portal and electronic business platform more and more, the related Web logs is steadily increasing and the traditional Web logs file is unable to meet the requirements. The Web logs data warehouse is finally established by analyzing the technical characteristics of HDFS, MapReduce and Hive, and studying the architecture and key technology of logs data warehouse. Compared with the database, the data processing efficiency is significantly improved.

Key words: Web logs; data warehouses; MapReduce; Hive

0 引言

隨著電商平臺、門戶網站的訪問量越來越大,產生的日志信息也越來越多,傳統的日志文件存儲和日志處理難于滿足要求。Web訪問日志中包含了大量的用戶行為信息,如訪問信息、瀏覽信息、購買信息、偏好、關注點等。通過對日志的處理,并進行用戶行為建模,可以得到有價值的信息,如用戶的屬性信息、用戶標簽、用戶興趣愛好、購買意向、再對這些用戶的信息進行聚類,劃分用戶集,為Web個性化應用提供服務[1]。因此,日志文件的存儲和處理具有非常重要的意義。

1 相關技術

1.1 hadoop技術

Hadoop系統運行于一個由普通服務器組成的計算集群,集群的主控節點控制和管理集群的正常工作、協調管理集群中從節點的數據存儲和數據計算,每個節點均具數據存儲和數據計算兩種功能。Hadoop分布式文件系統(Hadoop Distributed File System,HDFS)負責控制和管理的主控節點是NameNode,而每個具體負責存儲的從節點是DataNode。數據存儲節點DataNode和計算機節點TaskTracker會設置在同一物理的從節點服務器上。為了能進行并行化計算,Hadoop提供了MapReduce并行計算框架,該框架能有效管理和調度整個集群中的節點來完成并行化程序的執行和數據處理,負責管理和調度整個集群進行計算的主控節點成為JobTracker,而每個負責具體的數據計算的是從節點TaskTracker。JobTracker和NameNode設置在同一物理的主控服務器上,但系統規模較大則可分開設置 [2]。Hadoop分布式存儲與并行計算框架如圖1所示。

HDFS提供的大規模數據分布式存儲管理系統具有可擴展、高可靠、高可用特性,采用多副本的數據冗余存儲機制,并提供了有效的數據出錯檢查和數據恢復機制,大大提高數據冗余存儲的可靠性[2]。

MapReduce并行計算框架將負責調度和分配計算資源,劃分和輸入數據,調度程序執行,監控程序執行狀態,并負責程序執行時各計算節點的同步以及中間結果的收集整理,程序執行流程如圖2,分Map和Reduce兩階段并行處理。TaskTracker節點從HDFS讀取數據,InputFormat負責讀取數據輸入格式,然后數據劃分多個分片(Split),RecoredREader讀取每個分片交,轉換成Key-Value鍵值對,然后交由Map處理,Map所輸出的數據進行分區(Partitioner)后,發送到合適的Reduce節點,Reduce節點完成計算后經OutPutFormat輸出格式處理,最終將輸出數據寫回到HDFS[3]。

1.2 hive技術

Hive是基于Hadoop的開源數據倉庫,分析查詢結構化的海量數據,Hive執行與SQL類似的HiveQL語句,具有選擇、插入、合并、子查詢、分析等功能。Hive與關系數據相似,支持數據庫、表和視圖等。通過命令行界面和java數據庫編程連接數據庫。HiveQL可以擺脫復雜的MapReduce程序設計,將中心放在數據分析、業務需求上[4]。Hive架構如圖3所示。

2 日志倉庫體系結構

2.1 體系結構

從架構上看,基于Hive的日志數據倉庫有用戶接口層(Client)、數據分析層和數據存儲及處理層構成,如圖4所示。具體功能如下[5]。

用戶接口層:負責接收用戶輸入指令,并將指令發送到Hive引擎進行處理。用戶層接口包括數據庫方法編程接口(JDBC)、命令行接口(Command—Line Interface,CLI)。

數據分析層:包含元數據存儲層(Metostore)、Hive驅動(Driver)、編譯器(compiler)、執行引擎(Execution Engine)組建,主要功能:存儲、數據轉換、會話處理、查詢獲取、執行驅動、HiveQL編譯、HiveQL語言分析、執行計劃、優化、數據查詢等執行操作。

數據存儲及處理層:存儲數據并從數據分析層(Hive引擎)接收指令,通過HDFS、MapReduce實現數據處理。日志數據倉庫關鍵技術如下。

2.2 按時間劃分表

按時間劃分表是一種模式,即在表中加入時間戳。日志數據會隨時間不斷增加,按時間創建表(如按天劃分表),實現時間順序存儲日志[2]。如:

Hive>create table weblogs_2016_08_28(id int,….);

Hive>select * from weblogs_2016_08_28

>union all

>select * from weblogs_2016_08_29;

當Hive查詢分區表時,通過where子句中的表達式來選擇查詢所需的指定分區,查詢執行效率高。

Hive>select * from weblogs where day>=

20160828 and day<=20160830;

2.3 分區與分區裁剪

Hive通過分區表來提高數據庫性能,可以從一個數據源產生多個數據聚合,減少遍歷時間,對于大的數據輸入集,處理數據時間效率顯著[6]。數據以字段進行分片存儲。當查詢的where子句中包含此分區字段時,只查詢與where條件匹配的表分區范圍內的數據,減少掃描的數據量而提高查詢速度[2]。如:

Hive>CREATE TABLE WEBLOGS2016_08_26

(ID INT, ……)

>PARTITION BY(day STRING, ……);

Hive>INSERT OVER TABLE WEBLOGS2016_08_26

>PARTITION (day='20160826', ……);

數據寫入時,Hive不分析數據內容,需手工指定存儲分區。數據倉庫將按日期數據存儲在同一目錄中。

當需要對目標表的某一區域內的數據進行分析而不要涉及其他區域時,使用分區裁剪,將目標區域以條件形式存放在HiveQL中,如執行SELECT * FROM WEBLOGS WHERE DATE='20160826'查詢時,Hive將直接指向所需目錄,而不是對表中的所有數據進行遍歷。

2.4 分桶表數據

分區提供一個隔離數據和優化數據查詢的便利方式,但是并非所有的數據集都可以形成合理的分區,如按天劃分分區,每天的日志量并不一定一樣,要確定合適劃分大小分區是非常困難。

分桶是將數據集處理成更容易管理的技術。為了取樣更高效和更好的查詢處理效率,Hive可以將表組織桶(Bucket)。桶是通過對指定列進行哈希計算來實現,并使每個桶對應于列名下的一個存儲文件。如表的一級分區是日期(day),二級分區是性別,有可能會產生過多的小分區,而Hive的動態分區數量上是有限的。如:對表進行分桶,并使用用戶id字段作為分桶字段,則字段值會根據用戶指定的值進行哈希分發到桶中。同一用戶id的日志會存儲在同一個桶內。一個桶可能會包含多個用戶記錄。

Hive>SET hive.enforce.bucketing = true ;

Hive>CREATE TABLE WEBLOG (user_id INT, ……)

>PARTITION BY (day STRING, ……)

>CLUSTERED BY (user_id ) INTO 20 BUCKETS;

分桶的數量是固定的,沒有數量變化,桶對于抽樣非常合適。若兩個表都以用戶id進行分桶,hive可以創建邏輯上正確的抽樣,并對map-side JOIN執行效率提升[2]。

3 日志倉庫構建

實驗采用虛擬環境測試,物理機和虛擬機配置如下:物理機處理器是Intel(R) Core (TM) i7-4500u 1.8GHz,內存4.0GB,操作系統是Windows 8。虛擬機采用VMware Workstation,Master和Slave節點均使用Centos6,Hadoop-2.5.1,JDK1.7.0,Kafka_0.13.1。

啟動Hadoop集群,打開Hive客戶端創建數據庫、外部表和分區表并灌入數據,如下是創建分區數據表。

Hive>CREATE DATABASE weblogs;

Hive>CREATE EXTERNAL TABLE

weblogs_20160826_partition (

uid STRING,

…… )

COMMENT 'This is the weblogs search data by partition'

PARTITIONED BY (

year INT,

month INT,

day INT,

hour IN T,

CLUSTERED BY (user_id ) INTO 20 BUCKETS;

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t'

STORED AS TEXTFILE;

Hive日志倉庫與MySQL數據庫相比,在數據量較少的情況下,插入和查詢時間效率相似,當數據量較大時(5000萬行),MySQL的select進程killed,而Hive日志倉庫能高效查詢。測試結果如表1。

4 結束語

本文根據Hadoop和Hive的特點,利用分時、分區和分桶技術,設計并實現了基于Hive 的日志數據倉庫。實驗表明,在Hive上構建日志數據倉庫是可行且性能良好,特別是當數據量較大時,數據操作性能明顯提高。基于hive的數據倉庫可用于離線數據的處理,但對于實時數據處理還需進一步研究。

參考文獻(Reference):

[1] 江三鋒,王元亮.基于Hive的海量Web日志分析系統設計研

究[J].軟件,2015.4(36):93-96.

[2] 黃宜華,苗凱翔.深入理解大數據[M].機械工業出版社,2014.

[3] Tansel Dokeroglu, Serkan Ozal, Murat Ali Bayir. Improving

the performance of Hadoop Hive by sharing scan and computation tasks[J]. Journal of Cloud Computing,2014.3:1-12

[4] 王德文,肖凱,肖磊.基于Hive的電力設備狀態胸襲數據倉庫[J].

電力系統保護與控制,2011.9(41):125-130

[5] 王德文,肖凱,肖磊.基于Hive的電力設備狀態胸襲數據倉庫[J].

電力系統保護與控制,2011.9(41):125-130

[6] 卡普廖洛,萬普勒,盧森格.Hive編程指南[M].人民郵電出版

社,2013.

主站蜘蛛池模板: 国产一区免费在线观看| 亚洲精品777| 午夜视频在线观看免费网站 | 亚洲精品天堂自在久久77| 色婷婷色丁香| 综合天天色| 国产主播喷水| 久久一本日韩精品中文字幕屁孩| 91小视频在线观看| 又猛又黄又爽无遮挡的视频网站| 国产99视频在线| V一区无码内射国产| 亚洲视频在线观看免费视频| 全午夜免费一级毛片| 午夜影院a级片| 狠狠躁天天躁夜夜躁婷婷| 一级不卡毛片| 国产97色在线| 久久青草免费91线频观看不卡| 国产资源站| 国产精品自在线天天看片| 亚洲啪啪网| 国产99视频免费精品是看6| 欧美天堂在线| 日本亚洲国产一区二区三区| 国产精品视频白浆免费视频| 视频二区中文无码| 国产欧美视频综合二区| 欧美不卡二区| 四虎亚洲国产成人久久精品| 亚洲精品老司机| 日韩视频免费| 日韩毛片免费视频| a毛片基地免费大全| 手机精品视频在线观看免费| 国产成人精品高清在线| 日日噜噜夜夜狠狠视频| 青青极品在线| 深爱婷婷激情网| 久久久91人妻无码精品蜜桃HD| 國產尤物AV尤物在線觀看| 亚洲AV一二三区无码AV蜜桃| 日本黄色不卡视频| 亚洲成人黄色网址| 日韩午夜片| 92精品国产自产在线观看| 91精品伊人久久大香线蕉| 亚洲中文字幕av无码区| 国产欧美又粗又猛又爽老| 91美女视频在线观看| 宅男噜噜噜66国产在线观看| 国产成人精品高清不卡在线| 欧美亚洲欧美| 欧美黑人欧美精品刺激| 欧美乱妇高清无乱码免费| 91香蕉视频下载网站| 尤物在线观看乱码| 极品尤物av美乳在线观看| 无码日韩精品91超碰| 亚瑟天堂久久一区二区影院| 日本在线亚洲| 露脸真实国语乱在线观看| 色婷婷国产精品视频| 国产在线自乱拍播放| 国产精品白浆在线播放| 精品无码国产自产野外拍在线| 高清不卡一区二区三区香蕉| www中文字幕在线观看| 亚洲精品手机在线| 国产毛片不卡| 日韩av在线直播| 国产精品开放后亚洲| 亚洲精品成人片在线观看 | 色综合久久久久8天国| 青青操国产视频| 国产精品yjizz视频网一二区| 高清国产在线| 国产成人精品一区二区秒拍1o| 亚洲精品波多野结衣| 97色伦色在线综合视频| 色综合手机在线| 国产高清无码第一十页在线观看|