基于Hadoop的电商用户分析系统

这篇具有很好参考价值的文章主要介绍了基于Hadoop的电商用户分析系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘 要
本文旨在综合分析用户行为模型的特点以实时系统解决方案的基础上,设计并研发一套基于Hadoop的电商实时用户行为分析系统,并在实际的电商网站中进行使用。对电商网站中的用户行为进行分析和研究;分析用户行为分析系统的应用场景并针对实际的应用场景设计一套基于Hadoop的实时用户行为分析系统;开发JAVAEE框架下的实时用户行为分析系统;将实时用户行为分析系统在电商网站中进行投入使用。
本次毕业设计的课题是基于Hadoop的电商用户用户行为的分析系统,那么研究的方向就是大数据中的Hadoop方向,在我的课题中我主要研究的方向是数据的采集来源,通过Flume埋点来采集日志信息,或者通过Nginx反向代理服务器来收集日志信息,来采集到我们需要的用户浏览网页的信息,然后就是研究的大数据的存储问题。
关键词:电商数据;用户行为;分析系统;Hadoop;Java
Abstract
This paper aims to comprehensively analyze the characteristics of user behavior model on the basis of real-time system solutions, design and develop a Hadoop-based real-time user behavior analysis system, and use it in actual e-commerce websites.Analyze and study user behavior in e-commerce websites; analyze the application scenarios of user behavior analysis system and design a real-time user behavior analysis system based on Hadoop; develop real-time user behavior analysis system under JAVAEE framework; and put real-time user behavior analysis system into use in e-commerce website.
The graduation design project is based on Hadoop electricity business user behavior analysis system, so the research direction is the Hadoop direction of big data, in my project my main research direction is the source of data collection, through Flume buried point to collect log information, or through Nginx reverse proxy server to collect log information, to collect our need users to browse the web information, and then is the study of big data storage problem.
Key words: e-commerce data; user behavior; analysis system; Hadoop; Java
目 录
摘 要 I
Abstract II
第1章 绪论 1
1.1 编写目的 1
1.2 背景及意义 1
1.3 开发及运行环境 1
第2章 系统相关技术介绍 3
2.1 hadoop系统架构 3
2.1.1 hadoop 生态架构和概况 3
2.2 HDFS(Hadoop分布式文件系统) 4
2.2.1 HDFS 设计说明 4
2.2.2 HDFS的存储机制和核心 4
2.3 Mapreduce(分布式计算框架) 7
2.3.1 mapreduce计算框架设计说明 7
2.3.2 Hadoop的Mapreduce计算开源框架的计算流程: 8
2.4 Yarn(资源管理框架) 9
2.4.1 yarn的架构 9
2.4.2 yarn的各个角色的职责 10
2.4.3 YARN 作业执行流程 11
2.5 系统中的数据库介绍和其他工具简介 12
2.5.1 hive是什么 12
2.5.2 hive的架构 13
2.5.3 hive的特点 13
2.5.4 hbase是什么 13
2.5.5 hbase的存储机制和表结构 14
2.5.7 数据导入导出工具sqoop和日志收集工具flume 15
第3章 需求分析 17
3.1 系统概述 17
3.2 系统功能需求 17
3.2.1 收集原始数据 17
3.2.2 计算物品相似度矩阵 18
3.2.3 计算用户购买向量 18
3.2.4 计算推荐向量并去重和排序 18
3.2.5 数据入库 18
3.2.6 作业控制 19
3.2.7商品推荐功能 19
3.3 系统非功能需求 19
第4章 概要设计 20
4.1系统架构设计 20
4.2系统层次架构设计 21
4.3系统功能模块设计 22
4.3.1 计算物品相似度矩阵 22
4.3.2推荐矩阵(相似度矩阵*向量) 23
4.3.3对推荐向量进行处理 23
4.3.4数据入库 23
4.4系统数据库设计 24
4.5推荐模块程序流程图 25
4.6系统架构图 25
4.7数据预处理层 26
4.8推荐结果生成层 26
4.9推荐系统流程图 27
第5章 系统实现 28
5.1计算用户购买商品的列表 28
5.2计算商品的共现关系 28
5.3计算用户的购买向量 28
5.4推荐结果 29
5.5数据去重 29
5.6推荐结果入库 30
5.7构建作业流对象 32
第6章 系统测试 33
6.1计算用户购买商品的列表 33
6.2计算商品的共现次数(共现矩阵) 33
6.3计算用户的购买向量 33
6.4推荐结果 33
6.5数据去重 34
6.6推荐结果入库 35
6.7 web系统推荐商品实现 35
总 结 36
参考文献 37
致 谢 39
第3章 需求分析
3.1 系统概述
电商用户分析系统是对用户的历史行为进行挖掘,对用户兴趣信息进行建模,并对用户未来行为进行预测,从而建立用户和内容的关系,满足用户对商品的推荐需求的一种智能系统。通过对主要的推荐算法进行比较分析,模拟实现了基于用户行为的智能推荐系统,提高了推荐算法的有效性。电商用户分析系统是为了更精准的为用户推荐他们想要的内容,如果一个用户在浏览商品信息的时候,通过对用户数据的记录,和已经存在的其他的用户记录进行分析,从而为用户推荐相应的数据。本次毕业设计是基于Hadoop的电商用户分析系统,本此课设通过对用户行为的研究,发现用户购买的偏好波动幅度偏大,如何充分利用这一特征是提高推荐系统精准度的关键。
用户行为数据的处理。电商用户分析系统用户、商品行为主要是用户的购买行为。
购买行为包含了丰富的用户购买商品,如何处理这些购买商品是推荐系统实现的关键。
系统必须具有高扩展性。网上购物每时每刻都会有新的数据产生,都会执行新的购物行为,系统的扩展性变得尤为关键。
推荐系统的推荐质量。推荐系统的最终目的是推荐,所以推荐质量是整个系统设计的最终目的。好的推荐系统需要兼顾系统的精准度、覆盖率以及新颖度。
3.2 系统功能需求
基于Hadoop的商品推荐引擎大致可以分为5部分,分别是:计算用户的购买向量、计算物品的相似度矩阵、计算推荐度及相关处理、数据导入数据库和对于整个项目的全部作业控制。
3.2.1 收集原始数据
推荐系统是基于用户、商品行为数据来进行推荐的,没有用户商品数据的推荐系统是无法进行推荐的。rawdata文件:该文件是收集用户对物品的偏好,形成“用户 物品 偏好”的数据集。数据格式:用户编号 物品编号 偏好值。
本文转载自:http://www.biyezuopin.vip/onews.asp?id=16482

 package com.zwj.controller;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;

