当前位置: 首页 > wzjs >正文

成都网站制作哪家专业太原网络推广公司哪家好

成都网站制作哪家专业,太原网络推广公司哪家好,潍坊点睛做网站怎么样,java网站开发实例教程编写和运行第一个 Hadoop 程序是学习 Hadoop 的重要步骤。以下是一个经典的“WordCount”程序示例,它统计文本文件中每个单词出现的次数。我们将使用 Java 编写 MapReduce 程序,并在 Hadoop 集群上运行它。 一、WordCount 程序概述 WordCount 是 Hadoo…

编写和运行第一个 Hadoop 程序是学习 Hadoop 的重要步骤。以下是一个经典的“WordCount”程序示例,它统计文本文件中每个单词出现的次数。我们将使用 Java 编写 MapReduce 程序,并在 Hadoop 集群上运行它。

一、WordCount 程序概述

WordCount 是 Hadoop 的“Hello World”程序。它的基本逻辑如下:

  1. Mapper:读取输入文件,将每一行文本拆分为单词,并输出每个单词及其出现次数(初始为1)。
  2. Reducer:对每个单词的计数进行汇总,输出最终的单词频率。

二、编写 WordCount 程序

1. 创建 Java 项目

在本地开发环境中(如 IntelliJ IDEA 或 Eclipse)创建一个 Java 项目,并添加 Hadoop 的依赖库。你可以从 Hadoop 安装目录的 share/hadoop/commonshare/hadoop/mapreduce 中找到 JAR 文件。

2. 编写代码

以下是 WordCount 程序的完整代码:

import org.apache.hadoop.conf.Configuration;
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.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import java.io.IOException;public class WordCount {// Mapper 类public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> {private final static IntWritable one = new IntWritable(1);private Text word = new Text();public void map(Object key, Text value, Context context) throws IOException, InterruptedException {// 将输入的文本行拆分为单词String[] words = value.toString().split("\\s+");for (String w : words) {word.set(w);context.write(word, one); // 输出单词及其计数(初始为1)}}}// Reducer 类public static class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable> {private IntWritable result = new IntWritable();public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {int sum = 0;for (IntWritable val : values) {sum += val.get(); // 汇总每个单词的计数}result.set(sum);context.write(key, result); // 输出最终的单词及其计数}}// 主程序public static void main(String[] args) throws Exception {Configuration conf = new Configuration(); // 配置 Hadoop 环境Job job = Job.getInstance(conf, "word count"); // 创建一个作业job.setJarByClass(WordCount.class); // 设置作业的主类job.setMapperClass(TokenizerMapper.class); // 设置 Mapper 类job.setCombinerClass(IntSumReducer.class); // 设置 Combiner(可选)job.setReducerClass(IntSumReducer.class); // 设置 Reducer 类// 设置输出的键值对类型job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);// 设置输入和输出路径FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));System.exit(job.waitForCompletion(true) ? 0 : 1); // 等待作业完成}
}
3. 编译和打包

将代码编译并打包为 JAR 文件。假设你的项目名为 WordCount,可以使用以下命令:

javac -classpath /path/to/hadoop-common.jar:/path/to/hadoop-mapreduce-client-core.jar -d ./out WordCount.java
jar -cvf WordCount.jar -C ./out/ .

三、运行 WordCount 程序

1. 上传输入文件

将一个文本文件上传到 HDFS,作为输入数据。例如:

hdfs dfs -mkdir /input
hdfs dfs -put /path/to/your/input.txt /input
2. 运行程序

使用 Hadoop 命令运行 WordCount 程序:

hadoop jar WordCount.jar WordCount /input /output
  • WordCount.jar 是打包后的 JAR 文件。
  • WordCount 是主类的名称。
  • /input 是输入目录。
  • /output 是输出目录(运行前确保该目录不存在)。
3. 查看结果

运行完成后,查看输出结果:

hdfs dfs -cat /output/part-r-00000

四、程序解释

  1. Mapper

    • 读取输入的文本行,将其拆分为单词。
    • 对每个单词输出键值对(单词,1)。
  2. Reducer

    • 对每个单词的计数进行汇总。
    • 输出最终的单词及其出现次数。
  3. Combiner(可选):

    • 在 Mapper 节点上对局部结果进行汇总,减少传输到 Reducer 的数据量。

五、常见问题

  1. 输入文件格式

    • 输入文件应为纯文本文件,每行包含一段文本。
  2. 输出目录

    • 输出目录不能预先存在,否则 Hadoop 会报错。
  3. 依赖冲突

    • 确保编译时的 Hadoop JAR 文件版本与集群中的 Hadoop 版本一致。

六、扩展

你可以尝试以下扩展:

  1. 优化性能:使用 Combiner 和 Partitioner。
  2. 处理更多文件:将多个文件放入输入目录。
  3. 自定义数据类型:使用 Hadoop 提供的其他数据类型(如 LongWritable)。

通过运行这个简单的 WordCount 程序,你可以熟悉 Hadoop 的 MapReduce 编程模型和运行流程。

http://www.dtcms.com/wzjs/60561.html

相关文章:

  • 同程网站建设分析五八精准恶意点击软件
  • 创新的购物网站建设爱站网关键词挖掘机
  • 江苏省住房城乡建设厅网站百度关键词代做排名
  • 做网络课堂的平台有哪些网站seo关键词优化推广
  • 3340网站建设与管理制作网站建设入门
  • 怎么做网赌网站西安百度竞价代运营
  • 外贸网站一站式服务2022拉新推广平台
  • 网站做网站seo主要做哪些工作
  • 做交友网站挣钱吗网站建设设计
  • 做设计去哪个网站找素材搜索引擎优化到底是优化什么
  • 网站备案号收回网络营销
  • 建设银行滇龙行网站seo网络推广企业
  • 465端口 WordPress标题优化
  • 海澜之家网站建设的计划如何制定会员营销方案
  • 网站建站的标准挖掘关键词爱站网
  • 怎样做网站收广告费网络营销方案设计
  • 大渡口区网站建设广告优化师发展前景
  • 烟台网站建设询问企汇互联专业网络营销有哪些推广方式
  • 建网站有什么好处今日nba比赛直播
  • 网站建设应该学什么软件南京今天重大新闻事件
  • 没有网站怎么做淘宝客seo搜索引擎实战详解
  • 中国三线建设网站国家中医药管理局
  • java中类似wordpress甘肃搜索引擎网络优化
  • 网上诉讼服务平台宁波seo网页怎么优化
  • 那些网站专门做棋牌推广的长沙关键词优化费用
  • 拼客多网站多少钱可以做seo排名优化培训网站
  • 天津网站建设公司推荐关键词优化软件
  • 网站优化心得成人职业技能培训班
  • 在线制作视频的网站做网站怎么赚钱
  • 莱特币做空 网站冯耀宗seo视频教程