嘉明的云计算与大数据学习之大数据综合实验案例

这篇具有很好参考价值的文章主要介绍了嘉明的云计算与大数据学习之大数据综合实验案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.实验环境

(1)Linux:Ubuntu 16.04。
虚拟机镜像下载链接:https://pan.baidu.com/s/1i_B-2rAfPM53jf7Besi0tw
提取码:WZJM

(2)MySQL:5.7.16。
(3)Hadoop:2.7.1。
(4)HBase:1.1.5。
(5)Hive:1.2.1。
(6)Sqoop:1.4.6。
(7)R:4.1.2。
(8)Eclipse:3.8。

2.实验步骤概述

本案例共包含4个实验步骤。
(1)本地数据集上传到数据仓库Hive。
(2)Hive数据分析。
(3)Hive,MySQL、HBase数据互导。
(4)利用R进行数据可视化分析。

实验整体的流程如下:
将数据源抽取到HDFS存储;
通过Hive清洗、处理和计算原始数据;
HIve清洗处理后的结果,可以存入Hbase或者其它数据库中例如MySQL
嘉明的云计算与大数据学习之大数据综合实验案例

2.1.本地数据集上传到数据仓库Hive

数据集的下载链接
链接:https://pan.baidu.com/s/1wsHq9BlbNb-291UWnDduJg
提取码:WZJM

登录Linux系统,并在Linux系统中打开浏览器火狐浏览器;然后在Linux系统的浏览器中下载user. zip到本地。,因为采用的是hadoop用户名登录了Linux系统,所以,下载后的文件会被浏览器默认保存到“/home/ hadoop/下载/”目录下面。
嘉明的云计算与大数据学习之大数据综合实验案例

打开终端输入如下命令:

cd home/hadoop/下载
Ls

嘉明的云计算与大数据学习之大数据综合实验案例
出现uer.zip后证明下载成功

下面需要把user. zip进行解压缩,首先建立一个用于运行的目录bigdatacase,执行以下命令:

cd /usr/local
ls
sudo mkdir bigdatacase#这里会提示你输入当前用户(本教程是hadoop用户名)的密码#下面给hadoop用户赋予针对bigdatacase目录的各种操作权限
sudo chown -R hadoop:hadoop ./bigdatacasecd bigdatacase#下面创建一个dataset目录,用于保存数据集
mkdir dataset#下面就可以解压缩user.zip文件cd ~  //表示进入hadoop用户的目录cd 下载
ls
unzip user.zip -d /usr/local/bigdatacase/datasetcd /usr/local/bigdatacase/dataset
ls

嘉明的云计算与大数据学习之大数据综合实验案例

现在就可以看到在 dataset目录下有两个文件:raw_user,csv和 small_user.csv。执行下面命令取出前面5条记录看一下:

head -5 raw_user.csv

嘉明的云计算与大数据学习之大数据综合实验案例

可以看出,每行记录都包含5个字段,数据集中的字段及其含义如下。
(1) user_id(用户id)。
(2) item_id(商品id)。
(3) behaviour_type(包括浏览﹑收藏,加购物车、购买,对应取值分别是1、2、3、4)。
(4) user_geohash(用户地理位置哈希值,有些记录中没有这个字段值,所以后面会用脚本做数据预处理时把这个字段全部删除)。
(5) item_category(商品分类)。
(6) time(该记录产生时间)。

2.2.Hive数据分析

2.2.1.数据集的预处理

2.2.1.1.删除第一行文件的记录
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
head -5 small_user.csv

嘉明的云计算与大数据学习之大数据综合实验案例

2.2.1.2.对字段进行预处理

下面对数据集进行预处理,包括为每行记录增加一个id字段(让记录具有唯一性)、增加一个省份字段(用来后续进行可视化分析),并且丢弃user_geohash字段(后面分析不需要这个字段)。

下面要建一个脚本文件 pre_deal.sh,把这个脚本文件放在 dataset目录下﹐和数据集small_user.csv放在同一个目录下:

cd /usr/local/bigdatacase/dataset
vim pre_deal.sh

嘉明的云计算与大数据学习之大数据综合实验案例

上面使用vim编辑器新建了一个pre_deal.sh脚本文件,在这个脚本文件下加入下面代码:

#!/bin/bash#下面设置输入文件,把用户执行pre_deal.sh命令时提供的第一个参数作为输入文件名称
infile=$1#下面设置输出文件,把用户执行pre_deal.sh命令时提供的第二个参数作为输出文件名称
outfile=$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

