大数据期末课程设计实验案例:网站用户行为分析

这篇具有很好参考价值的文章主要介绍了大数据期末课程设计实验案例:网站用户行为分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大数据课程实验案例:网站用户行为分析
案例目的
1.熟悉Linux系统、MySQL、Hadoop、HBase、Hive、Sqoop、R、Eclipse等系统和软件的安装和使用;
2.了解大数据处理的基本流程;
3.熟悉数据预处理方法;
4.熟悉在不同类型数据库之间进行数据相互导入导出;
5.熟悉使用R语言进行可视化分析;
6.熟悉使用Elipse编写Java程序操作HBase数据库。
大数据期末课程设计实验案例:网站用户行为分析

案例任务
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中的数据进行可视化分析

大数据期末课程设计实验案例:网站用户行为分析

说明:Word可能导致部分命令或代码有问题,每一个步骤都提供参考链接,详细查看参考链接

首先1.安装Linux系统;
参考https://dblab.xmu.edu.cn/blog/285/
以下是各软件的安装,通过启动来验证安装
所有准备好在这里
cd /home/hadoop/a
大数据期末课程设计实验案例:网站用户行为分析

用户准备工作
sudo useradd -m hadoop -s /bin/bash
Shell 命令这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。
接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码:
sudo passwd hadoop
密码:123
可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题:

sudo adduser hadoop sudo
更新apt
用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了。按 ctrl+alt+t 打开终端窗口,执行如下命令:
sudo apt-get update
修改各个节点的主机名
sudo vi /etc/homename

安装ssh工具
1.打开终端键入如下命令:
apt-get update
apt-get install openssh-server
启动SSH服务
1.键入如下命令:
/etc/init.d/ssh start
重启命令与关闭命令如下:
/etc/init.d/ssh restart #重启SSH服务
/etc/init.d/ssh stop #关闭SSH服务
查看进程,检查是否启动成功,键入如下命令:
ps -e | grep sshd
配置root用户SSH服务

Ubuntu中SSH服务安装完成后查看是否允许root用户登陆,若不允许则无法远程登陆root用户,需要修改配置
1.首先,打开“/etc/ssh/sshd_config”
gedit /etc/ssh/sshd_config
2.查看是否有“PermitRootLogin yes”,没有添加即可,完成后保存退出
解决进程问题
sudo rm -r -f /var/lib/dpkg/lock
sudo rm -r -f /var/lib/dpkg/lock-frontend

安装vim
sudo apt-get install vim
为当前用户设置权限
sudo chown -R 当前用户名 ./hadoop
软件安装注意!!!先解压好软件,再去到解压后所在目录在开始运行安装命令
大数据实验软件安装详细过程参考:
Linux操作系统的安装:https://dblab.xmu.edu.cn/blog/285/
Hadoop安装教程:https://dblab.xmu.edu.cn/blog/7/
MySQL的安装:https://dblab.xmu.edu.cn/blog/1002/
HBase的安装:https://dblab.xmu.edu.cn/blog/588/
Hive的安装:https://dblab.xmu.edu.cn/blog/1080/
Sqoop的安装:https://dblab.xmu.edu.cn/blog/1015/

2.安装Hadoop;
Hadoop安装教程参考https://dblab.xmu.edu.cn/blog/7/

我们选择将 Hadoop 安装至 /usr/local/ 中:
cd /home/hadoop/a
sudo tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/
sudo mv hadoop-2.7.1/ ./hadoop
sudo chown -R hadoop /hadoop # 修改文件权限
Shell 命令
Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:
cd /usr/local/hadoop
./bin/hadoop version

安装与启动
ssh localhost
cd /usr/local/hadoop
./sbin/start-dfs.sh
大数据期末课程设计实验案例:网站用户行为分析

3.安装MySQL;
详细参考:https://dblab.xmu.edu.cn/blog/1002/
sudo apt-get update #更新软件源
sudo apt-get install mysql-server #安装mysql
启动和关闭mysql服务器:
service mysql start
密码:123
service mysql stop

确认是否启动成功,mysql节点处于LISTEN状态表示启动成功:
sudo netstat -tap | grep mysql
启动:service mysql start
sudo netstat -tap | grep mysql
mysql -u root -p
大数据期末课程设计实验案例:网站用户行为分析

4.安装HBase;
详细参考:https://dblab.xmu.edu.cn/blog/588/

1.1 解压安装包hbase-1.1.2-bin.tar.gz放至路径 /usr/local,命令如下:
cd /home/hadoop/a

sudo tar -zxf hbase-1.1.5-bin.tar.gz -C /usr/local

Shell 命令
1.2 将解压的文件名hbase-1.1.2改为hbase,以方便使用,命令如下:
cd /usr/local

