1)启动环境 

start-all.sh

2)产看状态

jps

0613 NameNode

10733 DataNode

3455 NodeManager

15423 Jps

11082 ResourceManager

10913 SecondaryNameNode

3)利用Eclipse编写jar


    1.编写     MapCal类


package com.mp;

import java.io.IOException;

import org.apache.hadoop.io.LongWritable;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Mapper;

public class MapCal extends Mapper<LongWritable, Text, Text, Text> {

@Override

protected void map(LongWritable lon, Text value, Context context)

throws IOException, InterruptedException {

String line = value.toString();

String[] peps = line.split("-");

// 键值对

context.write(new Text(peps[0]), new Text("s" + peps[1]));

context.write(new Text(peps[1]), new Text("g" + peps[0]));

}

}

    2.编写ReduceCal类

public class ReduceCal extends Reducer<Text, Text, Text, Text> {

@Override

protected void reduce(Text arg0, Iterable<Text> arg1, Context context)

throws IOException, InterruptedException {

ArrayList<Text> grands = new ArrayList<Text>();

ArrayList<Text> sons = new ArrayList<Text>();

// 把这些值写入集合

for (Text text : arg1) {

String str = text.toString();

if (str.startsWith("g")) {

grands.add(text);

} else {

sons.add(text);

}

}

// 输出

for (int i = 0; i < sons.size(); i++) {

for (int j = 0; j < grands.size(); j++) {

context.write(grands.get(i), sons.get(j));

}

}

}

}

    3. 编写Jobrun类


public class RunJob {

// 全限定名

public static void main(String[] args) {

Configuration conf = new Configuration();

// 本地多线程模拟执行。

// conf.set("fs.defaultFS", "hdfs://node3:8020");

// conf.set("mapred.jar", "C:\\Users\\Administrator\\Desktop\\wc.jar");

try {

FileSystem fs = FileSystem.get(conf);

Job job = Job.getInstance(conf);

job.setJobName("wc");

job.setJarByClass(RunJob.class);

job.setMapperClass(WordCountMapper.class);

job.setReducerClass(WordCountReduce.class);

job.setMapOutputKeyClass(Text.class);

job.setMapOutputValueClass(IntWritable.class);

// job 输入数据和输出数据的目录

FileInputFormat.addInputPath(job, new Path("/word.txt"));

Path outPath = new Path("/output/wc2");// job执行结果存放的目录。该目录在执行前不能存在。

if (fs.exists(outPath)) {

fs.delete(outPath, true);

}

FileOutputFormat.setOutputPath(job, outPath);

boolean f = job.waitForCompletion(true);

if (f) {

System.out.println("任务执行成功!");

}

} catch (Exception e) {

e.printStackTrace();

}

}

}



4)导出jar包.

5)通过ftp上传jar到linux目录

6)运行jar包

hadoop jar shuju.jar   com.mc.RunJob   /     /outg


7)如果map和reduce都100%



Shuffle Errors

BAD_ID=0

CONNECTION=0

IO_ERROR=0

WRONG_LENGTH=0

WRONG_MAP=0

WRONG_REDUCE=0

File Input Format Counters

Bytes Read=45

File Output Format Counters

Bytes Written=18


表示运行成功!!

8)产看结果

hadoop fs -tail  /outg/part-r-00000

转载于:https://blog.51cto.com/ictedu/1917906

