摘 要:本文在對日志分析的基礎(chǔ)上,結(jié)合日志收集發(fā)展出來的新技術(shù)新方法,將日志進(jìn)行結(jié)構(gòu)化處理,依靠現(xiàn)在的大數(shù)據(jù)技術(shù)進(jìn)行存儲(chǔ),利用更高性能的數(shù)據(jù)分析工具進(jìn)行數(shù)據(jù)的梳理,建立數(shù)據(jù)倉庫,直至通過數(shù)據(jù)倉庫中的數(shù)據(jù)自動(dòng)生成的圖表和報(bào)表直接呈現(xiàn)給需要改進(jìn)產(chǎn)品的產(chǎn)品經(jīng)理、想要了解網(wǎng)站現(xiàn)狀的BI部口、以及負(fù)責(zé)做決斷的公司決策者。
關(guān)鍵詞:大數(shù)據(jù)技術(shù); 網(wǎng)站用戶行為分析;Hadoop;Hive
1. 引言
隨著互聯(lián)網(wǎng)的飛速發(fā)展,互聯(lián)網(wǎng)企業(yè)每天產(chǎn)生的日志高達(dá)數(shù)TB的數(shù)量級,如何高效且準(zhǔn)確的從日志中提取網(wǎng)站運(yùn)行的情況、PV、UV、活躍用戶數(shù)量、活躍用戶構(gòu)成、用戶喜歡的頁面類型等等關(guān)鍵的數(shù)據(jù)信息,已經(jīng)是目前世界上所有主流互聯(lián)網(wǎng)企業(yè)所迫切解決的問題,我們想要更加詳細(xì)的了解用戶在網(wǎng)站上的行為記錄,分析出用戶對網(wǎng)站功能和內(nèi)容的偏好等,來辨別高質(zhì)量的用戶和活躍的用戶,維護(hù)好這些高質(zhì)量和活躍的用戶,才是促進(jìn)整個(gè)企業(yè)的網(wǎng)站建設(shè)和個(gè)性化服務(wù)發(fā)展的根本動(dòng)力,從而提升企業(yè)產(chǎn)品在整個(gè)互聯(lián)網(wǎng)市場上的綜合競爭能力。
2. 關(guān)鍵技術(shù)
自2008年google提出big data的概念以來,已經(jīng)過去了10年,這10年中,大數(shù)據(jù)技術(shù)飛速崛起,hadoop相關(guān)技術(shù)作為時(shí)代的領(lǐng)軍者己經(jīng)被成千上萬的企業(yè)所采用,一些大型的企業(yè),Google、Apache、Yahoo、IBM、Amazon、Baidu、Alibaba、Tencent等等動(dòng)輒部署數(shù)千臺(tái)hadoop服務(wù)器來進(jìn)行數(shù)據(jù)的存儲(chǔ)、統(tǒng)計(jì)和分析。而在技術(shù)不斷迭代更新的今天,又有大量的新技術(shù)在這個(gè)生態(tài)圈中出現(xiàn),批量配置管理工具puppet、SaltStack、Ambari;系統(tǒng)管理及監(jiān)控工具Hue、Karmasphere、Zabbix;序列化處理和調(diào)度管理工具Avro、Zookeeper;數(shù)據(jù)收集工具Scribe、Logstash、Flume、Graylog2、Fluentd;類SQL查詢數(shù)據(jù)倉庫Hive、Impala;流式處理工具Pig;并行計(jì)算框架MapReduce、Tez和Spark;機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘的Mahout;列式存儲(chǔ)數(shù)據(jù)Hase;流式數(shù)據(jù)導(dǎo)入導(dǎo)出工具Sqoop、Kafka、Hiiho;還有適用于搜索的Elasticsearch及可視化工具Kibana等等。
本文包含的創(chuàng)新點(diǎn)和需要解決的技術(shù)難點(diǎn)如下:
(1)Linux系統(tǒng)、MySQL、Hadoop、HBase、Hive、Sqoop、R、Eclipse等系統(tǒng)和軟件的安裝和使用;
(2)大數(shù)據(jù)處理的基本流程的設(shè)計(jì)和優(yōu)化;
(3)選擇合適的數(shù)據(jù)預(yù)處理方法;
(4)在不同類型數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)相互導(dǎo)入導(dǎo)出;
(5)使用R語言進(jìn)行可視化分析;
(6)使用Elipse編寫Java程序操作HBase數(shù)據(jù)庫。
3. 研究過程
本文的研究方法主要是結(jié)合大數(shù)據(jù)技術(shù),通過各類大數(shù)據(jù)的系統(tǒng)軟件和應(yīng)用軟件做實(shí)驗(yàn)研究。實(shí)驗(yàn)過程可以在單機(jī)上完成,也可以在集群環(huán)境下完成。建議計(jì)算機(jī)硬件配置為:500GB以上硬盤,8GB以上內(nèi)存。本文對應(yīng)的研究目標(biāo)數(shù)據(jù)集是:網(wǎng)站用戶購物行為數(shù)據(jù)集2000萬條記錄。研究的主要技術(shù)路線如下:
(1)安裝Linux操作系統(tǒng)
(2)安裝關(guān)系型數(shù)據(jù)庫MySQL
(3)安裝大數(shù)據(jù)處理框架Hadoop
(4)安裝列族數(shù)據(jù)庫HBase
(5)安裝數(shù)據(jù)倉庫Hive
(6)安裝Sqoop
(7)安裝R
(8)安裝Eclipse
(9)對文本文件形式的原始數(shù)據(jù)集進(jìn)行預(yù)處理
(10)把文本文件的數(shù)據(jù)集導(dǎo)入到數(shù)據(jù)倉庫Hive中
(11)對數(shù)據(jù)倉庫Hive中的數(shù)據(jù)進(jìn)行查詢分析
(12)使用Sqoop將數(shù)據(jù)從Hive導(dǎo)入MySQL
(13)使用Sqoop將數(shù)據(jù)從MySQL導(dǎo)入HBase
(14)使用HBase Java API把數(shù)據(jù)從本地導(dǎo)入到HBase中
(15)使用R對MySQL中的數(shù)據(jù)進(jìn)行可視化分析
本課題研究的具體實(shí)驗(yàn)過程如下:
(1)實(shí)驗(yàn)環(huán)境準(zhǔn)備
(2)本地?cái)?shù)據(jù)集上傳到數(shù)據(jù)倉庫Hive
(3)Hive數(shù)據(jù)分析
(4)Hive、MySQL、HBase數(shù)據(jù)互導(dǎo)
每個(gè)實(shí)驗(yàn)步驟所需要的知識儲(chǔ)備、實(shí)驗(yàn)難點(diǎn)和任務(wù)清單如下:
(1)實(shí)驗(yàn)環(huán)境準(zhǔn)備
所需知識:Windows操作系統(tǒng)、Linux操作系統(tǒng)、大數(shù)據(jù)處理架構(gòu)Hadoop的關(guān)鍵技術(shù)及其基本原理、列族數(shù)據(jù)庫HBase概念及其原理、數(shù)據(jù)倉庫概念與原理、關(guān)系型數(shù)據(jù)庫概念與原理。
實(shí)驗(yàn)難點(diǎn):雙操作系統(tǒng)安裝、虛擬機(jī)安裝、Linux基本操作、Hadoop安裝、HBase安裝、Sqoop安裝、Eclipse安裝。
任務(wù)清單:1. 安裝Linux系統(tǒng);2. 安裝Hadoop;3. 安裝MySQL;4. 安裝HBase;5. 安裝Hive;6. 安裝Sqoop;7. 安裝R;8. 安裝Eclipse。
(2)本地?cái)?shù)據(jù)集上傳到數(shù)據(jù)倉庫Hive
所需知識: Linux系統(tǒng)基本命令、Hadoop項(xiàng)目結(jié)構(gòu)、分布式文件系統(tǒng)HDFS概念及其基本原理、數(shù)據(jù)倉庫概念及其基本原理、數(shù)據(jù)倉庫Hive概念及其基本原理
實(shí)驗(yàn)難點(diǎn):Hadoop的安裝與基本操作、HDFS的基本操作、Linux的安裝與基本操作、數(shù)據(jù)倉庫Hive的安裝與基本操作、基本的數(shù)據(jù)預(yù)處理方法。
任務(wù)清單:1. 安裝Linux系統(tǒng);2. 數(shù)據(jù)集下載與查看;3. 數(shù)據(jù)集預(yù)處理;4. 把數(shù)據(jù)集導(dǎo)入分布式文件系統(tǒng)HDFS中;5. 在數(shù)據(jù)倉庫Hive上創(chuàng)建數(shù)據(jù)庫。
(3)Hive數(shù)據(jù)分析
所需知識:數(shù)據(jù)倉庫Hive概念及其基本原理、SQL語句、數(shù)據(jù)庫查詢分析。
實(shí)驗(yàn)難點(diǎn): 數(shù)據(jù)倉庫Hive基本操作、創(chuàng)建數(shù)據(jù)庫和表、使用SQL語句進(jìn)行查詢分析。
任務(wù)清單:1. 啟動(dòng)Hadoop和Hive;2. 創(chuàng)建數(shù)據(jù)庫和表;3. 簡單查詢分析;4. 查詢條數(shù)統(tǒng)計(jì)分析;5. 關(guān)鍵字條件查詢分析;6. 根據(jù)用戶行為分析;7. 用戶實(shí)時(shí)查詢分析。
(4)Hive、MySQL、HBase數(shù)據(jù)互導(dǎo)
所需知識:數(shù)據(jù)倉庫Hive概念與基本原理、關(guān)系數(shù)據(jù)庫概念與基本原理、SQL語句、列族數(shù)據(jù)庫HBase概念與基本原理。
實(shí)驗(yàn)難點(diǎn):數(shù)據(jù)倉庫Hive的基本操作、關(guān)系數(shù)據(jù)庫MySQL的基本操作、Sqoop工具的使用方法、HBase API的Java編程、Eclipse開發(fā)工具使用方法。
任務(wù)清單:1. Hive預(yù)操作;2. 使用Sqoop將數(shù)據(jù)從Hive導(dǎo)入MySQL;3. 使用Sqoop將數(shù)據(jù)從MySQL導(dǎo)入HBase;4. 使用HBase Java API把數(shù)據(jù)從本地導(dǎo)入到HBase中。
作者簡介:
宋曼(1984.03-),女,漢族,湖北天門人,專任教師,黨員,副高,碩士,主要研究方向:Android開發(fā)、Web開發(fā)