sudo mv /usr/local/ hbase-1.1.5 /usr/local/hbase

1.3 配置环境变量
将hbase下的bin目录添加到path中,这样,启动hbase就无需到/usr/local/hbase目录下,大大的方便了hbase的使用。教程下面的部分还是切换到了/usr/local/hbase目录操作,有助于初学者理解运行过程,熟练之后可以不必切换。
编辑~/.bashrc文件加入如下内容

vi ~/.bashrc

export PATH=$PATH:/usr/local/hbase/bin
保存后退出
再执行source命令使上述配置在当前终端立即生效
source ~/.bashrc

4 添加HBase权限

cd /usr/local
sudo chown -R hadoop ./hbase
#将hbase下的所有文件的所有者改为hadoop,hadoop是当前用户的用户名。
启动测试
cd /usr/local/hbase
bin/start-hbase.sh
大数据期末课程设计实验案例:网站用户行为分析

2.2 伪分布式模式配置
1.配置/usr/local/hbase/conf/hbase-env.sh。命令如下:

vi /usr/local/hbase/conf/hbase-env.sh
Shell 命令
配置JAVA_HOME,HBASE_CLASSPATH,HBASE_MANAGES_ZK.
HBASE_CLASSPATH设置为本机Hadoop安装目录下的conf目录(即/usr/local/hadoop/conf)
vim /usr/local/hadoop/conf
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HBASE_CLASSPATH=/usr/local/hadoop/conf
export HBASE_MANAGES_ZK=true

2.配置/usr/local/hbase/conf/hbase-site.xml
用命令vi打开并编辑hbase-site.xml,命令如下:

vi /usr/local/hbase/conf/hbase-site.xml

hbase.rootdir hdfs://localhost:9000/hbase hbase.cluster.distributed true 接下来测试运行HBase。 第一步:首先登陆ssh,之前设置了无密码登陆,因此这里不需要密码;再切换目录至/usr/local/hadoop ;再启动hadoop,如果已经启动hadoop请跳过此步骤。命令如下: ssh localhost cd /usr/local/hadoop ./sbin/start-dfs.sh 切换目录至/usr/local/hbase;再启动HBase.命令如下: cd /usr/local/hbase bin/start-hbase.sh 进入shell界面: bin/hbase shell 停止HBase运行,命令如下: bin/stop-hbase.sh

5.安装Hive;启动验证
详细过程参考Hive的安装:https://dblab.xmu.edu.cn/blog/1080/
cd /home/hadoop/a

先把软件解压到/usr/local中,再执行如下操作,这里不做演示了,接着如下

cd /usr/local/
sudo mv apache-hive-3.1.2-bin hive # 将文件夹名改为hive
sudo chown -R dblab:dblab hive # 修改文件权限

vim编辑器打开.bashrc文件,命令如下:
vim ~/.bashrc
在该文件最前面一行添加如下内容:
export HIVE_HOME=/usr/local/hive
export PATH= P A T H : PATH: PATH:HIVE_HOME/bin
export HADOOP_HOME=/usr/local/hadoop

HADOOP_HOME需要被配置成你机器上Hadoop的安装路径,比如这里是安装在/usr/local./hadoop目录。
保存退出后,运行如下命令使配置立即生效:
source ~/.bashrc
修改/usr/local/hive/conf下的hive-site.xml
执行如下命令:
cd /usr/local/hive/conf
sudo mv hive-default.xml.template hive-default.xml
使用vim编辑器新建一个配置文件hive-site.xml,命令如下:
cd /usr/local/hive/conf
sudo vim hive-site.xml

在hive-site.xml中添加如下配置信息:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> javax.jdo.option.ConnectionURL jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true JDBC connect string for a JDBC metastore javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver Driver class name for a JDBC metastore javax.jdo.option.ConnectionUserName hive username to use against metastore database javax.jdo.option.ConnectionPassword hive password to use against metastore database 然后,按键盘上的“ESC”键退出vim编辑状态,再输入:wq,保存并退出vim编辑器。

#将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下 解压后
cd /自己软件压缩包的位置
sudo tar -zxvf mysql-connector-java-5.1.40.tar.gz

Sudo cp/home/hadoop/Desktop/mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/hive/lib
大数据期末课程设计实验案例:网站用户行为分析

cd /usr/local/hive/lib

3.启动并登陆mysql
sudo service mysql start #启动mysql服务
mysql -u root -p #登陆shell界面
密码:123

在终端上输入以下命令重启MySQL:

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

service mysql start #启动mysql服务
mysql -u root -p #登陆shell界面

  1. 新建hive数据库。