嘉明的云计算与大数据学习之大数据综合实验案例

执行pre_deal.sh脚本文件,对small_user.csv进行数据预处理,命令如下:

cd /usr/local/bigdatacase/dataset
bash ./pre_deal.sh small_user.csv user_table.txt

嘉明的云计算与大数据学习之大数据综合实验案例

可以查看生成的user_table.txt,但是,不要直接打开。因为文件过大,直接打开会出错,可以使用head命令查看前10行数据:

head -10 user_table.txt

执行上面命令以后,可以得到如下结果:
嘉明的云计算与大数据学习之大数据综合实验案例

2.2.2.导入数据库

下面把user_table.txt中的数据导入到数据仓库 Hive中。为了完成这个操作,首先需要把user_table.txt 上传到分布式文件系统HDFS中;然后在Hive中创建一个外部表,完成数据的导入。

2.2.2.1.启动HDFS

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

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

嘉明的云计算与大数据学习之大数据综合实验案例

查看当前运行的进程
jps
嘉明的云计算与大数据学习之大数据综合实验案例

2.2.2.2.把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 ./bin/hdfs dfs –mkdir -ls /bigdatacase

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

然后把Linux本地文件系统的user_table.txt上传到分布式文件系统HDFS的/bigdatacase/dataset目录下:

./bin/hdfs dfs -put /usr/local/bigdatacase/dataset/user_table.txt /bigdatacase/dataset

嘉明的云计算与大数据学习之大数据综合实验案例

查看HDFS中user_table.txt的前10条记录,命令如下:

./bin/hdfs dfs-cat /bigdatacase/dataset/user_table.txt | head -10

嘉明的云计算与大数据学习之大数据综合实验案例

2.2.3.在Hive下创建数据库

下面在Linux系统中再新建一个终端(可以在刚才已经建好的终端界面的左上角,单击“终端”菜单,在弹出的子菜单中选择“新建终端”)。因为需要借助于MySQL保存 Hive的元数据﹐所以,先启动MySQL数据库,可以在终端中输人如下命令:

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

嘉明的云计算与大数据学习之大数据综合实验案例

进入Hive,命令如下:

cd /usr/local/hive
./bin/hive   #启动Hive

嘉明的云计算与大数据学习之大数据综合实验案例

启动成功后,就进入了hive>命令提示符状态。在Hive中创建一个数据库dblab,命令如下:

hive> create database dblab;
hive> use dblab;

嘉明的云计算与大数据学习之大数据综合实验案例

2.2.3.1.创建外部表

在数据库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 xmudblab!' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE LOCATION '/bigdatacase/dataset';

嘉明的云计算与大数据学习之大数据综合实验案例

2.2.3.2.查询数据

上面已经成功把 HDFS中的/bigdatacase/dataset目录下的数据加载到了数据仓库Hive 中;然后在hive>命令提示符状态下执行下面命令查看表的信息:

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

嘉明的云计算与大数据学习之大数据综合实验案例

查看表的简单结构:

hive> desc bigdata_user;

嘉明的云计算与大数据学习之大数据综合实验案例

查询相关数据:

hive> select * from bigdata_user limit 10;
hive> select behavior_type from bigdata_user limit 10;

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

2.2.4.Hive进行数据分析

查看前10位用户对商品的行为:

hive> select behavior_type from bigdata_user limit 10; #查看前10位用户对商品的行为

嘉明的云计算与大数据学习之大数据综合实验案例

查询前20位用户购买商品的时间和商品的种类:

hive> select visit_date, item_category from bigdata_user limit 20;

嘉明的云计算与大数据学习之大数据综合实验案例

有时在表中查询可以利用嵌套语句,如果列名太复杂可以设置该列的别名,以简化操作的难度,举例如下:

hive> select e.bh, e.it from (select behavior_type as bh, item_category as it from bigdata_user) as e  limit 20;

上面语句中,“behavior_type as bh,item_category as it”是为behavior_type设置别名bh,为 item_category设置别名it,FROM的括号里的内容,也设置了别名e,这样调用时就可以使用e.bh和e.it,可以简化代码。
嘉明的云计算与大数据学习之大数据综合实验案例

2.2.4.1.查询条数统计分析

用聚合函数 count()计算出表内有多少行数据:

hive> select count(*) from bigdata_user;

嘉明的云计算与大数据学习之大数据综合实验案例

在函数内部加上distinct,查出uid不重复的数据有多少条:

hive> select count(distinct uid) from bigdata_user;

嘉明的云计算与大数据学习之大数据综合实验案例

