【大数据存储】实验五:Mapreduce

实验Mapreduce实例——排序(补充程序)

实验环境

Linux Ubuntu 16.04

jdk-8u191-linux-x64

hadoop-3.0.0

hadoop-eclipse-plugin-2.7.3.jar 

eclipse-java-juno-SR2-linux-gtk-x86_64

实验内容

在电商网站上,当我们进入某电商页面里浏览商品时,就会产生用户对商品访问情况的数据 ,名为goods_visit1,goods_visit1中包含(商品id ,点击次数)两个字段,内容以“\t”分割,由于数据量很大,所以为了方便统计我们只截取它的一部分数据,内容如下:

  1. 商品id  点击次数  
  2. 1010037 100  
  3. 1010102 100  
  4. 1010152 97  
  5. 1010178 96  
  6. 1010280 104  
  7. 1010320 103  
  8. 1010510 104  
  9. 1010603 96  
  10. 1010637 97  
要求我们编写mapreduce程序来对商品点击次数有低到高进行排序。
实验步骤

1.切换到/apps/hadoop/sbin目录下,开启Hadoop。

2.在Linux本地新建/data/mapreduce3目录。

  1. 在Linux中切换到/data/mapreduce3目录下,用wget命令从http://10.2.208.188:60000/allfiles/mapreduce3/goods_visit1网址上下载文本文件goods_visit1。

然后在当前目录下用wget命令从http://10.2.208.188:60000/allfiles/mapreduce3/hadoop2lib.tar.gz网址上下载项目用到的依赖包。

将hadoop2lib.tar.gz解压到当前目录下


首先在HDFS上新建/mymapreduce3/in目录,然后将Linux本地/data/mapreduce3目录下的goods_visit1文件导入到HDFS的/mymapreduce3/in目录中。

  1. 项目jar包等已就绪

6.填充

Map

num.set(Integer.parseInt(arr[1]));num为获取的第一列,并且设置为整形

goods.set(arr[θ]);Goods为商品名,是获取的第零列

context.write(num,goods);写入设置数量为key,商品名为value,因为后续要按照数量key排序

Reduce

就直接填写key value就好

Main

写入路径为hdfs路径下所创的数据goods_visit1,输出路径也要记得改成相应创造的mapreduce3工作目录下的out

运行查看结果

7.

实验Mapreduce实例——平均数(补充程序)

实验环境

Linux Ubuntu 16.04

jdk-8u191-linux-x64

hadoop-3.0.0

hadoop-eclipse-plugin-2.7.3.jar 

eclipse-java-juno-SR2-linux-gtk-x86_64

实验内容

现有某电商关于商品点击情况的数据文件,表名为goods_click,包含两个字段(商品分类,商品点击次数),分隔符“\t”,由于数据很大,所以为了方便统计我们只截取它的一部分数据,内容如下:

商品分类 商品点击次数  

  1. 52127   5  
  2. 52120   93  
  3. 52092   93  
  4. 52132   38  
  5. 52006   462  
  6. 52109   28  
  7. 52109   43  
  8. 52132   0  
  9. 52132   34  
  10. 52132   9  
  11. 52132   30  
  12. 52132   45  
  13. 52132   24  
  14. 52009   2615  
  15. 52132   25  
  16. 52090   13  
  17. 52132   6  
  18. 52136   0  
  19. 52090   10  
  20. 52024   347  
要求使用mapreduce统计出每类商品的平均点击次数
实验步骤

1.切换到/apps/hadoop/sbin目录下,开启Hadoop。

2.在Linux本地新建/data/mapreduce4目录。

  1. 在Linux中切换到/data/mapreduce4目录下,用wget命令从http://10.2.208.188:60000/allfiles/mapreduce4/goods_click网址上下载文本文件goods_click。

然后在当前目录下用wget命令从http://10.2.208.188:60000/allfiles/mapreduce3/hadoop2lib.tar.gz网址上下载项目用到的依赖包。