mysql> create database hive; #这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据
mysql
5. 配置mysql允许hive接入:
先刷新一下权限表。
mysql> flush privileges;
mysql> grant all on . to hive@localhost identified by ‘hive’; #将所有数据库的所有表的所有权限赋给hive用户,后面的hive是配置hive-site.xml中配置的连接密码
mysql> flush privileges; #刷新mysql系统权限关系表
注意!!!
启动hive之前,请先启动hadoop集群。
验证
cd /usr/local/hadoop
./sbin/start-all.sh
cd /usr/local/hive
./bin/hive
大数据期末课程设计实验案例:网站用户行为分析

然后,执行jps命令看一下当前运行的进程:
1.jps
如果出现下面这些进程,说明Hadoop启动成功了。
3765 NodeManager
3639 ResourceManager
3800 Jps
3261 DataNode
3134 NameNode
3471 SecondaryNameNode

6.安装Sqoop;
详细参考Sqoop的安装:https://dblab.xmu.edu.cn/blog/1015/
cd /home/hadoop/a

sudo tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /usr/local #解压安装文件
cd /usr/local
sudo mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop #修改文件名
sudo chown -R hadoop:hadoop sqoop #修改文件夹属主,如果你当前登录用户名不是hadoop,
请修改成你自己的用户名
2. 修改配置文件sqoop-env.sh

cd sqoop/conf/

cat sqoop-env-template.sh >> sqoop-env.sh
#将sqoop-env-template.sh复制一份并命名为sqoop-env.sh
vim sqoop-env.sh
#编辑sqoop-env.sh
export HADOOP_COMMON_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=/usr/local/hadoop
export HBASE_HOME=/usr/local/hbase
export HIVE_HOME=/usr/local/hive

  1. 配置环境变量
    打开当前用户的环境变量配置文件:
    vim ~/.bashrc
    在配置文件第一行键入如下信息:
    export SQOOP_HOME=/usr/local/sqoop
    export PATH= P A T H : PATH: PATH:SBT_HOME/bin: S Q O O P H O M E / b i n e x p o r t C L A S S P A T H = SQOOP_HOME/bin export CLASSPATH= SQOOPHOME/binexportCLASSPATH=CLASSPATH:$SQOOP_HOME/lib
    执行下面命令让配置文件立即生效:
    source ~/.bashrc

将mysql驱动包拷贝到 S Q O O P H O M E / l i b 下 面 要 把 M y S Q L 驱 动 程 序 拷 贝 到 SQOOP_HOME/lib 下面要把MySQL驱动程序拷贝到 SQOOPHOME/libMySQLSQOOP_HOME/lib目录下,首先请在Linux系统的浏览器中请点击mysql驱动包下载地址下载驱动包。下载后,一般文件会被浏览器默认放置在当前用户的下载目录下,本教程采用hadoop用户登录Linux系统,因此,下载文件被默认放置在“/home/hadoop/下载”目录下面。
下面执行命令拷贝文件:
去到软件所在目录
cd /home/hadoop/a
#解压mysql驱动包

sudo tar -zxvf mysql-connector-java-5.1.40.tar.gz
#解压mysql驱动包
ls #这时就可以看到解压缩后得到的目录mysql-connector-java-5.1.40
cp ./mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/sqoop/lib

cd /usr/local/sqoop/lib

测试与MySQL的连接

首先请确保mysql服务已经启动了,如果没有启动,请执行下面命令启动:
service mysql start
密码:123
然后就可以测试sqoop与MySQL之间的连接是否成功:
测试sqoop与MySQL之间的连接是否成功:

sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username root -P
大数据期末课程设计实验案例:网站用户行为分析

7.安装R;(这里有时遇到问题自己都解决不了)Ubuntu 18 版本这里的问题实在没法解决!!
利用vim打开/etc/apt/sources.list文件
1.sudo vim /etc/apt/sources.list
在文件的最后一行添加厦门大学的镜像源:
deb http://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/linux/ubuntu/ trusty/
退出vim,更新软件源列表
1.sudo apt-get update

如果更新软件源出现由于没有公钥,无法验证下列签名的错误,请执行如下命令: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
安装R语言
1.sudo apt-get install r-base
Shell 命令
会提示“您希望继续执行吗?[Y/n]”,可以直接键盘输入“Y”,就可以顺利安装结束。
安装结束后,可以执行下面命令启动R:
1.R
启动后,会显示如下信息,并进入“>”命令提示符状态:
R version 3.3.2 (2016-10-31) – “Sincere Pumpkin Patch”
Copyright © 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R是自由软件,不带任何担保。
在某些条件下你可以将其自由散布。
用’license()'或’licence()'来看散布的详细条件。