查询不重复的数据有多少条(排除客户刷单情况):

hive>select count(*) from (select uid,item_id,behavior_type,item_category,visit_date,province from bigdata_user groupby uid,item_id,behavior_type,item_category,visit_date,province having count(*)=1)a;

嘉明的云计算与大数据学习之大数据综合实验案例

2.2.4.2.关键字条件查询分析

以关键字的存在区间为条件的查询
查询2014年12月10日到2014年12月13日有多少人浏览了商品。:

hive> select count(*) from bigdata_user where behavior_type='1' and visit_date<'2014-12-13' and visit_date>'2014-12-10';

嘉明的云计算与大数据学习之大数据综合实验案例

以月的第n天为统计单位,依次显示第n天网站卖出去的商品的个数:

hive> select count(distinct uid), day(visit_date) from bigdata_user where behavior_type='4' group by day(visit_date);

嘉明的云计算与大数据学习之大数据综合实验案例

关键字赋予定值为条件,对其他数据进行分析
取给定时间和给定地点,求当天发出到该地点的货物的数量:

hive> select count(*) from bigdata_user where province='江西' and visit_date='2014-12-12' and behavior_type='4';

嘉明的云计算与大数据学习之大数据综合实验案例

2.2.4.3.根据用户行为分析

查询一件商品在某天的购买比例或者浏览比例:

hive> select count(*) from bigdata_user where visit_date='2014-12-11'and behavior_type='4';#查询有多少用户在2014-12-11购

嘉明的云计算与大数据学习之大数据综合实验案例

hive> select count(*) from bigdata_user where visit_date ='2014-12-11';#查询有多少用户在2014-12-11点击了该店

嘉明的云计算与大数据学习之大数据综合实验案例

查询某个用户在某一天点击网站占改天所有点击行为的比例:

hive> select count(*) from bigdata_user where uid=10001082 and visit_date='2014-12-12';#查询用户10001082在2014-12-12点击网站的次数

嘉明的云计算与大数据学习之大数据综合实验案例

hive> select count(*) from bigdata_user where visit_date='2014-12-12';#查询所有用户在这一天点击该网站的次数

嘉明的云计算与大数据学习之大数据综合实验案例

给定购买商品的数量范围,查询某一天在该网站的购买该数量商品的用户id:

hive> select uid from bigdata_user where behavior_type='4' and visit_date='2014-12-12' group by uid having count(behavior_type='4')>5;#查询某一天在该网站购买商品超过5次的用户id

嘉明的云计算与大数据学习之大数据综合实验案例

2.2.4.4.用户实时查询分析

查询某个地区的用户当天浏览网站的次数,语句如下:

hive> create table scan(province STRING,scan INT) COMMENT 'This is the search of bigdataday' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;#创建新的数据表进行存储
hive> insert overwrite table scan select province,count(behavior_type) from bigdata_user where behavior_type='1' group by province;#导入数据
hive> select * from scan;#显示结果

嘉明的云计算与大数据学习之大数据综合实验案例

2.3.Hive,MySQL,HBase数据互导

2.3.1.Hive预操作

2.3.1.1.创建临时表user_action
进入Hive与hadoop,命令如下:
cd /usr/local/hadoop
./sbin/start-all.sh #启动Hadoop
cd /usr/local/hive
./bin/hive   #启动Hive

嘉明的云计算与大数据学习之大数据综合实验案例

命令如下:

hive> create table dblab.user_action(id STRING,uid STRING, item_id STRING, behavior_type STRING, item_category STRING, visit_date DATE, province STRING) COMMENT 'Welcome to XMU dblab! ' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;

嘉明的云计算与大数据学习之大数据综合实验案例

确认这个数据文件在HDFS中确实已经被创建

cd /usr/local/hadoop
./bin/hdfs dfs -ls /user/hive/warehouse/dblab.db/user_action

嘉明的云计算与大数据学习之大数据综合实验案例

2.3.1.2.将bigdata_user表中的数据插入到user_action

1.将bigdata_user表中的数据插入到user_action命令如下:

hive> INSERT OVERWRITE TABLE dblab.user_action select * from dblab.bigdata_user;

嘉明的云计算与大数据学习之大数据综合实验案例

2.查询上面的插入命令是否成功

hive> select * from user_action limit 10;

嘉明的云计算与大数据学习之大数据综合实验案例

2.3.2.使用Sqoop将数据从Hive导入MySQL

2.3.2.1.安装sqoop

