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