MapReduce课程设计-----好友推荐功能

目录

一、项目说明

二、程序需求

1.需求:

2.数据:

创建friends.txt文本:

三、程序内容

     1.xshell启动集群

     2.在idea里面编写代码

         2.1编写FriendsRecommend

         2.2编写FriendsRecommendMapper

         2.3编写FriendsRecommendReduce

      3.在项目右侧Maven打包一下package

      4.创建目录

      5.上传程序

      6.分布式文件系统上传测试数据

      7.执行程序

      8.查看结果

一、项目说明

     互为推荐关系

     非好友的两个人之间存在相同好友则互为推荐关系

     朋友圈两个非好友的人,存在共同好友人数越多,越值得推荐

     存在一个共同好友,值为1;存在多个值累加

二、程序需求

1.需求:

     程序要求,给每个人推荐可能认识的人

     互为推荐关系值越高,越值得推荐

     每个用户,推荐值越高的可能认识的人排在前面

2.数据:

     数据使用空格分割

     每行是一个用户以及其对应的好友

     每行的第一列名字是用户的名字,后面的是其对应的好友

创建friends.txt文本:

xiaoming laowang renhua linzhiling
laowang xiaoming fengjie
renhua xiaoming ligang fengjie
linzhiling xiaoming ligang fengjie guomeimei
ligang renhua fengjie linzhiling
guomeimei fengjie linzhiling
fengjie renhua laowang linzhiling guomeimei

三、程序内容

     1.xshell启动集群

        使用命令start-dfs.sh启动HDFS

start-dfs.sh

        使用命令start-yarn.sh启动Yarn

start-yarn.sh

     2.在idea里面编写代码

        创建java项目:

        分别创建FriendsRecommend、FriendsRecommendMapper、FriendsRecommendReduce项目

         2.1编写FriendsRecommend

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class FriendsRecommend {
    public static void main(String[] args) throws Exception{
        //获取虚拟机配置信息
        Configuration configuration = new Configuration();
        //创建Job对象
        Job job = Job.getInstance(configuration);
        job.setJarByClass(FriendsRecommend.class);

        //Map端
        job.setMapperClass(FriendsRecommendMapper.class);
        job.setMapOutputKeyC
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
hadoop-mapreduce-client-core是Hadoop分布式计算框架中的核心模块之一。它主要包含了Hadoop MapReduce的核心功能和API接口,是实现MapReduce编程模型的必备组件。 Hadoop MapReduce是一种用于大规模数据处理的编程模型,其核心思想是将大规模数据集分解成多个较小的数据块,分别在集群中的不同机器上进行处理,最后将结果整合。hadoop-mapreduce-client-core模块提供了与MapReduce相关的类和方法,方便开发者实现自定义的Map和Reduce任务。 具体来说,hadoop-mapreduce-client-core模块包含了以下重要组件和功能: 1. Job:Job表示一个MapReduce任务的定义和描述,包括输入路径、输出路径、Mapper和Reducer等。 2. Mapper:Mapper是MapReduce任务中的映射函数,它负责将输入数据转换成<key, value>键值对的形式。 3. Reducer:Reducer是MapReduce任务中的归约函数,它按照相同的key将所有Mapper输出的value进行聚合处理。 4. InputFormat:InputFormat负责将输入数据切分成多个InputSplit,每个InputSplit由一个Mapper负责处理。 5. OutputFormat:OutputFormat负责将Reducer的输出结果写入指定的输出路径中。 使用hadoop-mapreduce-client-core模块,开发者可以基于Hadoop分布式计算框架快速开发并行处理大规模数据的应用程序。通过编写自定义的Mapper和Reducer,可以实现各种类型的分布式计算,如数据清洗、聚合分析、机器学习等。 总之,hadoop-mapreduce-client-core是Hadoop分布式计算框架中的核心模块,提供了实现MapReduce编程模型所需的基本功能和API接口。使用该模块,开发者可以利用Hadoop的分布式计算能力,高效地处理和分析大规模数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值