R是个合作计划,有许多人为之做出了贡献.
用’contributors()'来看合作者的详细情况
用’citation()'会告诉你如何在出版物中正确地引用R或R程序包。

用’demo()'来看一些示范程序,用’help()'来阅读在线帮助文件,或
用’help.start()'通过HTML浏览器来看帮助文件。
用’q()'退出R.
“>”就是R的命令提示符,你可以在后面输入R语言命令。
可以执行下面命令退出R:
1.>q()
大数据期末课程设计实验案例:网站用户行为分析

  1. 安装Eclipse

大数据期末课程设计实验案例:网站用户行为分析

本地数据集上传到数据仓库Hive
user.zip下载地址:https://pan.baidu.com/s/1nuOSo7B

首先建立一个用于运行本案例的目录bigdatacase
如果你把user.zip下载到了其他目录,这里请进入到你自己的存放user.zip的目录。
下面需要把user.zip进行解压缩,我们需要首先建立一个用于运行本案例的目录bigdatacase
请执行以下命令:user.zip注意自己的文件目录
1.cd /usr/local
2.ls
3.sudo mkdir bigdatacase
4.//这里会提示你输入当前用户(本教程是hadoop用户名)的密码

5.//下面给hadoop用户赋予针对bigdatacase目录的各种操作权限
6.sudo chown -R hadoop:hadoop ./bigdatacase
7.cd bigdatacase
8.//下面创建一个dataset目录,用于保存数据集
9.mkdir dataset
10.//下面就可以解压缩user.zip文件
11.cd ~ //表示进入hadoop用户的目录
12.cd 下载
13.ls
14.unzip user.zip -d /usr/local/bigdatacase/dataset
15.cd /usr/local/bigdatacase/dataset
16.ls
大数据期末课程设计实验案例:网站用户行为分析

raw_user.csv和small_user.csv。
我们执行下面命令取出前面5条记录看一下:
head -5 raw_user.csv

大数据期末课程设计实验案例:网站用户行为分析

数据集的预处理详细参考:https://dblab.xmu.edu.cn/blog/959/

1.删除文件第一行记录,即字段名称
raw_user和small_user中的第一行都是字段名称,我们在文件中的数据导入到数据仓库Hive中时,不需要第一行字段名称,因此,这里在做数据预处理时,删除第一行
cd /usr/local/bigdatacase/dataset
//下面删除raw_user中的第1行
sed -i ‘1d’ raw_user //1d表示删除第1行,同理,3d表示删除第3行,nd表示删除第n行
//下面删除small_user中的第1行
sed -i ‘1d’ small_user
//下面再用head命令去查看文件的前5行记录,就看不到字段名称这一行了
head -5 raw_user.csv
可以看出,每行记录都包含5个字段,数据集中的字段及其含义如下:
大数据期末课程设计实验案例:网站用户行为分析

user_id(用户id)
item_id(商品id)
behaviour_type(包括浏览、收藏、加购物车、购买,对应取值分别是1、2、3、4)
user_geohash(用户地理位置哈希值,有些记录中没有这个字段值,所以后面我们会用脚本做数据预处理时把这个字段全部删除)
item_category(商品分类)
time(该记录产生时间)

2.对字段进行预处理

