温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
数据
实例
用户
行为
分析
天道酬勤
大数据实例:网站用户行为分析
山西大学研究生工程设计报告〔2023 ---- 2023学年第1学期〕
学院〔中心、所〕:计算机与信息技术学院
专业名称:软件工程(专硕)
课程名称:大数据处理
论文题目:网站用户行为分析
授课教师〔职称〕:杜亮
研究生姓名:温杰
年级:2023级
学号:202322405011
成绩:
评阅日期:
山西大学研究生学院
2023年12月20日
1
大数据实例:网站用户行为分析
大数据实例:网站用户行为分析 (2)
一、案例简介 (4)
二、案例目的 (4)
三、软件工具 (4)
四、案例任务 (4)
五、实验步骤 (5)
5.1、实验步骤一:实验环境准备 (5)
5.1.1、linux系统的安装 (5)
5.1.2、Hadoop的安装 (6)
5.1.3、MySQL的安装 (6)
5.1.4、HBase的安装 (8)
5.1.5、Hive的安装 (8)
5.1.6、Sqoop的安装 (10)
5.1.7、Eclipse安装 (12)
5.2、实验步骤二:本地数据集上传到数据参考Hive (12)
5.2.1、实验数据集的下载 (12)
5.2.2、解压下载得到的数据集到指定目录 (12)
5.2.3、数据集的预处理 (13)
5.3、实验步骤三:Hive数据分析 (15)
5.4、实验步骤四:Hive、MySQL、HBase数据互导 (19)
5.4.1、Hive预操作 (19)
2
5.4.2、使用Sqoop将数据从Hive导入MySQL (20)
5.4.3、使用Sqoop将数据从MySQL导入HBase (21)
5.5、实验步骤五:利用R进行数据可视化分析 (22)
5.5.1、R安装 (22)
5.5.2、可视化分析MySQL中的数据 (23)
3
一、案例简介
本案例涉及数据预处理、存储、查询和可视化分析等数据处理全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、HBase、Hive、Sqoop、R、Eclipse等系统和软件的安装和使用方法。
二、案例目的
1、熟悉Linux系统、MySQL、Hadoop、HBase、Hive、Sqoop、R、Eclipse等系统和软件的安装和使用;
2、了解大数据处理的根本流程;
3、熟悉数据预处理方法;
4、熟悉在不同类型数据库之间进行数据相互导入导出;
5、熟悉使用R
语言进行可视化分析;
6、熟悉使用Elipse编写Java程序操作HBase数据库。
三、软件工具
图1、软件总体概览图
四、案例任务
1、安装Linux操作系统
2、安装关系型数据库MySQL
3、安装大数据处理框架Hadoop
4、安装列族数据库HBase
4
5、安装数据仓库Hive
6、安装Sqoop
7、安装R
8、安装Eclipse
9、对文本文件形式的原始数据集进行预处理
10、把文本文件的数据集导入到数据仓库Hive中
11、对数据仓库Hive中的数据进行查询分析
12、使用Sqoop将数据从Hive导入MySQL
13、使用Sqoop将数据从MySQL导入HBase
14、使用R对MySQL中的数据进行可视化分析
图2、案例所涉及操作总体概览图
五、实验步骤
5.1、实验步骤一:实验环境准备
5.1.1、linux系统的安装
该局部内容略去。
5
5.1.2、Hadoop的安装
该局部内容详见另一篇参考文档:Ubuntu伪分布式安装Hadoop详细步骤.
5.1.3、MySQL的安装
⒈使用如下命令进行安装MySQL:
2.启动MySQL效劳器:
3.确认是否成功:
4.进入MySQL Shell界面:
6
7
5.解决利用Sqoop 导入MySQL 中文乱码的问题
导致导入时中文乱码的原因是character_set_server 默认设置为latin1,可以单个设置修改编码方式set character_set_server=utf8
;但是重启后会失效,建议使用以
下方式修改编码方式。如以下列图:
重启MySQL 效劳:service mysql restart ;MySQL 后查看MySQL 设置的编码。如以下列图所示:
5.1.4、HBase的安装
该局部内容略去。
5.1.5、Hive的安装
1.下载并解压Hive源程序:Hive下载链接
2.使用如下命令进入到解压到的目录,重命名解压目录为Hive-1.2.1,修改
Hive-1.2.1目录所有者为wenjie.
cd /usr/local/
sudo mv apache-hive-1.2.1-bin Hive-1.2.1
sudo chown wenjie Hive-1.2.1 –R
3.配置环境变量
为了方便使用,我们把hive命令参加到环境变量中去,命令:gedit ~/.bashrc
文件,在其中参加代码:
export HIVE_HOME=/usr/local/Hive-1.2.1
export PATH=$PATH:$HIVE_HOME/bin
保存退出后,命令source ~/.bashrc,使配置生效。
4.修改/usr/local/Hive-1.2.1/conf下的hive-site.xml
将hive-default.xml.template重命名为hive-default.xml;新建一个文件
touch hive-site.xml,并在hive-site.xml中粘贴如下配置信息。
8
9
5.安装并配置MySQL
这里我们采用MySQL 数据库保存Hive 的元数据,而不是采用Hive 自带的derby 来存储元数据。
下载MySQL JDBC 包:下载链接
下载好安装包后将mysql-connector-java-5.1.40.tar.gz 解压后放入/usr/local/Hive-1.2.1/lib 目录下:
6.启动并登陆MySQL Shell
命令如下:
service mysql start
mysql –u wenjie –p 新建wenjie_db 数据库:
配置MySQL,允许hive接入:
命令如下:
grant all on x.x to wenjie@localhost identified by ‘wj5810831’;
#将所有数据库的所有表的所有权限赋给wenjie用户,后面的wj5810831是hive-site.xml中配置的链接密码
flush priviledges; #刷新MySQL系统权限关系表
启动hive:
启动hive之前,先启动hadoop集群
命令如下:start-all.sh #启动hadoop集群
Hive #启动hive
启动hive成功后,即hive配置成功!
5.1.6、Sqoop的安装
1.下载并解压sqoop 1.4.6:Sqoop
下载链接
点击下载链接地址下载
sqoop安装文件sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz。
下载完成后,执行下面命令:
2.修改配置文件sqoop-env.sh
命令如下:cd Sqoop-1.4.6/conf
cat sqoop-env-template.sh >> sqoop-env.sh
10
gedit sqoop-env.sh
3.配置环境变量
翻开当前用户的环境变量配置文件,在配置文件中参加SQOOP_HOME变量,并将Sqoop-1.4.6目录下的bin目录参加到PATH变量中。如以下列图:
执行命令source ~/.bashrc,使配置文件生效。
4.将上一步骤中下载的mysql驱动包拷贝到Sqoop-1.4.6目录下的lib目录。
5.测试与MySQL的链接
首先请确保mysql效劳已经启动,使用如下命令测试Sqoop与MySQL之间的连接是否成功:
Sqoop list-databases –connect jdbc:mysql://127.0.0.1:3306/ --username wenjie –p
执行正确后效果图如下,罗列出MySQL数据效劳器中的数据库:
11
12
5.1.7、Eclipse 安装 直接在Ubuntu 软件中心中查找Eclipse 后,点击安装即可。
5.2、实验步骤二:本地数据集上传到数据参考Hive
5.2.1、实验数据集的下载 本案例采用的数据集为user.zip ,包含了一个大规模数据集raw_user.csv 〔包含2000
万条记录〕,和一个小数据集small_user.csv
〔只包含30万条记录〕。小数据集small_user.csv 是从大规模数据集raw_user.csv 中抽取的一小局部数据。本实验中我们使用的就是小数据集进行测试。点击进行数据集下载:数据集下载链接
5.2.2、解压下载得到的数据集到指定目录
我们执行下面命令取出前面10条记录查看一下:
可以看出,每行记录都包含5个字段,数据集中的字段及其含义如下:user_id〔用户id〕
item_id(商品id)
behaviour_type〔包括浏览、收藏、加购物车、购置,对应取值分别是1、
2、3、4〕
user_geohash(用户地理位置哈希值,有些记录中没有这个字段值,所以后面我们会用脚本做数据预处理时把这个字段全部删除)
item_category〔商品分类〕
time〔该记录产生时间〕
5.2.3、数据集的预处理
1.删除文件的第一行记录,即字段名称
raw_user.csv和small_user.csv中的第一行都是字段名称,我们在文件中的数据导入到数据仓库Hive中时,不需要第一行字段名称,因此,这里我们在做数据预处理时,将第一行删除。
命令如下:sed –i ‘1d’raw_user//1d表示删除第1行,同理,3d表示删除
//第3行,nd表示删除第n行
sed –i ‘1d’small_user//删除small_user中的第一行
2.对字段进行预处理
下面对数据集进行一些预处理,包括为每一行记录增加一个id字段〔让记录具有唯一性〕,增加一个省份字段〔后续为其进行可视化分析〕,并且丢弃
user_geohash字段〔后续没有用到该字段〕。
下面建一个pre_deal.sh脚本文件,将脚本文件放在测试数据文件目录下。
使用gedid pre_deal.sh,输入如下代码:
13
14
下面就可以在脚本文件所在的目录中执行脚本,对small_user.csv 进行数据预处理,命令如下:bash ./pre_deal.sh small_user.csv user_table.txt
执行后,使用
head
命令查看生成的user_table.txt ,不要直接翻开
3.导入数据库
下面要把user_table.txt 中的数据最终导入到数据仓库Hive 中。为了完成这个操作,我们首先将user_table.txt 上传到分布式文件系统HDFS 中,然后在Hive 中创立一个外部表,完成数据的导入。
首先,启动hadoop 集群。
命令如下: start-all.sh
./hdfs dfs –mkdir /user/root/InputFloder/HiveDatabase_UserData ./hdfs dfs –put /home/wenjie/下载/TestData/user_table.txt
/user/root/InputFloder/HiveDatabase_UserData
下面可以使用Web 页面查看是否上传成功,如以下列图:
接下来,启动MySQ