网上有很多hadoop例子,但是不难发现,即使是一个wordcount都有很多不一样的地方,我们不可能总拿着别人的例子跑,所以自己要总结出一套规范,让api即使更新也能马上适应过来。这里也以hadoop 专利分析作为炮灰
右键新建map/reduce项目,然后点击项目右键Mapper,Reducer,MapperReduce Driver 并且在MapperReduce Driver 里填上刚才新建的Mapper,Reducer的类名,建好后,并修改
MapperReduce Driver里的路径为args[0],args[1],然后Run AS 里选择RunConfiguration点击Javaapplication配置Arguments为:
hdfs://master:9000/user/input/file1.txt
hdfs://master:9000/user/aa
这种东西,这样一套规范就完成了
接下来,我们来对“专利分析”这个案例,一一进行分析

import java.io.IOException;import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;public class MapClass extends Mapper<LongWritable, Text, Text, Text> {public void map(LongWritable ikey, Text ivalue, Context context) throws IOException, InterruptedException {String[] citation = ivalue.toString().split(",");  context.write(new Text(citation[1]), new Text(citation[0]));  }
}
源文件类似这样
专利号    引用专利号
K1  ,   V1
K2  ,   V2
K3  ,   V3
K1  ,   V3

LongWritable ikey 代表的是文本中的每一行
ivalue代表的就是文本里的值
String[] citation = ivalue.toString().split(“,”);
就是对文本以逗号为分界的分割
context.write(new Text(citation[1]), new Text(citation[0]));
Context 是MapReduce任务运行的一个上下文,包含了整个任务的全部信息
上下文写入:键为引用专利号,值为专利号的map,键是唯一的,所以hadoop会自动将值何在一起,即:

