1、创建maven项目

如果不懂配置maven请点击:传送门


2、在pom.xml写入架包配置文件

<dependencies><!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-client-common --><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-common</artifactId><version>2.8.4</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.8.4</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.8.4</version></dependency></dependencies>

3、创建源程序

src–>main–>java–>com–>test–>WordCount.java

WordCount.java

/ ***通过一项授权给Apache Software Foundation(ASF)*或更多贡献者许可协议。 查看公告文件*随本作品分发以获取更多信息*关于版权拥有权。 ASF许可此文件*根据Apache许可2.0版(以下简称“* “执照”); 除非合规,否则您不得使用此文件*带许可证。 您可以在以下位置获得许可的副本:** http://www.apache.org/licenses/LICENSE-2.0**除非适用法律要求或书面同意,否则软件*根据许可协议分发的内容是按“原样”分发的,*不作任何明示或暗示的保证或条件。*有关特定语言的管理权限,请参阅许可证*许可中的限制。* /package com.xxx;import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.MapReduceBase;
import org.apache.hadoop.mapred.Mapper;
import org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reducer;
import org.apache.hadoop.mapred.Reporter;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;/*** 这是一个示例Hadoop Map / Reduce应用程序。* 读取文本输入文件,将每一行分解为单词* 并计数。 输出是单词的本地排序列表,并且* 计算它们发生的频率。** 运行:bin / hadoop jar build / hadoop-examples.jar wordcount* [-m <i>地图</ i>] [-r <i>减少</ i>] <i>目录内</ i> <i>目录外</ i>*/
public class WordCount extends Configured implements Tool {/*** 计算每一行中的单词。* 于输入的每一行,将其分解为单词并将其作为* <b>单词</ b>,<b> 1 </ b>)。*/public static class MapClass extends MapReduceBaseimplements Mapper<LongWritable, Text, Text, IntWritable> {private final static IntWritable one = new IntWritable(1);private Text word = new Text();public void map(LongWritable key, Text value,OutputCollector<Text, IntWritable> output,Reporter reporter) throws IOException {String line = value.toString();StringTokenizer itr = new StringTokenizer(line);while (itr.hasMoreTokens()) {word.set(itr.nextToken());output.collect(word, one);}}}/*** 一个reducer类,该类仅发出输入值的总和。*/public static class Reduce extends MapReduceBaseimplements Reducer<Text, IntWritable, Text, IntWritable> {public void reduce(Text key, Iterator<IntWritable> values,OutputCollector<Text, IntWritable> output,Reporter reporter) throws IOException {int sum = 0;while (values.hasNext()) {sum += values.next().get();}output.collect(key, new IntWritable(sum));}}static int printUsage() {System.out.println("wordcount [-m <maps>] [-r <reduces>] <input> <output>");ToolRunner.printGenericCommandUsage(System.out);return -1;}/*** 字数映射/减少程序的主要驱动程序。* 调用此方法以提交地图/缩小作业。* @throws When there is communication problems with the job tracker.*/public int run(String[] args) throws Exception {JobConf conf = new JobConf(getConf(), WordCount.class);conf.setJobName("wordcount");// the keys are words (strings)conf.setOutputKeyClass(Text.class);// the values are counts (ints)conf.setOutputValueClass(IntWritable.class);conf.setMapperClass(MapClass.class);conf.setCombinerClass(Reduce.class);conf.setReducerClass(Reduce.class);List<String> other_args = new ArrayList<String>();for(int i=0; i < args.length; ++i) {try {if ("-m".equals(args[i])) {conf.setNumMapTasks(Integer.parseInt(args[++i]));} else if ("-r".equals(args[i])) {conf.setNumReduceTasks(Integer.parseInt(args[++i]));} else {other_args.add(args[i]);}} catch (NumberFormatException except) {System.out.println("ERROR: Integer expected instead of " + args[i]);return printUsage();} catch (ArrayIndexOutOfBoundsException except) {System.out.println("ERROR: Required parameter missing from " +args[i-1]);return printUsage();}}// Make sure there are exactly 2 parameters left.if (other_args.size() != 2) {System.out.println("ERROR: Wrong number of parameters: " +other_args.size() + " instead of 2.");return printUsage();}FileInputFormat.setInputPaths(conf, other_args.get(0));FileOutputFormat.setOutputPath(conf, new Path(other_args.get(1)));JobClient.runJob(conf);return 0;}public static void main(String[] args) throws Exception {int res = ToolRunner.run(new Configuration(), new WordCount(), args);System.exit(res);}
}

4、将WordCount.java 打包为jar文件

(1)基本配置


选择完后 Apply–>ok

(2)开始打包

Build–>Build Artifacts–> XXX.jar–> Build

(3)查看生成的jar文件

在文件夹 out–>artifacts–>WordCount_jar里面

5、运行

我这里将WordCount.jar 上传到 /usr/local/hadoop-jar 目录下了
运行命令
重要:程序名前一定要写 包名 这里是 com.test

yarn jar /usr/local/hadoop-jar/WordCount.jar com.test.WordCount /input/word.txt /output/01

6、结束

示例结束,如果想开发其他程序,可以自己另外编写java 文件,打包上传运行即可。
如有转载请标明出处,支持原创。
QQ交流学习群:779133600

hadoop程序开发--- Java相关推荐