import com.zwj.service.ProductService;
import com.zwj.service.UserService;
import com.zwj.vo.Cart;
import com.zwj.vo.Product;
import com.zwj.vo.User;
//让控制器成为一个bean
@Controller
//这个控制器是接受user_reg页面传过来的参数去操作数据库
public class UserController{
	@Autowired
	private SqlSession sqlSession;
	@Autowired
	private UserService us;
	@Autowired
	private ProductService ps;
	@Autowired
	private HttpServletRequest req;
	private int count;
	@RequestMapping("/userReg.action")
	//jsp页面通过userReg.action找到这个方法
	public String userReg(User user) throws IOException{
		Map<String,Object> map = new HashMap<String, Object>();
		map.put("phone_mobile", user.getPhone_mobile());
		map.put("login_password", user.getLogin_password());  
		//判断页面传回的数据要求
		Pattern pattern = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(17[6])|(18[01236789]))\\d{8}$");
	     Matcher matcher = pattern.matcher(user.getPhone_mobile());
		if(user.getPhone_mobile()==null || user.getLogin_password()==null || !matcher.matches()){
			return "pages/register-fail.html";
		}	
		//获取当前注册时间
		Date date = new Date();
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		map.put("register_time", df.format(date));		
		//生成唯一识别码
		 String s = UUID.randomUUID().toString(); 
    	 String user_code =  s.substring(0,8)+s.substring(9,13)+s.substring(14,18)+s.substring(19,23)+s.substring(24); 
    	 map.put("user_code", user_code);	 
    	 //将数据添加到数据库中
		int a = sqlSession.insert("com.zwj.dao.addUser",map);	
		req.setAttribute("phone_mobile", user.getPhone_mobile());
		req.setAttribute("login_password", user.getLogin_password());
		return "pages/register-ok.html";
	}
	//处理用户名唯一性的判断                                                                     
	@RequestMapping("/userJudge.action")
	@ResponseBody
	public User userJudge(String phone_mobile) {
		User u = sqlSession.selectOne("com.zwj.dao.judgeUser",phone_mobile);
		return u;
	}	
	//用户登录的判断
	@RequestMapping("/userLogin.action")
	public String userLogin(String phone_mobile,String login_password) throws IOException{
		//对页面传回的值进行二次判断
		 Pattern pattern = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(17[6])|(18[01236789]))\\d{8}$");
	     Matcher matcher = pattern.matcher(phone_mobile);
		if(phone_mobile==null || login_password==null || !matcher.matches()){
			return "pages/login-fail.html";
		}		
		User u = us.userLogin(phone_mobile, login_password);
		
		//查到用户了,执行登录成功的操作
		if(u!=null){
			count = sqlSession.selectOne("com.zwj.dao.count",u.getPhone_mobile());
			req.getSession().setAttribute("u", u);
			req.setAttribute("count", count);
			return "pages/main.jsp";
		}else{
			return "pages/login-fail.html";
		}
	}
	//用户退出销毁session 跳转到登录页
	@RequestMapping("/userExit.action")
	public String userExit(HttpSession session){
		session.invalidate();
		return "index.html";
	}
	@RequestMapping("/showCart.action")
	public String showCart(HttpSession session) throws IOException{
		User u = (User) session.getAttribute("u");
	     List<Cart> c= ps.showCart(Long.parseLong(u.getPhone_mobile()));
			req.setAttribute("c", c);
			return "pages/cart.jsp";	
	}
	@RequestMapping("/addCart.action")
	public String addCart(Long pid,HttpSession session) throws IOException{
		Map<String,Object> map = new HashMap<String, Object>();
		Product p = ps.showProduct(pid);
		User u = (User) session.getAttribute("u");
		map.put("uid", u.getPhone_mobile());
		map.put("pic", p.getPic()); 
		map.put("pname", p.getName());
		map.put("num", 1);		
    	map.put("price", p.getPrice());	 
    	 //将数据添加到数据库中
		int a = sqlSession.insert("com.zwj.dao.addCart",map);	
		count = sqlSession.selectOne("com.zwj.dao.count",u.getPhone_mobile());
		req.setAttribute("count", count);
		return "pages/addCart-ok.jsp";
	}
	@RequestMapping("/xm6_m.action")
	public String more_xm(HttpSession session){
		User u = (User) session.getAttribute("u");
		count = sqlSession.selectOne("com.zwj.dao.count",u.getPhone_mobile());
		req.setAttribute("count", count);
		return "pages/xm6_m.jsp";
	}
	@RequestMapping("/pg_m.action")
	public String more_pg(HttpSession session){
		User u = (User) session.getAttribute("u");
		count = sqlSession.selectOne("com.zwj.dao.count",u.getPhone_mobile());
		req.setAttribute("count", count);
		return "pages/pg_m.jsp";
	}
	@RequestMapping("/gl_m.action")
	public String more_gl(HttpSession session){
		User u = (User) session.getAttribute("u");
		count = sqlSession.selectOne("com.zwj.dao.count",u.getPhone_mobile());
		req.setAttribute("count", count);
		return "pages/gl_m.jsp";
	}
	@RequestMapping("/jn_m.action")
	public String more_jn(HttpSession session){
		User u = (User) session.getAttribute("u");
		count = sqlSession.selectOne("com.zwj.dao.count",u.getPhone_mobile());
		req.setAttribute("count", count);
		return "pages/jn_m.jsp";
	}
	@RequestMapping("/main.action")
	public String main(HttpSession session){
		User u = (User) session.getAttribute("u");
		count = sqlSession.selectOne("com.zwj.dao.count",u.getPhone_mobile());
		req.setAttribute("count", count);
		return "pages/main.jsp";
	}
	@RequestMapping("/result.action")
	public String result(HttpSession session){
		/*User u = (User) session.getAttribute("u");
		count = sqlSession.selectOne("com.zwj.dao.count",u.getPhone_mobile());
		req.setAttribute("count", count);*/
		return "pages/result.jsp";
	}
}

