码迷,mamicode.com
首页 > Web开发 > 详细

hadoop实例-网站用户行为分析

时间:2019-04-19 09:11:57      阅读:495      评论:0      收藏:0      [点我收藏+]

标签:cat   hdfs   width   sed   分析   api   本地   dea   去除   

一、数据集

网站用户购物行为数据集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命令进行查询

技术图片

 

hadoop实例-网站用户行为分析

标签:cat   hdfs   width   sed   分析   api   本地   dea   去除   

原文地址:https://www.cnblogs.com/2sheep2simple/p/10729415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!