下面是WordCount.java类
  1. package com.ll;
  2. import java.io.IOException;
  3. import java.util.Iterator;
  4. import java.util.StringTokenizer;
  5. import org.apache.hadoop.fs.Path;
  6. import org.apache.hadoop.io.IntWritable;
  7. import org.apache.hadoop.io.LongWritable;
  8. import org.apache.hadoop.io.Text;
  9. import org.apache.hadoop.mapred.FileInputFormat;
  10. import org.apache.hadoop.mapred.FileOutputFormat;
  11. import org.apache.hadoop.mapred.JobClient;
  12. import org.apache.hadoop.mapred.JobConf;
  13. import org.apache.hadoop.mapred.MapReduceBase;
  14. import org.apache.hadoop.mapred.Mapper;
  15. import org.apache.hadoop.mapred.OutputCollector;
  16. import org.apache.hadoop.mapred.Reducer;
  17. import org.apache.hadoop.mapred.Reporter;
  18. import org.apache.hadoop.mapred.TextInputFormat;
  19. import org.apache.hadoop.mapred.TextOutputFormat;
  20. public class WordCount {
  21. public static class Map extends MapReduceBase implements
  22. Mapper<LongWritable, Text, Text, IntWritable> {
  23. private final static IntWritable one = new IntWritable(1);
  24. private Text word = new Text();
  25. public void map(LongWritable key, Text value,
  26. OutputCollector<Text, IntWritable> output, Reporter reporter)
  27. throws IOException {
  28. String line = value.toString();
  29. StringTokenizer tokenizer = new StringTokenizer(line);
  30. while (tokenizer.hasMoreTokens()) {
  31. word.set(tokenizer.nextToken());
  32. output.collect(word, one);
  33. }
  34. }
  35. }
  36. public static class Reduce extends MapReduceBase implements
  37. Reducer<Text, IntWritable, Text, IntWritable> {
  38. public void reduce(Text key, Iterator<IntWritable> values,
  39. OutputCollector<Text, IntWritable> output, Reporter reporter)
  40. throws IOException {
  41. int sum = 0;
  42. while (values.hasNext()) {
  43. sum += values.next().get();
  44. }
  45. output.collect(key, new IntWritable(sum));
  46. }
  47. }
  48. public static void main(String[] args) throws Exception {
  49. JobConf conf = new JobConf(WordCount.class);
  50. conf.setJobName("wordcount");
  51. conf.setOutputKeyClass(Text.class);
  52. conf.setOutputValueClass(IntWritable.class);
  53. conf.setMapperClass(Map.class);
  54. conf.setCombinerClass(Reduce.class);
  55. conf.setReducerClass(Reduce.class);
  56. conf.setInputFormat(TextInputFormat.class);
  57. conf.setOutputFormat(TextOutputFormat.class);
  58. FileInputFormat.setInputPaths(conf, new Path(args[0]));
  59. FileOutputFormat.setOutputPath(conf, new Path(args[1]));
  60. JobClient.runJob(conf);
  61. }
  62. }

使用Linux命令行编译java代码,并生成jar包
  1. mkdir wordcount_classes
  2. javac -classpath ${HADOOP_HOME}/hadoop-${HADOOP_VERSION}-core.jar -d wordcount_classes/ WordCount.java
  3. jar -cvf /usr/joe/wordcount121.jar -C wordcount_classes/ .
说明:
  • javac :用于编译java--->class文件;
  • -classpath:后面指定依赖的jara包存储的位置;
  • -d:指定输出目录;




Linux下编译java并生成jar包的更多相关文章

  1. 在Linux下运行引入了外部jar包的java程序

    如图:H.java里引入了commons-io-2.2.jar 代码如下: import org.apache.commons.io.IOUtils; public class H{ public s ...

  2. java之生成jar包

    Java编写的application程序是否能够最终形成一个类似于exe一样的可执行文件,难道就只能用命令行运行?------------------------------------------- ...

  3. java class生成jar包(转)

    进入dos操作符窗口cd进入要打成jar包的class文件所有文件夹目录jar cvf [生成jar的名称.jar] [列出class文件] //若有多个,以空隔隔开 如:一.操作零散的单个或几个cl ...

  4. JAVA记录-生成jar包方法

    方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, Manifest-Version: 1.0 Class-Path: lib/commons-cod ...

  5. Linux下运行scala语言的jar包

    1.新建project 2.打包 3.linux下运行jar包 #First.jar为jar包名,Test为主类名 [root@FI-2 Desktop]# spark-submit First.ja ...

  6. Linux下 nohup后台运行springboot jar 包时,使用指定的 application.yml配置

    jar 包启动时指定配置文件 application.yml nohup java -jar -Dserver.port=8080 wx-member-card-0.0.1-SNAPSHOT.war ...

  7. java自动生成jar包工具

    jar -cfe Main.jar com.xjq.test.Main com/xjq/test/Main.class jar -cmef manifest.mf com.xjq.test.Main ...

  8. Linux下运行java项目

    最近初步接触了linux,感觉很有新鲜感.之前在windows下干过的事情也便想到在linux环境下实现一下.正好手头在编java,就想既然java可以在windows的DOS操作下运行,是不是也可以 ...

  9. Linux下执行Java程序报错

    在linux下编译java程序,执行javac编译生成class文件时,在centos7终端输入如,javac hello.java    会提示未找到指令,但用java -verison测试环境变量 ...

随机推荐

  1. apt-get 的常用使用说明

    API神命令: apt-get -h >>help.txt apt 1.0.10.2ubuntu1,用于 amd64 体系结构,编译于 Oct 5 2015 15:55:05用法: apt ...

  2. Kubuntu麦克风音频无声音

    前段时间买了新本,装了双系统,win8和kubuntu 14.04,使用的过程感觉都不错,因为平时玩游戏看视频是用win8,但最近打算在kubuntu上听音乐时,发现音频没有声音,麦克风也没有声音,这 ...

  3. C++ 中的C_str()函数用法

    语法: const char *c_str(); c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过 ...

  4. CentOS6下搭建OpenVPN服务器

    • OpenVPN简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件.使用OpenVPN可以方便地在家庭.办公场所.住宿酒店等不同网 ...

  5. HTTP详解(1)-工作原理

    出处 http://blog.csdn.net/hguisu/article/details/8680808#t0 1. HTTP简介 HTTP协议(HyperText Transfer Protoc ...

  6. install usb serial

    Install driver for USB-UART bridge converter on Linux Ubuntu12.04 Ubuntu下USB转串口芯片驱动程序安装,支持cp210x,pl2 ...

  7. tomcat 启动时内存溢出

    在tomcat_home/bin目录下找到catalina.bat,用文本编辑器打开,加上下面一行: set JAVA_OPTS= -Xms1024M -Xmx1024M -XX:PermSize=2 ...

  8. JavaWeb学习记录(四)——日期和数字的格式转换

    一.Date转为String (1) public class DateUtil {    private static SimpleDateFormat sdf = new SimpleDateFo ...

  9. HDU-4614 Vases and Flowers (线段树区间更新)

    题目大意:有n个花瓶,每个花瓶中只能放一朵花.两种操作,一种是从A开始放F朵花,如果有的花瓶中已经有花则跳过这个花瓶,往下一个花瓶放:第二种是将区间[A,B]之间花瓶中的花清空.如果是第一种操作,输出 ...

  10. Python笔记本

    Python 的主提示符( >>> )和次提示符( ... ).主提示符是解释器告诉你它在等你输入下一个语句,次提示符告诉你解释器正在等待你输入当前语句的其它部分. 下划线(_)在解 ...