  1. 选课微信小程序开发 java

    1.使用技术 java springboot mysql hibernate 微信小程序 2.功能介绍 后台管理 学生管理 课程管理 类型管理 选课管理 操作中心 管理员中心 导入导出学生 微信小程序 ...

  2. hadoop程序开发 --- python

    这里以统计单词为例 1 首先建立mapper.py mkdir /usr/local/hadoop-python cd /usr/local/hadoop-python vim mapper.py m ...

  3. Java微信小程序开发- 校园报修系统

    绪论 随着高校每年的扩大招生,学校人数越来越多,学校后勤报修管理的工作量也越水越繁重.使用传统的管理手段和方法,很难完成大量的信息分析和处理.因此,充分利用网络资源和信息化技术,建设一套基于校园网的学 ...

  4. PHP程序开发参考手册

    /**语句*/ //if语句--条件控制语句 <?php$num = 2011;if(($num%4)==0&&($num%100)!=0){echo "$num&qu ...

  5. java项目_好程序员Java分享从入门到服务端项目开发的过程

    好程序员Java分享从入门到服务端项目开发的过程,对于打算入门或者刚刚入门学习Java的人来说,刚开始接触这门学科,往往会觉得不知所措,也会觉得很迷茫.结合前人经验,就从入门到进阶对于Java的学习而 ...

  6. java程序员的大数据之路(2):创建第一个Hadoop程序

    环境 Ubuntu 16.04 + Hadoop 2.7.4 + Intellij idea 2017.2 + jdk 1.8 创建过程 新建工程 新建一个工程 输入工程名 可以随便给工程起一个名字, ...

  7. 开发Java,市值一度超过两千亿美元,造福无数程序员的Sun公司,也最终“陨落”...

    "那些疯狂到认为自己能够改变世界的人,才是真正能够改变世界的人." 这是乔布斯曾说过的话,也是很多技术大佬都会坚守的信念.最突出的表现则在于他们性格方面足够的特立独行,甚至是有些偏 ...

  8. java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)

    原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...

  9. 有简易通用权限管理后台的快速C# ASP.NET开发的例子应用程序卖给了曾长期开发JAVA银行程序的大哥...

    前几天,有一个已经有2年不做程序开发的大哥,购买了一套我的程序,其实这个大哥的水平也很厉害,但是由于有1-2年没做开发工作,以前的积累也都放弃了,现在可能是客户找他开发应用程序,要求的时间也比较短,所 ...

最新文章

  1. cpu和内存之间——地址映射
  2. IdentityServer4系列 | 资源密码凭证模式
  3. 7-7 六度空间 (30 分)(BFS遍历详解)(DFS最后一个点过不去)
  4. 计算几何 —— 欧拉公式
  5. 【转】Tag的创建和组织
  6. 字符设备驱动程序之poll机制(韦大仙)
  7. SpringBoot实战(六):Redis Pipeline 轻松实现百倍性能提升
  8. linux向上翻页_Linux下vim编辑器命令大全
  9. gpasswd 附属组管理,添加用户到附属组中
  10. 现代控制理论课程实验三:一阶倒立摆的LQR控制器设计
  11. android 记步功能实现,Android计步(简单Demo)
  12. 数据库原理实验六——ODBC/JDBC数据库编程
  13. amd cpu安装osx 10.9.2(同样适应intel构架)
  14. FineReport 创建报表模板
  15. 渗透测试、安服等面试资料
  16. PHP之实现 家谱树,子孙树
  17. (转载)Linux内核源代码情景分析---第四章 进程与进程调度
  18. 【电子产品】ThinkPad S5 Intel(R) Dual Band Wireless-AC 3165 网卡驱动莫名其妙挂掉
  19. 将十进制正整数m转换成k进制(2≤k≤9)数的数字输出
  20. iNavFlight之MSP DJI协议飞控端请求应答

热门文章

  1. php接收ajax转数组
  2. MySQL中INSERT IGNORE INTO和REPLACE INTO的使用
  3. 单寄存器加载与存储指令
  4. 《WinForm开发系列之控件篇》Item28 LinkView(暂无)
  5. java threetable,Java XWPFDocument.createTable方法代码示例
  6. 通过调用门进行有特权级变换的转移,详细注解 对pmtest5.asm解释很详细.
  7. 基于IOC的GUI框架设计与实现
  8. Mac下使用OpenCV
  9. MAC打开EXE文件的三大方法
  10. 腾讯面试:前 K 个高频元素