下面对数据集进行一些预处理,包括为每行记录增加一个id字段(让记录具有唯一性)、增加一个省份字段(用来后续进行可视化分析),并且丢弃user_geohash字段(后面分析不需要这个字段)。
下面我们要建一个脚本文件pre_deal.sh,请把这个脚本文件放在dataset目录下,和数据集small_user.csv放在同一个目录下:
cd /usr/local/bigdatacase/dataset
vim pre_deal.sh
上面使用vim编辑器新建了一个pre_deal.sh脚本文件,请在这个脚本文件中加入下面代码:
(Word文档导致部分代码可能出错参考https://dblab.xmu.edu.cn/blog/959/

#!/bin/bash
#下面设置输入文件,把用户执行pre_deal.sh命令时提供的第一个参数作为输入文件名称
infile=$1
#下面设置输出文件,把用户执行pre_deal.sh命令时提供的第二个参数作为输出文件名称
outfile=KaTeX parse error: Expected 'EOF', got '#' at position 3: 2 #̲注意!!最后的infile > $outfile必须跟在}’这两个字符的后面
awk -F “,” ‘BEGIN{
srand();
id=0;
Province[0]=“山东”;Province[1]=“山西”;Province[2]=“河南”;Province[3]=“河北”;Province[4]=“陕西”;Province[5]=“内蒙古”;Province[6]=“上海市”;
Province[7]=“北京市”;Province[8]=“重庆市”;Province[9]=“天津市”;Province[10]=“福建”;Province[11]=“广东”;Province[12]=“广西”;Province[13]=“云南”;
Province[14]=“浙江”;Province[15]=“贵州”;Province[16]=“新疆”;Province[17]=“西藏”;Province[18]=“江西”;Province[19]=“湖南”;Province[20]=“湖北”;
Province[21]=“黑龙江”;Province[22]=“吉林”;Province[23]=“辽宁”; Province[24]=“江苏”;Province[25]=“甘肃”;Province[26]=“青海”;Province[27]=“四川”;
Province[28]=“安徽”; Province[29]=“宁夏”;Province[30]=“海南”;Province[31]=“香港”;Province[32]=“澳门”;Province[33]=“台湾”;
}
{
id=id+1;
value=int(rand()*34);
print id"\t"$1"\t"$2"\t"$3"\t"$5"\t"substr($6,1,10)"\t"Province[value]
}’ $infile > $outfile
输入后查看
大数据期末课程设计实验案例:网站用户行为分析

上面的代码的基本形式是:
awk -F “,” ‘处理逻辑’ $infile > $outfile
使用awk可以逐行读取输入文件,并对逐行进行相应操作。

下面就可以执行pre_deal.sh脚本文件,来对small_user.csv进行数据预处理,命令如下:
cd /usr/local/bigdatacase/dataset
bash ./pre_deal.sh small_user.csv user_table.txt
可以使用head命令查看生成的user_table.txt,不要直接打开,文件过大,会出错,下面查看前10行数据:

head -10 user_table.txt
大数据期末课程设计实验案例:网站用户行为分析

a.启动HDFS

请登录Linux系统,打开一个终端,执行下面命令启动Hadoop:

cd /usr/local/hadoop
./sbin/start-all.sh
Shell 命令
然后,执行jps命令看一下当前运行的进程:

jps
如果出现下面这些进程,说明Hadoop启动成功了。

3765 NodeManager
3639 ResourceManager
3800 Jps
3261 DataNode
3134 NameNode
3471 SecondaryNameNode

b.把user_table.txt上传到HDFS中
现在,我们要把Linux本地文件系统中的user_table.txt上传到分布式文件系统HDFS中,存放在HDFS中的“/bigdatacase/dataset”目录下。
首先,请执行下面命令,在HDFS的根目录下面创建一个新的目录bigdatacase,并在这个目录下创建一个子目录dataset,如下:

cd /usr/local/hadoop
./bin/hdfs dfs -mkdir -p /bigdatacase/dataset
然后,把Linux本地文件系统中的user_table.txt上传到分布式文件系统HDFS的“/bigdatacase/dataset”目录下,命令如下:

cd /usr/local/hadoop
./bin/hdfs dfs -put /usr/local/bigdatacase/dataset/user_table.txt /bigdatacase/dataset
下面可以查看一下HDFS中的user_table.txt的前10条记录,命令如下:

cd /usr/local/hadoop
./bin/hdfs dfs -cat /bigdatacase/dataset/user_table.txt | head -10

大数据期末课程设计实验案例:网站用户行为分析

c.在Hive上创建数据库
下面,请在Linux系统中,再新建一个终端(可以在刚才已经建好的终端界面的左上角,点击“终端”菜单,在弹出的子菜单中选择“新建终端”)。因为需要借助于MySQL保存Hive的元数据,所以,请首先启动MySQL数据库:
启动MySQL
service mysql start //可以在Linux的任何目录下执行该命令

由于Hive是基于Hadoop的数据仓库,使用HiveQL语言撰写的查询语句,最终都会被Hive自动解析成MapReduce任务由Hadoop去具体执行,因此,需要启动Hadoop,然后再启动Hive。由于前面我们已经启动了Hadoop,所以,这里不需要再次启动Hadoop。下面,在这个新的终端中执行下面命令进入Hive:
启动Hive

cd /usr/local/hive
./bin/hive
大数据期末课程设计实验案例:网站用户行为分析

启动成功以后,就进入了“hive>”命令提示符状态,可以输入类似SQL语句的HiveQL语句。
hive> create database dblab;
hive> use dblab;
hive
d.创建外部表
关于数据仓库Hive的内部表和外部表的区别,请访问网络文章《Hive内部表与外部表的区别》。本教程采用外部表方式。
这里我们要在数据库dblab中创建一个外部表bigdata_user,它包含字段(id, uid, item_id, behavior_type, item_category, date, province),请在hive命令提示符下输入如下命令:

hive> CREATE EXTERNAL TABLE dblab.bigdata_user(id INT,uid STRING,item_id STRING,behavior_type INT,item_category STRING,visit_date DATE,province STRING) COMMENT ‘Welcome to xmu dblab!’ ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’ STORED AS TEXTFILE LOCATION ‘/bigdatacase/dataset’;
hive
对于这条语句中LOCATION参数的含义如果有疑问,可以阅读博客《关于数据仓库Hive建表时的LOCATION参数问题》。
e.查询数据
上面已经成功把HDFS中的“/bigdatacase/dataset”目录下的数据加载到了数据仓库Hive中,我们现在可以使用下面命令查询一下:
hive> select * from bigdata_user limit 10;
大数据期末课程设计实验案例:网站用户行为分析

hive> select behavior_type from bigdata_user limit 10;
大数据期末课程设计实验案例:网站用户行为分析

Hive数据分析参考:https://dblab.xmu.edu.cn/blog/1005/
操作Hive
请登录Linux系统(本教程统一采用hadoop用户名登录系统),然后,打开一个终端(可以按快捷键Ctrl+Alt+T)。
本教程中,Hadoop的安装目录是“/usr/local/hadoop”,Hive的安装目录是“/usr/local/hive”。
因为需要借助于MySQL保存Hive的元数据,所以,请首先启动MySQL数据库,请在终端中输入下面命令:

service mysql start //可以在Linux的任何目录下执行该命令

请执行下面命令启动Hadoop(如果你已经启动了Hadoop就不用再次启动了):

cd /usr/local/hadoop
./sbin/start-all.sh
执行jps命令看一下当前运行的进程:
jps
继续执行下面命令启动进入Hive:

cd /usr/local/hive
./bin/hive //启动Hive
在“hive>”命令提示符状态下执行下面命令:

hive> use dblab; //使用dblab数据库
hive> show tables; //显示数据库中所有表。
hive> show create table bigdata_user; //查看bigdata_user表的各种属性;

执行部分结果如下:
大数据期末课程设计实验案例:网站用户行为分析

可以执行下面命令查看表的简单结构:

hive> desc bigdata_user;
执行部分结果如下:
大数据期末课程设计实验案例:网站用户行为分析

二、简单查询分析
先测试一下简单的指令:
hive> select behavior_type from bigdata_user limit 10;//查看前10位用户对商品的行为
执行部分结果如下:
大数据期末课程设计实验案例:网站用户行为分析

三、查询条数统计分析
(1)用聚合函数count()计算出表内有多少条行数据
hive> select count(*) from bigdata_user;//用聚合函数count()计算出表内有多少条行数据
执行结果部分如下:
大数据期末课程设计实验案例:网站用户行为分析

可视化分析MySQL中的数据
(按步骤操作,这里要先快照备份,有可能会出错自己解决不了,否则前功尽弃)
安装依赖库
为了完成可视化功能,我们需要为R安装一些依赖库,包括:RMySQL、ggplot2、devtools和recharts。
RMySQL是一个提供了访问MySQL数据库的R语言接口程序的R语言依赖库。
ggplot2和recharts则是R语言中提供绘图可视化功能的依赖库。
请启动R进入R命令提示符状态,执行如下命令安装RMySQL:
1.> install.packages(‘RMySQL’)
R
上面命令执行后, 屏幕会提示"Would you like to user a personal library instead?(y/n)"等问题,只要遇到提问,都在键盘输入y后回车即可。然后,屏幕会显示“—在此连线阶段时请选用CRAN的镜子—”,并会弹出一个白色背景的竖条形窗口,窗口标题是“HTTPS CRAN mirros”,标题下面列出了很多国家的镜像列表,我们可以选择位于China的镜像,比如,选择“China(Beijing)[https]”,然后点击“ok”按钮,就开始安装了。安装过程需要几分钟(当然,也和当前网络速度有关系)。
由于不同用户的Ubuntu开发环境不一样,安装有很大可能因为缺少组件导致失败,如果出现如下错误信息:
Configuration failed because libmysqlclient was not found. Try installing:

  • deb: libmariadb-client-lgpl-dev (Debian, Ubuntu 16.04)
    libmariadbclient-dev (Ubuntu 14.04)
  • rpm: mariadb-devel | mysql-devel (Fedora, CentOS, RHEL)
  • csw: mysql56_dev (Solaris)
  • brew: mariadb-connector-c (OSX)

    ERROR: configuration failed for package ‘RMySQL’
  • removing ‘/home/hadoop/R/x86_64-pc-linux-gnu-library/3.3/RMySQL’

下载的程序包在‘/tmp/RtmpvEArxz/downloaded_packages’里
Warning message:
In install.packages(“RMySQL”) : 安装程序包‘RMySQL’时退出狀態的值不是0
只要根据错误给出的错误信息,进行操作即可。q()退出R命令提示符状态,回到Shell状态,笔者的系统是Ubuntu 16.04,那么,根据上面的英文错误信息,就需要在Shell命令提示符状态下执行下面命令安装libmariadb-client-lgpl-dev:
1.sudo apt-get install libmariadb-client-lgpl-dev
然后,再次输入下面命令进入R命令提示符状态:
1.R
启动后,并进入“>”命令提示符状态。然后,执行如下命令安装绘图包ggplot2,如果还出现缺少组件的错误,请按照上面的解决方案解决!
1.> install.packages(‘ggplot2’)
R
然后,屏幕会显示“—在此连线阶段时请选用CRAN的镜子—”,并会弹出一个白色背景的竖条形窗口,窗口标题是“HTTPS CRAN mirros”,标题下面列出了很多国家的镜像列表,我们可以选择位于China的镜像,比如,选择“China(Beijing)[https]”,然后点击“ok”按钮,就开始安装了。这个命令运行后,大概需要安装10分钟时间(当然,也和当前网络速度有关系)。
下面继续运行下面命令安装devtools:
1.> install.packages(‘devtools’)
R
如果在上面安装devtools的过程中,又出现了错误,处理方法很简单,还是按照上面介绍的方法,根据屏幕上给出的英文错误信息,缺少什么软件,就用sudo apt-get install命令安装该软件就可以了。笔者在Ubuntu16.04上执行devtools安装时,出现了三次错误,笔者根据每次错误的英文提示信息,安装了三个软件libssl-dev、libssh2-1-dev、libcurl4-openssl-dev,安装命令如下:
1.sudo apt-get install libssl-dev
2.sudo apt-get install libssh2-1-dev
3.sudo apt-get install libcurl4-openssl-dev
Shell 命令
读者在安装过程中,可能会出现不同的错误,按照同样的处理方法可以顺利解决。
下面在R命令提示符下再执行如下命令安装taiyun/recharts:
1.> devtools::install_github(‘taiyun/recharts’)

结果测试与效果演示步骤
ssh localhost
cd /usr/local/hadoop
./sbin/start-dfs.sh
大数据期末课程设计实验案例:网站用户行为分析

MySQL
service mysql start
sudo netstat -tap | grep mysql
mysql -u root -p
密码:123
大数据期末课程设计实验案例:网站用户行为分析

cd /usr/local/hadoop
./sbin/start-dfs.sh

大数据期末课程设计实验案例:网站用户行为分析

cd /usr/local/hive
./bin/hive
大数据期末课程设计实验案例:网站用户行为分析

jps
大数据期末课程设计实验案例:网站用户行为分析

输入 R
接着输入如下
大数据期末课程设计实验案例:网站用户行为分析

接着输入
大数据期末课程设计实验案例:网站用户行为分析

summary(user_action b e h a v i o r t y p e ) s u m m a r y ( a s . n u m e r i c ( u s e r a c t i o n behavior_type) summary(as.numeric(user_action behaviortype)summary(as.numeric(useractionbehavior_type))
library(ggplot2)
ggplot(user_action,aes(as.numeric(behavior_type)))+geom_histogram()
大数据期末课程设计实验案例:网站用户行为分析

结果展示

大数据期末课程设计实验案例:网站用户行为分析

temp <- subset(user_action,as.numeric(behavior_type)==4) # 获取子数据集
count <- sort(table(temp$item_category),decreasing = T) #排序
print(count[1:10]) # 获取第1到10个排序结果
result <- as.data.frame(count[1:10]) #将count矩阵结果转换成数据框
ggplot(result,aes(Var1,Freq,col=factor(Var1)))+geom_point()
大数据期末课程设计实验案例:网站用户行为分析

month <- substr(user_action$visit_date,6,7) # visit_date变量中截取月份
user_action <- cbind(user_action,month) # user_action增加一列月份数据
ggplot(user_action,aes(as.numeric(behavior_type),col=factor(month)))+geom_histogram()+facet_grid(.~month)
大数据期末课程设计实验案例:网站用户行为分析

library(recharts)
rel <- as.data.frame(table(temp p r o v i n c e ) ) p r o v i n c e s < − r e l province)) provinces <- rel province))provinces<relVar1
x = c()
for(n in provinces){
x[length(x)+1] = nrow(subset(temp,(province==n)))
}
mapData <- data.frame(province=rel$Var1,
count=x, stringsAsFactors=F) # 设置地图信息
eMap(mapData, namevar=~province, datavar = ~count) #画出中国地图
大数据期末课程设计实验案例:网站用户行为分析