将hadoop2lib.tar.gz解压到当前目录下

  1. 首先在HDFS上新建/mymapreduce3/in目录,然后将Linux本地/data/mapreduce3目录下的goods_visit1文件导入到HDFS的/mymapreduce3/in目录中。

  1. 项目jar包等已就绪

  1. 填充语句

Map

String line=value.toString();保证数据都是string型

String arr[]=line.split("\t");按\t拆分

newkey.set(arr[0]);设置第一列为key,即商品类别为key

Intwritable num=new Intwritable();新建可写入的整型,便于后续记录次数的

num.set(Integer.parseInt(arr[1]));设置第一列为values,即点击次数context.write(newKey,num);

REDUCE

使用val.get()数值加入n中即总次数,然后除以个数,得到均值

新建一个工作任务,使用map和reduce等类,值得注意的是输出的key为商品类别,是text类型,而输出平均值是可写的整型,然后写入路径为hdfs路径下所创的数据goods_click,输出路径也要记得改成相应创造的mapreduce工作目录下的out

运行查看结果

遇到的困难和解决方法:

如图所示输出的key和value写反导致不输出内容并再次运行会报错out目录已存在已有内容,需要进行删除再运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/791101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows@软件显示模糊@屏幕显示器分辨率和精细度

文章目录 refsDPIPPIPPI (Pixels Per Inch)DPI (Dots Per Inch) 屏幕尺寸数windows中DPI设置对单个应用设置DPI兼容性设置使用系统全局设置 获取屏幕(监视器)信息👺获取监视器的型号pnp 监视器windows 获取屏幕分辨率 高分辨率屏幕高分辨率和高精细度屏幕&#x1f4…

RedHat9中KVM虚拟机的配置与管理

KVM虚拟技术介绍 Linux的KVM(Kernel-based Virtual Machine)虚拟技术是一种基于Linux内核的虚拟化解决方案。它允许在单个物理服务器上创建和运行多个隔离的虚拟机,每个虚拟机都有自己的操作系统和应用程序,就像运行在独立的物理…

MyBatis入门到掌握(JAVA)

建立连接可能涉及到的问题(只需要自己改一下就行) 1、MyBatis是⼀款优秀的 持久层 框架,⽤于简化JDBC的开发 2、数据库连接配置 (1)yml配置 # 数据库连接配置 spring:datasource:url: jdbc:mysql://127.0.0.1:3306/…

OAuth2-03-springboot 整合

拓展阅读 OAuth 2.0-01-Overview OAuth2-02-java 整合 OAuth2-03-springboot 整合 序言 安全性是暴露由许多微服务组成的公共访问API时要考虑的最重要的一个方面。 Spring有一些有趣的功能和框架,使我们的微服务安全配置更容易。 在本文中,我将向…

基于SpringBoot的“致远汽车租赁系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“致远汽车租赁系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 致远汽车租赁系统总体功能模块图 系统首页界…

2024年 前端JavaScript 进阶 第3天 笔记

3.1-JS进阶-内容和两种编程思想 3.2-构造函数实现封装以及存在 3.3-原型对象prototype 3.4-数组扩展案例-求最大值和数组求和 3.5-constructor属性以及应用 3.6-对象原型proto 3.7-原型继承 3.8-原型链以及instanceof运算符 3.9-综合案例-模态框构造函数写法 3.10-综合案例-0pe…

Phpstorm配置Xdebug

步骤 1、先去官网找到对应的php xdebug的版本 2、配置phpstorm断点调试 网址:https://xdebug.org/ 查看php对应的xdebug版本:Xdebug: Support — Tailored Installation Instructions 1.1查看对应php xdebug版本 全选,复制到目标网址 我…

笔记本三屏异显方案——更新中,是否能够在FPGA上实现,淘宝购物的价格太贵

