文档章节

第四课. qq 推荐 好友

 小南风
发布于 2016/11/22 17:15
字数 337
阅读 9
收藏 0
点赞 0
评论 0

1.导入数据,以  tab 为分割

hadoop    hello
hdfs    world
tom    cat
cat    dog
hello    world
hello    hdfs

上传文件

2. 写代码

mapper

package com.bjsxt.mr;

import java.io.IOException;
import java.io.InterruptedIOException;
import java.util.StringTokenizer;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

public class Test2Mapper extends  Mapper<LongWritable, Text, Text, Text>{
	// 23  9:31 视频
	
	protected  void  map(LongWritable key ,Text value,Context context) throws IOException, InterruptedException {
	  //	throws IOException , InterruptedIOException
		String line =value.toString();
		String[]  ss=line.split("\t");
		context.write(new Text(ss[0]), new Text(ss[1]));
		context.write(new Text(ss[1]), new Text(ss[0]));
	}
	
	

}

reduce

package com.bjsxt.mr;

import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;



import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

public class Test2Reducer extends  Reducer<Text, Text, Text, Text>{
	
	
	protected  void  reduce(Text key ,Iterable<Text> i,Context context) throws IOException, InterruptedException{	
	
		Set<String> set=new HashSet<String>();
	   for(Text t: i){
		   set.add(t.toString());
	   }
	   if(set.size()>1){
		     for(Iterator j=set.iterator();j.hasNext();){
		    	 String name=(String) j.next();
		    	 for(Iterator k=set.iterator();k.hasNext();){
		    		 String other =(String) k.next();
		    		 if(!name.equals(other)){
		    			 context.write(new Text(name), new Text(other));
		    		 }
		    		 
		    	 }
		    	 
		     }
	   }
	
	}

}

job

package com.bjsxt.mr;


import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.mapreduce.Job;

import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.fs.Path;

import org.apache.hadoop.io.Text;

public class Test2JobRunForWin7 {
	
	public static void main(String[] args) {
           
		 
			Configuration  conf=new Configuration(); 
			//windows 本地测试 hadoop程序 
			conf.set("fs.default.name", "hdfs://node1:9000"); 
			conf.set("mapred.jar", "D:\\wc.jar");
			
			
			conf.set("mapred.job.tracker", "node1:9001");
			try {
				Job job = new Job(conf);
				job.setJobName("QqSendFriend");
				job.setJarByClass(Test2JobRunForWin7.class);
				
				job.setMapperClass(Test2Mapper.class);  
				job.setReducerClass(Test2Reducer.class);
				
				job.setMapOutputKeyClass(Text.class);   //设置参数类型
				job.setMapOutputValueClass(Text.class);
				
				
			  //	job.setNumReduceTasks(tasks);  // 设置  reduce任务个数的任务
				
			    FileInputFormat.addInputPath(job, new Path("/usr/input/qq/"));
			    FileOutputFormat.setOutputPath(job, new Path("/usr/output/qq1"));
			    System.exit(job.waitForCompletion(true) ? 0 : 1);
			   
			    System.out.println("job run end");
				
			} catch (Exception e) {
				e.printStackTrace();
			}
	
	
	
	}

}

 

运行结果:

© 著作权归作者所有

共有 人打赏支持
粉丝 4
博文 162
码字总数 59007
作品 0
开发运营|微信营销的方式有哪些?

     微信营销的方式有哪些?想要开展微信营销,一定要先知道微信营销的方式有哪些?很多朋友都想要了解这些方式,小编搜集了一些资料,将会在本文为大家介绍~      第一招 内容为王 ...

公众开发运营官网
06/24
0
0
小程序如期而至,赶快看看有哪些好玩的小程序吧

1、如何激活微信小程序 首先,更新微信到最新版本。 你只有访问一个小程序之后,才会出现所谓的入口。打开微信,在第一个页面最上方搜索“QQ阅读”,选择搜索“朋友圈、公众号、文章等” 点击...

anda0109
2017/01/09
0
0
JEECG社区《微信小程序开发培训》视频

JEECG社区《微信小程序开发培训》视频 课 程: JEECG 微信小程序开发培训 讲 师: 周俊峰、张加强 开课时间: 2016年12月06日开课 ****************************...

Jeecg
2016/12/16
80
0
ShareSDK超级强大的社会化分享

主要功能: 1、支持分享到新浪微博、微信好友、微信朋友圈、QQ好友、腾迅微博、QQ空间、人人网、开心网、豆瓣、搜狐微博、网易微博、短信、邮件、打印、拷贝等,即将支持印象笔记、facebook、...

陈钢强
2013/03/26
1K
2
你有几个共同好友,如何查找?

类似QQ好友推荐,提示你们有几个共同好友,这个怎么算出来? 难道是先查出自己所有的好友,然后遍历好友的好友,然后计算出这些好友里面重复次数,次数是多少,就有多少个共同好友?感觉这种...

liangxiao
2012/10/28
4.1K
6
移动APP社会化分享组件--ShareSDK

介绍: ShareSDK是为iOS的APP提供社会化功能的一个组件,开发者只需10分钟即可集成到自己的APP中,它不仅支持如QQ、微信、新浪微博、腾讯微博、开心网、人人网、豆瓣、网易微博、搜狐微博、f...

刘丹liudan
2013/01/20
9.8K
4
Android集成最新ShareSDK V3.1.0第三方分享爬坑总结

一、前言 最近做了个项目,需要集成分享功能,距离上一个项目集成分享功能不到两个月,原以为分分钟可以搞定的事情,但是却花费了大半天功夫(简直就是浪费生命啊......),集成过程还是遇到了一...

EnjoyAndroid
2017/09/30
0
0
JEECG支付宝服务窗开发培训视频

JEECG支付宝服务窗开发培训视频 JEEWX 支付宝服务窗开发培训视频 讲师: 张加强 开课时间: 2016年12月06日开课 ************************************...

Jeecg
2016/12/09
34
0
微商推广引流秘笈—— 8 个高效的引流策略

不管做什么项目,销售任何产品,你都会发现推广是极其重要的,只有推广才能开发更多新客户,才能卖出更多产品,才能有更多利润。 这是永恒不变的商业定律,任何一个成功的微商,他都非常重视...

卢松松博客
2017/11/08
0
0
快速添加微信精准粉丝,并促成交的实操方法(附工具和话术)

在如今微信群、微信公众号营销效果越来越差的前提下,微信个人号营销更显得尤为重要。但是,很多人在实操的过程中,往往会遇到这样的问题:好友粉丝很难积累,更不知道如何积累精准目标客户人...

卢松松博客
03/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
44分钟前
1
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
1
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
1
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部