基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统
基于Hadoop的电商用户分析系统文章来源地址https://www.toymoban.com/news/detail-402621.html

到了这里,关于基于Hadoop的电商用户分析系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 大数据毕设-基于hadoop+spark+大数据+机器学习+大屏的电商商品数据分析可视化系统设计实现 电商平台数据可视化实时监控系统 评论数据情感分析

    🔥作者:雨晨源码🔥 💖简介:java、微信小程序、安卓;定制开发,远程调试 代码讲解,文档指导,ppt制作💖 精彩专栏推荐订阅:在下方专栏👇🏻👇🏻👇🏻👇🏻 Java精彩实战毕设项目案例 小程序精彩项目案例 Python实战项目案例 ​💕💕 文末获取源码 本次文章主要是

    2024年02月03日
    浏览(105)
  • 基于Python电商用户行为的数据分析、机器学习、可视化研究

    有需要本项目的源码以及全套文档和相关资源,可以私信博主!!! 在数字化和互联网技术飞速发展的推动下,消费者的购买能力和消费观念呈现不断升级和变迁的趋势。用户消费数据的爆炸式增长,为我们提供了寻找潜在价值信息的机会。 本研究使用了阿里巴巴提供的淘

    2024年02月04日
    浏览(46)
  • 基于Hadoop的电商广告点击数的分析与可视化(Shell脚本执行与大屏可视化设计)

    摘要 本项目需要部署的可以私信博主!!!!!!!!! 本文介绍了基于Hadoop的电商广告点击数的分析与可视化,以及相应的Shell脚本执行和大屏可视化设计。首先,我们介绍了Hadoop的基本原理和使用方法,包括如何安装和配置Hadoop集群。 然后,我们介绍了如何使用Hadoop

    2024年02月02日
    浏览(52)
  • 数据分析 — 电商用户分析和用户 RFM 模型

    字段 说明 RowID 行编号 OrderID 订单 ID OrderDate 订单日期 ShipDate 发货日期 ShipMode 发货模式 CustomerID 客户 ID CustomerName 客户姓名 Segment 客户类别 City 客户所在城市 State 客户所在州 Country 客户所在国家 PostalCode 邮编 Market 商店所属区域 Region 商店所属州 ProductID 产品 ID Category 产品类别

    2024年02月21日
    浏览(40)
  • 基于Hadoop的就业岗位分析系统

    基于Hadoop的就业岗位分析系统 摘  要 如果计算机技术与信息化管理能够互相协作,那么管理员的工作效率就会大大提升,工作的质量也会得到改善。优秀的就业岗位分析系统对于管理员的管理实际的具体运作有更有力的管理,对就业岗位分析进行管理,同时也能促进因管理

    2024年01月18日
    浏览(23)
  • 大数据分析基于Hadoop全国天气可视化分析系统

    收藏关注不迷路,源码文章末   全国天气可视化分析系统主要功能模块包括系统首页、轮播图、公告消息、资源管理(天气资讯、资讯分类)系统用户(管理员、普通用户)模块管理(天气信息、降水数据),采取面对对象的开发模式进行软件的开发和硬体的架设,能很好

    2024年01月22日
    浏览(52)
  • 大数据实战(hadoop+spark+python):淘宝电商数据分析

    虚拟机:Ubuntu 20.04.6 LTS docker容器 hadoop-3.3.4 spark-3.3.2-bin-hadoop3 python,pyspark, pandas,matplotlib mysql,mysql-connector-j-8.0.32.jar(下载不需要积分什么的) 淘宝用户数据 以上的技术积累需要自行完成 创建容器(##ubuntu的代码块,在ubuntu中运行,无特殊说明的在docker中运行) 更新软件

    2024年02月11日
    浏览(65)
  • Spark项目实战—电商用户行为分析

    我们看看在实际的工作中如何使用这些 API 实现具体的需求。这些需求是电商网站的真实需求,所以在实现功能前,咱们必须先将数据准备好。 上面的数据图是从数据文件中截取的一部分内容,表示为电商网站的用户行为数据,主要 包含用户的 4 种行为:搜索,点击,下单,

    2024年02月08日
    浏览(42)
  • 【Spark+Hadoop+Hive+MySQL+Presto+SpringBoot+Echarts】基于大数据技术的用户日志数据分析及可视化平台搭建项目

    点我获取项目数据集及代码 随着我国科学技术水平的不断发展,计算机网络技术的广泛应用,我国已经步入了大数据时代。在大数据背景下,各种繁杂的数据层出不穷,一时难以掌握其基本特征及一般规律,这也给企业的运营数据分析工作增添了不小的难度。在大数据的背景

    2024年02月10日
    浏览(56)
  • 大数据设计基于Hadoop全国天气可视化分析系统

      全国天气可视化分析系统主要功能模块包括系统首页、轮播图、公告消息、资源管理(天气资讯、资讯分类)系统用户(管理员、普通用户)模块管理(天气信息、降水数据),采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善

    2024年04月14日
    浏览(54)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包