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