一、数据集
网站用户购物行为数据集2030万条,包括raw_user.csv(2000万条)和small_user.csv(30万条,适合新手)
字段说明:
user_id 用户编号,item_id 商品编号,behavior_type 用户操作类型:1(浏览)、2(收藏)、3(加入购物车)、4(购买)
user_geohash 用户地理位置哈希值,在预处理中将其转化为province省份、item_category商品分类,time 用户操作时间
二、实验任务
- 安装Linux操作系统
- 安装关系型数据库MySQL
- 安装大数据处理框架Hadoop
- 安装列族数据库HBase
- 安装数据仓库Hive
- 安装Sqoop
- 安装R
- 安装Eclipse
- 对文本文件形式的原始数据集进行预处理
- 把文本文件的数据集导入到数据仓库Hive中
- 对数据仓库Hive中的数据进行查询分析
- 使用Sqoop将数据从Hive导入MySQL
- 使用Sqoop将数据从MySQL导入HBase
- 使用HBase Java API把数据从本地导入到HBase中
- 使用R对MySQL中的数据进行可视化分析
三、实验步骤
(一)对csv进行预处理
1.去除csv文件的表头
cd ~/下载sed -i ‘1d‘ raw_user.csv # 删除第一行sed -i ‘1d‘ small_user.csv head -5 raw_user.csv # 查看前5行内容head -g small-user.csv
2.将user_geohash转化为province,并将文件格式转化为txt
具体转化细节不说明,本文注重整个分析过程,详细内容参考林子雨老师的博客。
转化成功后,在该目录通过pre_deal.sh脚本加载small_user.csv生成user_table.txt文件,使用tree查看该目录结构:
Hive是基于Hadoop的数据仓库,在将user_table中的数据导入的数据仓库之前,需要先把user_table.txt文件上传到HDFS中。然后再Hive中创建外部表,完成数据的导入。
启动HDFS:由于笔者在安装hadoop时已完成了环境变量的配置,现在在任意目录执行下面的语句开启hadoop:
将user_table.txt文件上传到HDFS中
在HDFS中查看该文件的前10行:
(二)将HDFS中的文件导入到Hive数据仓库中
1.启动mysql数据库
mysql用于保存Hive的元数据(在安装Hive时需要配置),因此需先开启mysql服务
2.启动hive,启动成功后如下图所示
3.创建数据库,并建立外部表,将HDFS中/bigdatacase/dataset目录下的文件作为该外部表的内容
hive> create database dblab;hive> use dblab;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‘;
4.使用Hive命令进行查询
原文地址:https://www.cnblogs.com/2sheep2simple/p/10729415.html