MapReduce :通过数据具有爷孙关系的结果相关推荐

  1. 17.大数据---MapReduce实现共同好友(好友关系图实现)

    MapReduce实现共同好友(好友关系图实现-倚天屠龙记关系) 背景 如今大多数的社交网站都有提供的共同好友的服务,可以帮助与好友之间共享图片,消息,视频 博客的好友列表数据,冒号前是一个用户,冒号 ...

  2. 大数据与Java的关系

    随着2017年大数据各种应用的发展,大数据的价值得以充分的发挥,大数据已在企业.社会各个层面都成为重要的手段,数据已成为新的企业战略制高点,也是各个企业争夺的新焦点.那么我们一直在说着的大数据究竟是什 ...

  3. Vue 组件传值通信、父子组件、爷孙组件传值、方法调用

    组件传:vue子组件改变父组件中data的值_mldwyy的博客-CSDN博客_子组件修改父组件data 参考 https://www.cnblogs.com/lianxisheng/p/109073 ...

  4. vue中如何优雅实现爷孙组件的数据通信($attrs/$listeners)

    $attrs和 $listeners如何使用呢? $attrs是用来将数据从爷组件传递给孙组件的.(理解为之前的父传子) $listeners是用来从孙组件中触发爷组件中事件的.(理解为之前的子传父) ...

  5. vue学习(1)vue3/2下的 父子/爷孙组件间方法调用

    我这里只写父子/爷孙组件间方法调用(传值的那啥emit,on, eventbus我就不在这里写了) vue2中的写法 爷组件控制孙组件的锚点跳转(父子组件间方法调用类似) // 孙组件 <tem ...

  6. 文件夹中是微信的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友关系是单向的),参照笔记,求出哪些人两两之间有共同好友,及他俩的共同好友都有谁?

    题目 文件夹中是微信的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友关系是单向的),参照笔记,求出哪些人两两之间有共同好友,及他俩的共同好友都有谁? 本题声明: 1.采用Lin ...

  7. 组件通信、传值(父子、爷孙、多层级)(prop、$emit、provide、inject)(vue)

    问题: 组件之间的通信无非就那种:兄弟组件间.父子组件间.爷孙(多层级间),兄弟组件之间通信我前面的文章已经讲过(点击此链接: 兄弟组件:(38条消息) 兄弟组件通信(vue-bus)(vue)_秃秃 ...

  8. Vue组件间的通信【子传父,父传子,同级传递,爷孙传递】

    Vue组件间的通信 引出问题 vue一个重要的思想就是组件化开发,说到组件化开发,提高结构样式行为的复用性,组件写好了,但组件间之间数据如何传递,就成了一个问题- vue 组件之间是可以相互嵌套的,就 ...

  9. 数据治理展示血缘关系的工具_Nebula Graph 在微众银行数据治理业务的实践

    本文为微众银行大数据平台:周可在 nMeetup 深圳场的演讲这里文字稿,演讲视频参见:B站 自我介绍下,我是微众银行大数据平台的工程师:周可,今天给大家分享一下 Nebula Graph 在微众银行 ...

  10. MapReduce的数据去重功能

    实验材料及说明 现有某电商网站用户对商品的收藏数据,记录了用户收藏的商品id以及收藏日期,文件名为buyer_favorite.buyer_favorite包含:买家id,商品id,收藏日期这三个字段 ...

最新文章

  1. 国家智能计算机研究开发中心 地址,油藏数值模拟-国家智能计算机研究开发中心.PDF...
  2. 【行业进展】谷歌4大AI黑科技部门,你可知
  3. HRBUST 1909——理工门外的树——————【离线处理,差分前缀和】
  4. JRE里居然隐藏了一个自带的js engine
  5. Codeforces Round #709 (Div. 1, based on Technocup 2021 Final Round) A. Basic Diplomacy
  6. jquery实现单击div切换背景,再次单击回到原来样式
  7. ios 给网页传值_iOS开发—页面传值汇总
  8. 油猴脚本(Tampermonkey)的安装和使用小结
  9. AD中使用Net Label时,编译时为什么总是Floating。出现的原因。
  10. DICOM医学图像处理:浅析SWF、WML、SPS、MPPS
  11. 美团外卖开放平台对接经验总结(一)
  12. 计算机网络笔试面试常考
  13. 【电力系统】基于凸松弛算法的电力市场策略(Matlab代码实现)
  14. 史上最全图文精美排版技巧
  15. ul、li显示图片标记
  16. 【C#】加加和减减、复合赋值运算符、一元二元运算符、关系运算符、bool类型
  17. 项目管理五大过程与十大知识领域
  18. IIS 7.5 以下版本 配置多域名同ip SSL 网站
  19. PB 金额小写转换成大写
  20. python中的object是什么意思_在Python中使用’@ patch.object’和’with patch.object’有什么区别?...

热门文章

  1. 根据自身工作经验总结的一个工作问题解决思路
  2. 如何使用Java读写系统属性?
  3. eclipse不格式化注释
  4. zend framework入门教程实践
  5. JHipster中文官网
  6. Swift3.0朝圣之路-Then协议库-绝妙的初始化方式
  7. 安装Electron
  8. leetcode 367 Valid Perfect Square
  9. cocos2dx3.2升级Android5的坑
  10. 使用数据绑定实现多窗口间的数据同步