1.访问Sqoop官网(http:// sqoop.apache. org/),下载Sqoop安装文件sqoop-1.4.6.bin_hadoop-2.0.4-alpha.tar. Gz,sqoop-1.4.6.bin_hadoop-2.0.4-alpha.tar. gz文件会被保存到“/home/hadoop/下载/”目录下。
嘉明的云计算与大数据学习之大数据综合实验案例

2.执行如下命令,完成安装文件解压缩:

cd ~/下载
sudo tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /usr/local

嘉明的云计算与大数据学习之大数据综合实验案例

3.将解压的文件的名称修改为sqoop,以简化操作,不用每次都输入很长的文件名,命令如下:

cd /usr/local
sudo mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop

嘉明的云计算与大数据学习之大数据综合实验案例

4.接下来把sqoop文件夹的权限赋予当前的hadoop用户,命令如下:

sudo chown -R hadoop:hadoop sqoop

嘉明的云计算与大数据学习之大数据综合实验案例

修改配置文件
1.执行如下命令把/usr/local/sqoop/conf目录下的配置文件 sqoop-env-template.sh 复制一份,并命名为sqoop-env.sh

cd sqoop/conf/
cat sqoop-env-template.sh >> sqoop-env.sh

嘉明的云计算与大数据学习之大数据综合实验案例

2.使用vim 编辑器打开sqoop-env.sh文件进行编辑:

cd /usr/local/sqoop/conf/
vim sqoop-env.sh

嘉明的云计算与大数据学习之大数据综合实验案例

3.在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
#export ZOOCFGDIR= #如果读者配置了ZooKeeper,也需要在此配置ZooKeeper的路径

嘉明的云计算与大数据学习之大数据综合实验案例

配置环境变量
1.使用vim编辑器打开~/.bashrc文件,命令如下:

vim ~/.bashrc

嘉明的云计算与大数据学习之大数据综合实验案例

2.在该文件开头加入如下代码:

export SQOOP_HOME=/usr/local/sqoop
export PATH=$PATH:$SBT_HOME/bin:$SQOOP_HOME/bin
export CLASSPATH=$CLASSPATH:$SQOOP_HOME/lib

嘉明的云计算与大数据学习之大数据综合实验案例
3.保存该文件,并退出 vim编辑器。接下来执行如下命令使得环境变量立即生效:

source ~/.bashrc

嘉明的云计算与大数据学习之大数据综合实验案例

添加Mysql驱动程序
把已经下载了MySQL驱动程序mysql-connector-java-5.1.40. tar.gz,并且被放入到"“/home/hadoop/下载”目录中。执行如下命令解压缩文件并复制到 Sqoop安装目录下:

cd ~/下载
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

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

测试MySql的连接
1.首先要确保 MySQL服务已经启动,如果没有启动,执行下面命令启动:

service mysql start

嘉明的云计算与大数据学习之大数据综合实验案例

2.然后就可以测试 Sqoop 与 MySQL之间的连接是否成功,命令如下:

sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username root -P hadoop

嘉明的云计算与大数据学习之大数据综合实验案例

3.如果能够看到 MySQL数据库中的数据库列表,就表示 Sqoop安装成功。
嘉明的云计算与大数据学习之大数据综合实验案例

2.3.2.2.将前面生成的临时表数据从Hive导入到MySQL中

1.登录MySQL,命令如下:

mysql –u root -p hadoop

嘉明的云计算与大数据学习之大数据综合实验案例

2.进入mysql后,创建数据库

mysql> show databases; #显示所有数据库
mysql> create database dblab; #创建dblab数据库
mysql> use dblab; #使用数据库

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

3.查看数据库编码,mysql命令如下:

mysql>show variables like "char%";

确认编码格式为utf-8,否则无法导入中文。
嘉明的云计算与大数据学习之大数据综合实验案例

4.创建表,mysql命令如下:

mysql> CREATE TABLE `dblab`.`user_action` (`id` varchar(50),`uid` varchar(50),`item_id` varchar(50),`behavior_type` varchar(10),`item_category` varchar(50), `visit_date` DATE,`province` varchar(20)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> exit #创建成功后退出

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

5.导入数据,命令如下:

cd /usr/local/sqoop
./bin/sqoop export --connect jdbc:mysql://localhost:3306/dblab --username root --password hadoop --table user_action --export-dir '/user/hive/warehouse/dblab.db/user_action' --fields-terminated-by '\t'; #导入命令

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

6.查看MySQL中user_action表数据,命令如下:

mysql -u root -p
mysql> use dblab;
mysql> select * from user_action limit 10;

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

从Hive导入数据到MySQL中的操作完成。

2.3.3.使用Sqoop将数据从MySQL导入HBase

1.使用Hadoop集群、MySQL服务、HBase服务,在终端中执行如下命令:

cd /usr/local/hbase
./bin/start-hbase.sh

嘉明的云计算与大数据学习之大数据综合实验案例

2.启动HBase shell

cd /usr/local/hbase
./bin/hbase shell

嘉明的云计算与大数据学习之大数据综合实验案例

3.创建表user_action,命令如下:

hbase> create 'user_action', { NAME => 'f1', VERSIONS => 5}

嘉明的云计算与大数据学习之大数据综合实验案例

4.导入数据(终端中进行),命令如下:

cd /usr/local/sqoop
./bin/sqoop  import  --connect jdbc:mysql://localhost:3306/dblab --username root --password hadoop --table user_action --hbase-table user_action --column-family f1 --hbase-row-key id --hbase-create-table -m 1

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

5.查看HBase中user_action表数据,hbase命令如下:

hbase> scan 'user_action',{LIMIT=>10}  #只查询前面10行

嘉明的云计算与大数据学习之大数据综合实验案例

2.3.4.使用HBaseJava API把数据从本地导入到HBase中

1.启动 Hadoop集群、HBase服务,命令如下:

cd /usr/local/hadoop
./sbin/start-all.shcd /usr/local/hbase
./bin/start-hbase.sh

嘉明的云计算与大数据学习之大数据综合实验案例

2.数据准备,命令如下:

cd /usr/local/bigdatacase/dataset
/usr/local/hadoop/bin/hdfs dfs -get /user/hive/warehouse/dblab.db/user_action .
 #将HDFS上的user_action数据复制到本地当前目录,注意'.'表示当前目录
cat ./user_action/* | head -10   #查看前10行数据
cat ./user_action/00000* > user_action.output #将00000*文件复制一份重命名为user_action.output,*表示通配符
head user_action.output  #查看user_action.output前10行

嘉明的云计算与大数据学习之大数据综合实验案例

3.编写数据导入程序,采用Eclipse编写Java程序实现HBase数据导入功能
为了编写一个能够与HBase交互的Java应用程序,需要在这个界面中加载该Java 工程所需要用到的JAR包,这些JAR包中包含了可以访问HBase的Java API。这些JAR包都位于Linux系统的HBase安装目录的lib目录下,也就是位于/usr/local/hbase/lib目录下。单击界面中的Libraries选项卡,然后单击界面右侧的Add External JARs按钮,导入上述的包。

嘉明的云计算与大数据学习之大数据综合实验案例

4.在 Eclipse中编写上述代码,并打包成可执行 jar包,命名”ImportHBase.jar ;然后在/usr/local/bigdatacase/目录下面新建一个 hbase子目录,用来有放ImportHBase.jar。
嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

5.数据导入(再导入前清空uer_action表),命令如下:

cd /usr/lcoal/hbase
./bin/hbase shell 
hbase> truncate 'user_action'

嘉明的云计算与大数据学习之大数据综合实验案例

6.运行hadoop jar命令即刚刚编写的程序,命令如下:

/usr/local/hadoop/bin/hadoop jar /usr/local/bigdatacase/hbase/ImportHBase.jar HBaseImportTest 
/usr/local/bigdatacase/dataset/user_action.output

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

7.查看HBase中user_action表数据,hbase命令如下:

habse> scan 'user_action',{LIMIT=>10}  #只查询前面10行

嘉明的云计算与大数据学习之大数据综合实验案例

2.4.利用R进行数据可视化分析

2.4.1.安装R

登录Linux系统,打开一个终端,并注意保持网络连通,可以访问互联网,因为安装过程要下载各种安装文件。

1.首先利用vim编辑器打开/etc/apt/sources.list 文件,命令如下:

$ sudo vim /etc/apt/sources.list

嘉明的云计算与大数据学习之大数据综合实验案例

2.在文件的最后一行添加厦门大学的镜像源:

$ deb http://mirrors.xmu.edu.cn/CRAN/bin/linux/ubuntu/ trusty/

嘉明的云计算与大数据学习之大数据综合实验案例

3.然后,执行如下命令更新软件源列表:

$ sudo apt-get update

嘉明的云计算与大数据学习之大数据综合实验案例

4.如果更新软件源出现“由于没有公钥无法验证签名”的错误,请执行如下命令:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9

嘉明的云计算与大数据学习之大数据综合实验案例

5.接下来执行如下命令安装R语言:

$ sudo apt-get install r-base

嘉明的云计算与大数据学习之大数据综合实验案例

6.从键盘输人y,按Enter键就可以顺利安装,结束安装结束后,可以执行下面命令启动R,启动后会显示如下信息,并进入>命令提示符状态:

$ R

嘉明的云计算与大数据学习之大数据综合实验案例

7.最后可以执行下面命令退出R:

 >q()

嘉明的云计算与大数据学习之大数据综合实验案例

2.4.2.安装依赖库

1.因为后面的步骤不断报错,就上网找了很久,最后大多数都说是这个R的版本问题,所以就更新了一下R

$ sudo su
$ echo "deb http://www.stats.bris.ac.uk/R/bin/linux/ubuntu xenial-cran40/" >> /etc/apt/sources.list
$ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
$ apt-get update
$ apt-get upgrade
$ sudo apt-get install r-base

从2.3.2更新到4.1.2版本
嘉明的云计算与大数据学习之大数据综合实验案例

为了完成可视化分析功能,需要为R安装一些依赖库,包括 RMySQL、ggplot2,devtools和 recharts。其中,RMySQL是一个提供了访问 MySQL数据库的R语言接口程序的R语言依赖库, ggplot2和recharts则是R语言中提供绘图可视化功能的依赖库。

2.启动R进入R命令提示符状态,执行如下命令安装RMySQL:

install.packages('RMySQL')

因为我们更新了R,可能自动帮我们选择了下载源,因此不用选择镜像。
嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

3.执行如下命令安装绘图包ggplot2,更新之后就不会报错了:

> install.packages('ggplot2')

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

4.执行如下命令安装绘图包devtools:

> install.packages('devtools')

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

5.在 Ubuntul6.04上执行devtools安装时,可能会出现3次错误,根据每次错误的英文提示信息﹐就需要3个软件:libssl-dev, libssh2-1-dev, libcurl4-openssl-dev。安装命令如下:

$ sudo apt-get install libssl-dev
$ sudo apt-get install libssh2-1-dev
$ sudo apt-get install libcurl4-openssl-dev

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

6.最后在R命令提示符下,再执行如下命令安装taiyun/recharts :

> devtools::install_github('taiyun/recharts')

嘉明的云计算与大数据学习之大数据综合实验案例

2.4.3.可视化分析

2.4.3.1.连接MySQL并获取数据

1.进入mysql,命令如下:

$ service mysql start
$ mysql -u root -p

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

2.查询数据,命令如下:

mysql> use dblab;
mysql> select * from user_action limit 10;

嘉明的云计算与大数据学习之大数据综合实验案例

3.切换到刚才已经打开的R命令提示符终端窗口,使用如下命令让R连接到 MySQL数据库:

>library(RMySQL)>conn <- dbConnect(MySQL(),dbname='dblab',username='root',password='hadoop',host="127.0.0.1",port=3306)>user_action <- dbGetQuery(conn,'select * from user_action')

嘉明的云计算与大数据学习之大数据综合实验案例

2.4.3.2.分析消费者对商品的行为

summary()函数可以得到样本数据类型和长度,如果样本是数值型,还能得到样本数据的最小值、最大值,四分位数和均值信息。
1.首先使用summary()函数查看MySQL数据库中表user_action的字段behavior_type的类型,命令如下:

>summary(user_action$behavior_type)

嘉明的云计算与大数据学习之大数据综合实验案例

2.可以看出,原来的MySQL数据中,表user_action的字段behavior_type的类型是字符型。这样不方便做比较,需要把 behavior_type的字段类型转换为数值型,命令如下:

>summary(as.numeric(user_action$behavior_type))

嘉明的云计算与大数据学习之大数据综合实验案例

3.用柱状图展示消费者的行为类型的分布情况,命令如下:

>library(ggplot2)
>ggplot(user_action,aes(as.numeric(behavior_type)))+geom_histogram()

嘉明的云计算与大数据学习之大数据综合实验案例

2.4.3.3.分析销量排行前十的商品及其销量

1.分析销量排名前十的商品及其销量,可以采用如下命令:

>temp <- subset(user_action,as.numeric(behavior_type)==4) # 获取子数据集
>count <- sort(table(temp$item_category),decreasing = T) #排序
>print(count[1:10]) # 获取第1到10个排序结果

在上面的命令语句中, subset()函数用于从某一个数据集中选择出符合某条件的数据或者相关的列。table()对应的就是统计学中的“列联表”,是一种记录频数的方法。sort()用来完成排序,返回排序后的数值向量。上述命令执行结果如下:
嘉明的云计算与大数据学习之大数据综合实验案例

上面的执行结果中,第一行表示商品分类,第二行表示该类的销量。

2.用散点图展示上面的分析结果,命令如下:

>result <- as.data.frame(count[1:10])  #将count矩阵结果转换成数据框
>ggplot(result,aes(Var1,Freq,col=factor(Var1)))+geom_point()

嘉明的云计算与大数据学习之大数据综合实验案例

2.4.3.4.分析每年的哪个月份销量最大

1.从 MySQL直接获取的数据中, visit_date变量都是2014年份,并没有划分出具体的月份,因此,需要在数据集中增加一列关于月份的数据,命令如下:

>month <- substr(user_action$visit_date,6,7)  # visit_date变量中截取月份
>user_action <- cbind(user_action,month)  # user_action增加一列月份数据

嘉明的云计算与大数据学习之大数据综合实验案例

2.用柱状图展示消费者在一年的不同月份的购买量情况,命令如下:

>ggplot(user_action,aes(as.numeric(behavior_type),col=factor(month)))+geom_histogram()+facet_grid(.~month)

在上面这条命令中,aes()函数中的col属性可以用来设置颜色。factor()函数则是把数值变量转换成分类变量,从而可以用不同的颜色表示。如果不使用factor()函数﹐颜色将以同一种颜色渐变的颜色表现。facet_grid(. ~ month)表示柱状图按照不同月份进行分区.由于本案例中,MySQL获取的数据中只有11月份和12月份的数据,所以,执行结果中只会显示两个表格。上面命令的具体执行结果如下图所示。
嘉明的云计算与大数据学习之大数据综合实验案例

2.4.3.5.分析国内哪个省份的消费者最有购买欲望

可以使用如下语句来分析国内各个省份的消费者的购买情况:

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) #画出中国地图
在上面的命令语句中, nrow()用来计算数据集的行数。
嘉明的云计算与大数据学习之大数据综合实验案例

3.出现的问题以及解决方案

问题1:install.packages(‘devtools’)安装失败的解决方法

没有更新版本之前,选择任何表中的资源都会出现如下报错,显示证书问题和显示devtools不可用。
嘉明的云计算与大数据学习之大数据综合实验案例

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

**解决方法:**后面试了很多方法,都没有用,直到看到一个帖子是反应版本问题
原因就在于我的R版本过低导致与依赖不兼
https://zhuanlan.zhihu.com/p/129331377
已解决R包:dependencies * are not available for package - 知乎 (zhihu.com)
于是后面就找了个升级R的方法
https://blog.csdn.net/weixin_41929524/article/details/108470515
Ubuntu上更新R版本(完全攻略)_Kanny-CSDN博客_ubuntu升级r
把R升级后,完美解决问题。
因为后面的步骤不断报错,就上网找了很久,最后大多数都说是这个R的版本问题,所以就更新了一下R

$ sudo su
$ echo "deb http://www.stats.bris.ac.uk/R/bin/linux/ubuntu xenial-cran40/" >> /etc/apt/sources.list
$ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
$ apt-get update
$ apt-get upgrade
$ sudo apt-get install r-base
下面简单解释一下上述代码。sudo su 表示直接使用最高的权限;echo ... >> ... 表示将一行语句写到 >> 所指的后面的文件中的最后一行;apt-get update 表示重载 sources.list 文件, apt-get upgrade 则表示对 sources.list 里面的内容进行更新升级(这样就自然将我们最新添加的内容进行升级)。

从3.2.3更新到4.1.2版本
嘉明的云计算与大数据学习之大数据综合实验案例

问题2:安装devtools出现的问题以及解决方法

在安装devtools依赖的时候,出现了如下图的error,显示xml2文件依赖有错误。
嘉明的云计算与大数据学习之大数据综合实验案例

**解决方法:**根据错误提示,系统提示尝试安装libxml2-dev的包

$ sudo apt-get install libxml2-dev

嘉明的云计算与大数据学习之大数据综合实验案例
嘉明的云计算与大数据学习之大数据综合实验案例

安装完毕后,错误就解决了devtools也顺利安装成功。文章来源地址https://www.toymoban.com/news/detail-441803.html

到了这里,关于嘉明的云计算与大数据学习之大数据综合实验案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 头歌Educoder云计算与大数据——实验三 分布式文件系统HDFS

    本关任务:使用Hadoop命令来操作分布式文件系统。 为了完成本关任务你需要了解的知识有:1.HDFS的设计,2.HDFS常用命令。 HDFS的设计 点点点…题目省略,懒得写了,下同 分布式文件系统 NameNode与DataNode HDFS的常用命令 在右侧命令行中启动Hadoop,进行如下操作。 在HDFS中创建

    2024年02月13日
    浏览(56)
  • 头歌Educoder云计算与大数据——实验五 Java API分布式存储

    原始电商数据都是存储在关系型数据库或 NoSQL 数据库上的,是面向OLTP(联机事务处理过程)的;数据都是面向业务的,而不是面向分析。因此数据比较复杂,表很多关联的数据是分散的,不利于统计分析;因此需要把数据从多个表里导出来、联合起来,找出分析所需要的数据项

    2023年04月09日
    浏览(62)
  • 云计算实验4 面向行业背景的大数据分析与处理综合实验

    掌握分布式数据库接口Spark SQL基本操作,以及训练综合能力,包括:数据预处理、向量处理、大数据算法、预测和可视化等综合工程能力 Linux的虚拟机环境和实验指导手册 完成Spark SQL编程实验、交通数据综合分析平台环境部署和综合实验。 请按照实验指导手册,完成以下实

    2024年02月02日
    浏览(47)
  • 云计算实验1 基于Hadoop的云计算平台配置和map-reduce编程案例

    本实验考察学生Hadoop平台下的环境配置、分布式文件存储操作和管理以及基于Hadoop的分布式编程的设计与实现。 Linux的虚拟机环境、线上操作视频和实验指导手册 完成Hadoop开发环境安装、熟悉基本功能和编程方法。 请按照线上操作视频和实验知道手册,完成以下实验内容:

    2024年02月03日
    浏览(42)
  • 计算机网络实验六 综合设计实验

    1.掌握因特网的配置相关工作 1.构建一个如下图3所示拓扑图(或简化图,去掉R4); 图3 网络互联拓扑图 2.要求PC1和PC3 是同一单位内部的不同子网(例如B类网络的两个子网); 3.要求PC1、PC2、PC3、PC4、PC5、PC6能够互相ping通; 4.要求PC1通过在浏览器中输入WWW服务器的域名对其

    2024年02月12日
    浏览(54)
  • 云计算技术 综合实验

    参考资料为: 教材代码-林子雨编著《大数据基础编程、实验和案例教程(第2版)》教材所有章节代码_厦大数据库实验室博客 1 . 实验学时 8学时 2 . 实验目的 熟悉linux,Mysql,Hadoop,Hbase,Hive,R,eclipse等系统的安装和配置, 了解大数据处理的基本流程。 熟悉不同类型的数据

    2024年02月10日
    浏览(25)
  • 云计算实验-虚拟化和容器技术综合实验

    一、实验目的 搭建VMware环境,掌握VMware平台的网络配置方法,具备在VMware中创建和管理虚拟机的能力。 掌握在ubuntu系统中安装kvm的方法,具备使用kvm创建和管理虚拟机的能力,同时进一步加深对于虚拟化技术的理解。 实现Docker平台的安装部署及使用,具备管理Docker镜像和容

    2024年01月22日
    浏览(48)
  • 云计算-Linux-小综合实验答案

    1请在/tmp目录下创建student目录,并在student目录下同时创建t1,t2,t3文件 2请在/tmp目录下递归创建test1/test2/test3目录 3切换到/tmp/test1/test2/test3目录下,并且打开查看当前所在目录 4请同时在/opt,/media目录下创建upload文件 5请将/opt目录下的upload文件移动到/tmp/test1/test2/test3目录下,并改名为

    2024年02月01日
    浏览(28)
  • 云计算与大数据处理技术_云计算与大数据处理

    AIoT技术分析:云计算一般的计算机技术很难支撑企业的运作,于是云计算顺应时代而生,广泛地应用到了企业中。 云计算的概念 云计算是一种新兴的商业计算模型。... 并支持大规模数据处理、高容错性和自我管理等特性,提供PB级的存储能力,使用结构化的文件来存储数据,并整个

    2024年02月01日
    浏览(56)
  • 计算机网络体系结构综合分析实验

    实验步骤/过程 1.启动Wireshark; 2.开始分组捕获:选择菜单项Capture-Interfaces,当计算机具有多个网卡时,选择其中发送或接收分组的网络接口卡 , 当packets有数字显示后,点击“Start”开始进行分组捕获。 3.在捕获期间通过访问网络产生流量,浏览网易(www.163.com)首页。完成

    2024年02月10日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包