验收效果展示与说明

大数据期末课程设计实验案例:网站用户行为分析

大数据期末课程设计实验案例:网站用户行为分析
大数据期末课程设计实验案例:网站用户行为分析

大数据期末课程设计实验案例:网站用户行为分析

大数据期末课程设计实验案例:网站用户行为分析

测试演示命令汇总如下
大数据期末课程设计实验案例:网站用户行为分析

大数据期末课程设计实验案例:网站用户行为分析

以上是关键步骤汇总 参考:https://dblab.xmu.edu.cn/

Ubuntu 16.04 Linux空白模板(只含大数据软件在桌面,可以在VM虚拟机导入使用)
这个空白Linux虚拟机模板,在VM导入即可使用可以在此模板,
自己可以在这个空白Linux虚拟机模板从头开始搭建大数据课程实验案例:网站用户行为分析。
重磅:大数据课程实验案例:网站用户行为分析(免费共享)链接如下:
https://dblab.xmu.edu.cn/

空白Linux虚拟机模板(只含大数据压缩软件包)

大数据期末课程设计实验案例:网站用户行为分析

下载好就到导入空白Linux虚拟机模板
大数据期末课程设计实验案例:网站用户行为分析

找到下载好模板的路径选择如下文件打开

大数据期末课程设计实验案例:网站用户行为分析