专利号    引用专利号
V1     K1
V2     K2
V3     K3 k1
import java.io.IOException;import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;public class Reduce extends Reducer<Text, Text, Text, Text> {public void reduce(Text _key, Iterable<Text> values, Context context) throws IOException, InterruptedException {// process values  String csv = "";  for (Text val : values) {  if (csv.length() > 0) {  csv += ",";  }  csv += val.toString();  }  context.write(_key, new Text(csv)); }}
Text _key, Iterable<Text> values:
这里就是上面map分解后传给你的东西了即专利号    引用专利号V3       K3 k1String csv = "";  for (Text val : values) {  if (csv.length() > 0) {  csv += ",";  }  csv += val.toString();  }  context.write(_key, new Text(csv));
这里就是在value上加上逗号方便观察了
最后,这也是自动生成的代码。。。右键运行在hadoop选择你刚才配置的那个就可以了
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
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 Driver {public static void main(String[] args) throws Exception {Configuration conf = new Configuration();Job job = Job.getInstance(conf, "JobName");job.setJarByClass(Driver.class);job.setMapperClass(MapClass.class);job.setReducerClass(Reduce.class);// TODO: specify output typesjob.setOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);// TODO: specify input and output DIRECTORIES (not files)FileInputFormat.setInputPaths(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));if (!job.waitForCompletion(true))return;}}

hadoop 编程规范(hadoop专利分析)相关推荐

  1. 通达信 python插件选股_[转载]通达信插件选股(基于通达信插件编程规范的简单分析)...

    首先声明,鄙人是编程人员,不是股民.对选股概念了解甚少.本文仅作编程人员学习借鉴之用.不对选股理论进行探讨和解释. 以前有客户找我做过通达信插件选股的小任务,当时第一次接触面向接口(此类"接 ...

  2. Hadoop大数据--Mapreduce编程规范及入门示例

    Mapreduce是一个分布式的运算编程框架,核心功能是将用户编写的核心逻辑代码分布式地运行在一个集群的很多服务器上. Mapreduce的存在价值 (1)海量数据在单机上处理因为硬件资源限制,无法胜 ...

  3. hadoop编程:分析CSDN注册邮箱分布情况

    hadoop编程:分析CSDN注册邮箱分布情况 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:Ubuntu10.04 hadoop版本: ...

  4. 万法归宗之Hadoop编程无界限

    2019独角兽企业重金招聘Python工程师标准>>> 记录下,散仙今天的工作以及遇到的问题和解决方案,俗话说,好记性不如烂笔头,写出来文章,供大家参考,学习和点评,进步,才是王道 ...

  5. 第一章 Hadoop启动Shell启动脚本分析--基于hadoop-0.20.2-cdh3u1

    我的新浪微博:http://weibo.com/freshairbrucewoo. 欢迎大家相互交流,共同提高技术. 第一章 Hadoop启动Shell启动脚本分析 第一节 start-all.sh脚 ...

  6. 大数据处理和编程实践Hadoop

    Hadoop是Apache开源组织的一个分布式计算开源框架,在很多大型网站上都已经得到了应用,如亚马逊.Facebook和Yahoo等等.对于我来说,最近的一个使用点就是服务集成平台的日志分析.服务集 ...

  7. 走向云计算之Hadoop实际应用网站日志分析

    一.概述 网站日志分析是Hadoop应用的一个方向.那么什么是网站日志呢? 网站日志是记录web服务器接收处理请求以及运行时错误等各种原始信息的以.log结尾文件.通过网站日志可以清楚的得知用户在什么 ...

  8. 【Hadoop】基于Hadoop/Hbase/Hive的小型离线服务器日志分析应用

    ##1.项目简介 本项目主要设计一个基于Hadoop的日志分析系统.其中的日志数据主要来自于某系统开发测试期间的服务器访问日志数据(Tomcat),通过对这些日志数据利用正则表达式等技术手段进行处理, ...

  9. hadoop之slaves文件详细分析

    hadoop之saves文件详细分析(一) 注:所有操作基于hadopp-2.7.5,本篇文章主要涉及一些对于slaves文件之于hadoop平台的思考 首先大家都知道,要想配置一个完全分布式平台,首 ...

  10. Hadoop实战系列之MapReduce 分析 Youtube视频数据

    Hadoop实战系列之MapReduce 分析 Youtube视频数据 一.实战介绍 MapReduce 是 Hadoop 的计算框架. 在运行一个 MR 程序时,任务过程被分为两个阶段:Map 阶段 ...

最新文章

  1. 某短视频程序员吐槽:公司要求每天刷短视频的时长和绩效挂钩,这合理吗?网友:那某陌员工要按照奔现次数算绩效吗?...
  2. Git命令集之八——提交命令
  3. Volatile关键字的详解
  4. mac+修改+ssh文件夹权限_linux ,mac连接, git pull error, chmod修改文件的权限/chown修改文件和目录的所有者...
  5. 拖延的本质是逃避!| 今日最佳
  6. webpack+vue-cli 中proxyTable配置接口地址代理
  7. 小米手机将终结卡顿?未来所有机型将升级新MIUI
  8. 基于Servlet的技术问答网站系统实现(附源码)
  9. 分治-Strassen矩阵乘法
  10. matlab 矩阵jocobi迭代_计算方法实验指导书1 -
  11. SylixOS 缺页异常
  12. 计算机主页为什么打不开怎么办,主页被限制,打不开怎么办?
  13. 曼孚科技:7种常用的数据标注工具
  14. matlab仿真光学拍,MATLAB光学干涉实验的仿真研究
  15. 编写java程序计算梯形面积_学习练习 java面向对象梯形面积
  16. 论参加数学建模比赛的正确姿势
  17. TOF飞行时间深度相机介绍
  18. 为什么样本方差里面要除以(n-1)而不是n?
  19. 2021寒假MISC打卡DAY2
  20. ISE综合工具XST综合约束相关

热门文章

  1. Android手机使用笔记本流量上网(基于Android便携式WLAN热点)
  2. UMTS和GSM的架构(学习整理:LTE完全指南-LTE、LTE-Advanced、SAE、VolTE和4G移动通信)
  3. 中国第一政经博客 数学
  4. 怎么用计算机管理员删除文件,管理员权限删除,教您如何删除需要管理员权限的文件夹...
  5. 解析车辆VIN码识别(车架号识别)系统
  6. 用Python看穿马赛克!
  7. 『地铁交换机』地铁交换机作用
  8. 单细胞及空间转录组设计分析与机器学习在生物医学应用
  9. yolov5s-6.0网络模型结构图
  10. php怎么把图片设置为背景,ppt怎么把图片设为背景