李霄揚 朱恒



關鍵詞:Hadopp;海量數據;離線業務分析
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2023)10-0075-03
0 引言
如今,計算機和信息技術發展迅猛,并且得到了普遍應用,各大行業的數據量都在以爆炸性的速度增長,全球已經進入了“大數據”時代[1]。在大數據時代下,企業可以從龐大繁雜的數據背后挖掘和分析用戶的行為習慣和愛好,其創造的價值和人們的生活息息相關。在實際的商業案例,信用卡公司VISA需要處理兩年中730億單的交易,由于采用了Hadoop技術,在以往技術大約需要一個月時間,而現在僅僅花了13 分鐘的時間[2]。顯然,企業依舊按照傳統的方法進行處理傳統的數據處理方式已經無法滿足和解決動輒數百TB級甚至是PB級大數據的問題,尤其是在數據的存儲和計算方面。當今時代,大數據應用系統無處不在,對于不同的應用場景,各大系統需要進行具體問題具體分析,針對自己所處的場景、所想要的結果去采用不同的數據處理技術和不同的大數據框架。
1 基于Hadoopde 大數據分析系統的通用架構
數據已經成為重要的無形資產[3]。本研究的主要目標是基于Hadoop、Hive、Sqoop技術,總結出大數據應用系統的一般架構。Hadoop是apache旗下的一套開源軟件平臺,其功能主要有:利用服務器集群,根據用戶的自定義業務邏輯,對海量數據進行分布式處理。Hive則是基于Hadoop的一個數據倉庫工具,它能將結構化的數據文件映射為一張數據庫表。Sqoop 是SQL-to-Hadoop的縮寫,運行在HDFS之上,主要用于實現結構型數據和Hadoop之間進行數據遷移的工具[4]。這三大套件的基本架構如圖1所示。
2 基于Hadoopde 大數據分析系統的環境配置
2.1 Hadoop 基礎環境的搭建
Hadoop采用在多節點上分布式方式運行,具體安裝步驟如下:
1)創建Hadoop用戶
$ sudo useradd –m Hadoop –s /bin/bash #添加hadoop用戶
$ sudo passwd hadoop #設置hadoop密碼
說明:sudo是一種權限管理機制,通過該命令,普通用戶可以被管理員賦予一些只有root權限才能執行的操作的權限。
2)更新apt
$ sudo apt-get update 說明:此操作的執行目的是便于后期軟件的安裝。如果沒有更新apt,后期可能會有一些軟件安裝不了。
3)安裝SSH、配置SSH無密碼登錄
$ sudo apt-get install openssh-server # 安裝SSH server
$ cd ~/.ssh/
$ ssh-keygen -t rsa # 會有提示,都按回車就可以
$ cat ./id_rsa.pub >> ./authorized_keys # 將id_rsa.pub加入授權
說明:在第二行命令中,如果沒有ssh目錄,需要先執行命令:ssh localhost。
4)Hadoop分布式配置
①修改配置文件core-site.xml,新增
修改hdfs-site.xml,新增dfs.namenode.name.dir和dfs.datanode.data.dir屬性;
②NameNode格式化:
$ ./bin/hdfs namenode -format
③開啟NameNode和DataNode守護進程;
④驗證是否配置成功。
驗證命令如下:
jps
說明:啟動成功則會列出如下進程:“NameNode”“DataNode”“ResourceManage”“SecondaryNameNode”。啟動成功后,可以通過在瀏覽器打開http://localhost:50070訪問Web界面查看相關信息,在該界面中,同樣可以查看HDFS中的文件,訪問成功如圖1所示。
2.2 Hive 的安裝
1)下載并解壓hive源程序
$ sudo tar -zxvf ./apache-hive-1.2.1-bin.tar.gz -C /usr/local # 解壓到目錄/usr/local中
$ cd /usr/local/
$ sudo mv apache-hive-1.2.1-bin hive # 將文件夾名改成hive
$ sudo chown -R hadoop:hadoop hive # 修改文件權限
2)配置環境變量
在.bashrc文件中添加如下內容:
export HIVE_HOME=/usr/local/hive
source ~/.bashrc #保存退出,使配置生效
3)修改hive-site.xml文件
$ cd /usr/local/hive/conf #打開hive-site.xml文件的位置
$ mv hive-default.xml.template hive-default.xml # 重命名文件名
$ vim hive-site.xml #利用vim 編輯器新建一個hive-site.xml配置文件
4)配置MySQL允許hive接入
用戶進入MySQL命令提示符下,進行如下操作:mysql> grant all on *.* to hive@localhost identified by 'hive';
mysql> flush privileges;
說明:第一步是賦予權限的操作,即hive可以享有操作數據庫中所有表的權限,identified by‘hive則是配置hive的連接密碼;第二步的操作則是由于前面賦予權限的操作,這里需要刷新權限表。
2.3 Sqoop 的安裝
由于這里很多操作,例如解壓安裝等操作與前面類似,這里不再多作說明。
1)下載并解壓Sqoop
$ sudo tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-
alpha.tar.gz -C /usr/local
$ sudo chown -R hadoop:hadoop sqoop #修改文件夾屬主
2)修改配置文件sqoop-env.sh
$ cd sqoop/conf/
$ cat sqoop-env-template.sh >> sqoop-env.sh #復制文件
$ vim sqoop-env.sh #編輯該腳本文件,添加相關內容
編輯內容如下:
export HADOOP_COMMON_HOME=/usr/local/ha?doop
export HADOOP_MAPRED_HOME=/usr/local/ha?doop
export HBASE_HOME=/usr/local/hbase
export HIVE_HOME=/usr/local/hive
3)配置環境變量
方法與上述Hive的環境變量配置相同,同樣是在.bashrc的配置文件中添加Sqoop的安裝路徑,然后保存退出使其生效即可。
4)將MySQL驅動包拷貝到$SQOOP_HOME/lib
5)測試與MySQL的連接
通過sqoop list-databases,并連接MySQL的端口,輸入MySQL 的登錄信息查看MySQL 中的數據庫列表。這里是在SecureCRT中進行的測試,具體命令及測試結果如圖3所示。
3 離線數據分析應用:網站用戶行為分析
“網站用戶行為分析”指通過網站中用戶的一些基本信息以及用戶的一些操作行為,例如用戶對某商品是點擊了還是收藏、加入購物車或是購買,用戶什么時間購買了什么商品哪類商品等。通過以上各種行為以及個人基本信息,可以統計分析出用戶的主要消費行為是什么,哪些類商品比較熱銷、用戶主要是哪類人群、哪個月份銷售量大等對網站運營很重要的信息。本案例需要通過給定的數據集,對該數據集進行一些必要的操作,統計分析出對該網站運營有用的信息。其基本架構如圖4所示:
其算法流程如圖5所示:
以用戶消費行為為例,基于R語言實現數據分析可視化:
library(ggplot2)
ggplot(user_action,aes(as.numeric(behavior_type)))+geom_histogram()
說明:上述命令中,第一行命令中,ggplot2表示一種繪圖包,如果要用該繪圖包,則要利用library將其導入到庫中。第二行命令表示開始利用ggplot進行繪制。在繪制時,利用“+”對圖層進行疊加,可見上述命令中創建了兩個圖層。在第一個圖層中,包含了兩個參數:數據和變量名稱映射。上述的數據為user_ac?tion,變量名稱則需要被包含aes()函數里。上述命令中映射出behavior_type中各個值的總量。第二個圖層中,表示用直方圖進行繪制。可得到如圖6所示的分析結果。
4 結束語
大數據的核心價值是從龐大的數據背后挖掘和分析用戶的行為和習慣,根據得到的數據并對這些數據進行相關的分析,從而可以對用戶進行相關推薦[5]。通過用戶行為數據進行分析得到的結果為用戶推薦相關產品的做法已經逐漸普遍化,本文中的系統架構可以為類似的離線數據分析系統提供范例和參考,從而進一步地改進并提升數據分析的工作質量。