大数据 (十)Hadoop-第一次使用eclipse&java&hadoop分析简单数据
来源:互联网 发布:十字绣制图软件 编辑:程序博客网 时间:2024/06/05 00:40
源码:http://download.csdn.net/detail/jintaohahahaha/9919467
一、打开eclipse
二、新建java项目mapreducer
三、项目下新建lib文件夹,导入hadoop相关jar,jar在源码中有
四、项目下建包,写如下三个类
1、WorldCountMapper.java
package com.zjt.mapreducer.data;import java.io.IOException;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.util.StringUtils;/** * 执行统计单词数量的map程序 * @author ZhangJintao * Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> * KEYIN ---- 输入数据的键 * VALUEIN ---- 输入数据的值 * KEYOUT ---- 输出数据的键 * VALUEOUT ---- 输出数据的值 */public class WorldCounteMapper extends Mapper<LongWritable, Text, Text, IntWritable>{@Override/** * 父类的map方法,循环调用 * 从split碎片段中每行调用一次 * 把该行所在下标为key,该行的值为value * 【功能:将单词以map输出】 */protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, IntWritable>.Context context)throws IOException, InterruptedException {String[] words = StringUtils.split(value.toString(), ' ');for (String w : words) {context.write(new Text(w), new IntWritable(1));}}}2、WorldCountReducer.java
package com.zjt.mapreducer.data;import java.io.IOException;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Reducer;public class WorldCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> {@Override/** * 循环调用 * 洗牌完毕分好组后,每组调用一次 * 【功能:计算单词出现次数】 */protected void reduce(Text arg0, Iterable<IntWritable> arg1,Reducer<Text, IntWritable, Text, IntWritable>.Context arg2) throws IOException, InterruptedException {int sum = 0 ;for(IntWritable i : arg1){sum += i.get();}arg2.write(arg0, new IntWritable(sum));}}3、RunJob.java
package com.zjt.mapreducer.data;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;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;/** * 执行方法 * @author ZhangJintao */public class RunJob {public static void main(String[] args) {Configuration config = new Configuration();try {FileSystem fs = FileSystem.get(config);Job job = Job.getInstance();//执行mapreducer任务job.setJarByClass(RunJob.class);job.setJobName("data");job.setMapperClass(WorldCounteMapper.class);job.setReducerClass(WorldCountReducer.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);FileInputFormat.addInputPath(job, new Path("/usr/input/"));Path outpath = new Path("/usr/input/data");if (fs.exists(outpath)) {fs.delete(outpath, true);}FileOutputFormat.setOutputPath(job, outpath);boolean f = job.waitForCompletion(true);if (f) {System.out.println("JOB 执行成功");}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}五、打jar包
六、上传测试数据
其中data.txt内容如下
hadoop hello worldhello hadoophbase zookeeper
六、运行程序
将我们打的jar上传至任何一台节点主机,远程登录节点主机,进入jar包所在目录,执行如下命令
hadoop jar wc.jar com.zjt.mapreducer.data.RunJob执行后,我们可以看到控制台会提示信息。
我们进入网页http://192.168.1.201:8088/cluster/apps后点击 Applications可以看到下图所示
执行完毕之后,在此进入eclipse
刷新后会发现多了如下几个文件夹和文件
通过结果文件可知,她帮我们统计出了data.txt中hadoop单词有两个、hbase有一个、hello有两个、world有一个、zookeeper有一个
阅读全文
0 0
- 大数据 (十)Hadoop-第一次使用eclipse&java&hadoop分析简单数据
- 大数据分析和 Hadoop
- 基于Hadoop大数据分析
- Hadoop 信息集成平台,让大数据分析更简单!
- 大数据分析:结合 Hadoop或 Elastic MapReduce使用 Hunk
- Java开发2.0:用Hadoop MapReduce进行大数据分析
- Java开发2.0:用Hadoop MapReduce进行大数据分析
- Java 开发 2.0: 用 Hadoop MapReduce 进行大数据分析
- Java 开发 2.0: 用 Hadoop MapReduce 进行大数据分析
- 大数据(一)--Hadoop
- 【大数据】搭建简单的Hadoop集群
- Hadoop入门:利用大数据分析能力
- 探索大数据分析和 Hadoop
- 大数据学习(二):Hadoop源码分析
- 确保Hadoop大数据安全的十大策略
- 使用Hadoop分析数据——简单案例java语言编程之MaxTemperature
- Hadoop大数据系列之一---Hadoop架构原理分析
- 大数据分析- 基于Hadoop/Mahout的大数据挖掘
- 使用Sublime编译C语言
- mysql 判断逻辑操作
- Dungeon Master
- HDU 2196-Computer(经典树形DP)
- DDR3中bank, 16bit和32bit等概念
- 大数据 (十)Hadoop-第一次使用eclipse&java&hadoop分析简单数据
- IO多路转接之epoll
- java实现简单的二叉树
- 根据数据库性别字段在前台自动显示性别
- Linux学习高级篇(五)
- hdu2178 猜数字(C语言
- OJ 141 --Linked List Cycle
- Linux下利用core dump文件调试
- UTD2202C示波器如何去测试纹波