Hadoop WordCount案例

简介: Hadoop WordCount案例

新建文件

  • java文件夹下的com.syh中新建一个java文件
    word新建文件.jpg
  • WordCount.java中写入
packagecom.syh;
importorg.apache.hadoop.conf.Configuration;
importorg.apache.hadoop.fs.FileSystem;
importorg.apache.hadoop.fs.Path;
importorg.apache.hadoop.io.LongWritable;
importorg.apache.hadoop.io.Text;
importorg.apache.hadoop.mapreduce.Job;
importorg.apache.hadoop.mapreduce.Mapper;
importorg.apache.hadoop.mapreduce.Reducer;
importorg.apache.hadoop.mapreduce.lib.input.FileInputFormat;
importorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
importjava.io.IOException;
/*** 词频统计*/publicclassWordCountApp {
/*** map 阶段*/publicstaticclassMyMapperextendsMapper<LongWritable, Text, Text, LongWritable> {
LongWritableone=newLongWritable(1);
@Overrideprotectedvoidmap(LongWritablekey, Textvalue, Contextcontext) throwsIOException, InterruptedException {
// 分Stringline=value.toString();
// 拆分String[] s=line.split(" ");
for (Stringword : s) {
// 输出context.write(newText(word), one);
            }
        }
    }
/*** reduce 阶段*/publicstaticclassMyReducerextendsReducer<Text, LongWritable, Text, LongWritable> {
@Overrideprotectedvoidreduce(Textkey, Iterable<LongWritable>values, Contextcontext) throwsIOException, InterruptedException {
longsum=0;
// 合并统计for (LongWritablevalue : values) {
// 求和sum+=value.get();
            }
context.write(key, newLongWritable(sum));
        }
    }
publicstaticvoidmain(String[] args) throwsException {
Configurationconfiguration=newConfiguration();
Jobjob=Job.getInstance(configuration, "wordcount");
job.setJarByClass(WordCountApp.class);
// 设置 map 相关参数FileInputFormat.setInputPaths(job, newPath(args[0]));
job.setMapperClass(MyMapper.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(LongWritable.class);
// 设置 reduce 相关参数job.setReducerClass(MyReducer.class);
job.setOutputKeyClass(MyReducer.class);
job.setOutputValueClass(LongWritable.class);
PathoutPath=newPath(args[1]);
FileSystemfileSystem=FileSystem.get(configuration);
if (fileSystem.exists(outPath)) {
// 删除文件fileSystem.delete(outPath, true);
System.out.println("输出路径已存在, 已被删除");
        }
FileOutputFormat.setOutputPath(job, outPath);
// 控制台输出详细信息// 输出:1  不输出:0System.exit(job.waitForCompletion(true) ?0 : 1);
    }
}

打包程序

  • Maven -> hadoopdemo -> Lifecycle -> package
    word打包程序.jpg
  • 点击package后开始打包
    word打包完成.jpg

上传jar包

  • 将打包好的jar拖入到虚拟机中
    word打包好的jar包.jpg
    word将jar放入虚拟机中.jpg
  • 通过shell方式将输出文件夹删除
hadoop fs -rm-r /output/wc
  • 上传到用户目录lib文件夹下进行操作
语法:
hadoop jar 主函数全限定名 输入 输出
示例:
hadoop jar hadoopdemo-1.0-SNAPSHOT.jar com.syh.WordCountApp hdfs://hadoop000:8020/WordCount.txt hdfs://hadoop000:8020/output/wc
  • 完成作业
    word完成作业.jpg

查看统计结果

  • 通过shell方式查看
hadoop fs -cat /output/wc/part-r-00000

word分析结果.jpg

相关文章
|
2月前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
100 3
|
2月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
46 2
|
2月前
|
分布式计算 资源调度 Hadoop
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
52 1
|
3月前
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
85 3
Hadoop集群配置https实战案例
|
7月前
|
存储 分布式计算 监控
Hadoop【基础知识 01+02】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
319 2
|
4月前
|
分布式计算 Hadoop Java
Hadoop_MapReduce中的WordCount运行详解
MapReduce的WordCount程序在分布式系统中计算大数据集中单词出现的频率时,提供了一个可以复用和可伸缩的解决方案。它体现了MapReduce编程模型的强大之处:简单、可靠且将任务自动分布到一个集群中去执行。它首先运行一系列的Map任务来处理原始数据,然后通过Shuffle和Sort机制来组织结果,最后通过运行Reduce任务来完成最终计算。因此,即便数据量非常大,通过该模型也可以高效地进行处理。
104 1
|
4月前
|
机器学习/深度学习 存储 分布式计算
Hadoop与机器学习的融合:案例研究
【8月更文第28天】随着大数据技术的发展,Hadoop已经成为处理大规模数据集的重要工具。同时,机器学习作为一种数据分析方法,在各个领域都有着广泛的应用。本文将介绍如何利用Hadoop处理大规模数据集,并结合机器学习算法来挖掘有价值的信息。我们将通过一个具体的案例研究——基于用户行为数据预测用户留存率——来展开讨论。
324 0
|
6月前
|
分布式计算 Hadoop Java
运行Hadoop自带的wordcount单词统计程序
运行Hadoop自带的wordcount单词统计程序
158 3
|
7月前
|
分布式计算 Hadoop
使用Hadoop ToolRunner 运行wordcount demo
使用Hadoop ToolRunner 运行wordcount demo
54 0
|
6月前
|
分布式计算 资源调度 Java
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
67 0

相关实验场景

更多