三屏是(笔记本电脑屏幕,两个显示器屏幕),异显是采用屏幕的扩展功能,这样能够左边看视频文章,右边control cv代码。 一、 电脑有一个HDMI口的时候,只需要买一个TypeC(雷电接口&#x…

FreeBSD下如何进行添加路由等配置?

FreeBSD系统可以当作一台路由器来使用,实际上当年路由器刚刚出来的时候,有很大一部分就是用主机安装FreeBSD来提供路由功能的。 路由的基础知识 路由,就是计算机网络中决定数据包从源地址到目的地址路径的一种传输过程。路由表,就…

【前端Vue】社交信息头条项目完整笔记第3篇:三、个人中心,TabBar 处理【附代码文档】

社交媒体-信息头条项目完整开发笔记完整教程(附代码资料)主要内容讲述:一、项目初始化使用 Vue CLI 创建项目,加入 Git 版本管理,调整初始目录结构,导入图标素材,引入 Vant 组件库,移动端 REM 适配。二、登录注册准备,实现基本登录功能,登录状…

vue 数据埋点

最近菜鸟做项目,需要做简单的数据埋点,不是企业级的,反正看渡一的视频,企业级特别复杂,包括但不限于:错误收集、点击地方、用户行为…… 菜鸟的需求就是简单收集一下用户的ip、地址、每个界面的访问时间&a…

技术揭秘:如何打造完美互动的充电桩硬件与服务平台?

充电桩平台全套源码地址 https://gitee.com/chouleng/cdzkjjh.git 这张图像是一个系统或服务的架构图。以下是对图中各个部分的描述: 前端: 位于图像的顶部,颜色为浅绿色。用户服务端: 紧邻前端,颜色为淡黄色。设备服…

MOS管小电流发热怎么处理?

01 MOSFET的击穿有哪几种? Source、Drain、Gate —— 场效应管的三极:源级S、漏级D、栅级G。(这里不讲栅极GOX击穿了啊,只针对漏极电压击穿) 先讲测试条件,都是源栅衬底都是接地,然后扫描漏极…

【局部路径规划算法】—— DWA动态窗口法(c++实现))

参考资料: (1)机器人局部避障的动态窗口法(dynamic window approach) (2)机器人局部避障的动态窗口法 (3)局部规划算法:DWA算法原理 (4)SLAM学习:…

安卓开机动画

目录 一、开机动画的2种模式1.1 android模式2.2 movie模式 二、开机动画代码运行位置三、删除开机动画四、自定义开机动画实践 一、开机动画的2种模式 一种是使用两张图片利用某种效果来造成动态,另一种则是用一个图包循环显示的方式来形成动态。当然,这…

软考高级架构师:CISC (复杂指令集计算机) 和 RISC (精简指令集计算机)概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

去班味的尽头是风险管理

运维工程师的“班味”是从风险管理就加重的。 什么是班味呢?指的是打工人身上特有的疲惫气质,面色憔悴、双目无神和腰酸背痛都是“班味”的显著表现。习惯性回复“收到,马上来”、不自觉唉声叹气、下班也提不起精神等症状,则说明…

Spring Boot:Web开发之视图模板技术的整合

Spring Boot 前言Spring Boot 整合 JSPSpring Boot 整合 FreeMarkerSpring Boot 整合 ThymeleafThymeleaf 常用语法 前言 在 Web 开发中,视图模板技术(如 JSP 、FreeMarker 、Thymeleaf 等)用于呈现动态内容到用户界面的工具。这些技术允许开…

后端SpringBoot+Mybatis 查询订单数据表奇怪报错加一

排错过程: 看报错意思是SQL语句存在错误,然后使用图形化工具运行这个SQL语句 其实这里稍微细心想一下就能发现问题,但是当时没深入想,就觉得order表前加了数据库名字影响不大,所以感觉SQL语句是没问题的,然…

JavaScript基础代码练习之翻转数组

一、要求将给定数组 [red, green, blue, pink, purple] 的内容反转存放&#xff0c;并将结果输出到控制台。 二、编写代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" cont…