大数据期末课程设计实验案例:网站用户行为分析

重命名Ubuntu16.04 qjp
大数据期末课程设计实验案例:网站用户行为分析

导入完成如下
大数据期末课程设计实验案例:网站用户行为分析

开机之后如下
大数据期末课程设计实验案例:网站用户行为分析

有需要Linux空白模板请告知
完整实验环境对外不提供,仅供个人学习使用。文章来源地址https://www.toymoban.com/news/detail-449486.html

到了这里,关于大数据期末课程设计实验案例:网站用户行为分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web网页设计期末课程大作业 HTML+CSS+JavaScript 美食餐饮文化主题网站设计 学生DW静态网页设计

    🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (1000套) 】 🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作

    2024年02月08日
    浏览(52)
  • web前端网页设计期末课程大作业:旅游网页主题网站设计——三亚旅游网页设计(6个页面) HTML+CSS+JavaScript

    👨‍🎓学生HTML静态网页基础水平制作👩‍🎓,页面排版干净简洁。使用HTML+CSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容丰富,主题鲜明,非常适合初学者学习使用, 这个实例比较全面,有助于同学的学习,本文将

    2024年02月03日
    浏览(48)
  • 基于Spark的电商用户行为分析系统的设计与实现

    项目架构 Flume–Kafka–Spark Streaming–Mysql–FineReport 10 数据可视化使用第三方软件FineReport支持 1. 数据采集:利用Java线程模拟行为数据写入被监控的文件 模拟电商网站用户行为数据(也可与阿里云天池开源数据集:真实的淘宝或天猫用户行为数据) flume实时监控数据文件,并将

    2024年02月04日
    浏览(28)
  • 基于Spark+Springboot的电商用户行为分析系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作 ✌ 主要内容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P

    2024年01月17日
    浏览(40)
  • Java设计模式之行为型-命令模式(UML类图+案例分析)

    目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 4.1、基本实现 4.2、点餐案例  五、总结 1、将一个请求封装为一个对象,使您可以用不同的请求对客户进行参数化。 2、对请求排队或记录请求日志,以及支持可撤销的操作。 3、将命令对象与执行命令的对象分离,

    2024年02月16日
    浏览(26)
  • Java设计模式之行为型-状态模式(UML类图+案例分析)

    目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 五、总结 状态模式允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类,状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不

    2024年02月16日
    浏览(29)
  • 数仓用户行为数据分析

    分层优点:复杂的东西可以简单化、解耦(屏蔽层作用)、提高复用、方便管理 SA 贴源  数据组织结构与源系统保持一致 shm 历史层  针对不同特征的数据做不同算法,目的都是为了得到一份完整的数据 PDM 明细层 做最细粒度的数据明细,最高扩展性和灵活性,企业级的数据

    2024年02月08日
    浏览(30)
  • Java设计模式之行为型-责任链模式(UML类图+案例分析)

    目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 4.1、在Java中实现 4.2、在SpringBoot中实现  五、总结  责任链模式是一种行为设计模式,它允许你将请求沿着处理者链进行发送。请求会被链上每个处理者处理,直到请求被处理完毕。该模式主要解决的是请求的发送者和

    2024年02月15日
    浏览(27)
  • Java设计模式之行为型-迭代器模式(UML类图+案例分析)

    目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 五、总结 迭代器模式是一种常用的设计模式,它主要用于遍历集合对象,提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。 举个简单的比喻,聚合对象像一个存放苹果的篮子,迭代

    2024年02月16日
    浏览(29)
  • 大数据毕设项目 - 大数据电商用户行为分析 -python 大数据

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年03月17日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包