# 大数据实验二实验报告
任昌骏 2021211180
## 实验描述
在实验中使用`IDEA`构建大数据工程,通过Java编写程序并通过集群运行,完成单词计数的任务。首先,在本地上完成`WordCount`工程的创建和程序的编写;然后将程序打包之后上传到之前搭建的`hadoop`集群中运行。
## 实验目的
1. 了解如何使用`IDEA`构建大数据工程
2. 熟悉使用Java语言编写大数据程序
3. 了解`MapReduce`的工程原理
4. 掌握如何在集群上运行`hadoop`程序
## 实验环境
`Hadoop`环境为使用`Docker`搭建的`Hadoop 2.7.7`环境,基础系统镜像为`archlinux`。使用`hdfs dfsadmin -report`确保集群运行正确。
![image-20240515162247831](实验二实验报告/image-20240515162247831.png)
使用的`JDK`版本为`1.8.0_412`,`IDEA`版本为2024.1.1。
## 实验步骤
### 创建工程并编写代码
在`IDEA`中创建`Maven`工程,添加相关的依赖并创建`log4j.xml`配置文件。创建本次实验中的主类`WordCount`,并编写对应的逻辑代码。
```java
package top.rrricardo;
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 org.apache.hadoop.util.GenericOptionsParser;
import java.io.IOException;
import java.util.StringTokenizer;
public class WordCount {
public static class TokenizerMapper extends Mapper