Hadoop集群搭建记录 | 云计算[CentOS7] | 伪分布式集群 Master运行WordCount

简介: 写在前面step1 eclipse访问hadoopstep2 重启并配置eclipsestep3 新建Map/Reduce项目step4 复制粘贴代码step5 配置运行参数整个hadoop就到此结束啦

写在前面


本系列文章索引以及一些默认好的条件在传送门


step1 eclipse访问hadoop


首先需要明确eclipse安装目录,然后将hadoop-eclipse-plugin_版本号.jar插件放在安装目录的dropins下

5dd15288a7ff40bda082cbc2f60bea76.png

关于插件,可以通过博主上传到csdn的免费资源获取,链接

具体版本可以自己选择:


e53610f53d8c4fb79031ddb4efbfa897.png


step2 重启并配置eclipse


在eclipse界面中依次选择:Window→show view→other→MapReduce Tools/Map/Reduce Locations


18e4345898df49dbbf698235060b3512.png


然后在界面上会显示一个大象符号,如下图:

e2ea15a1925b4ede928078b00d21f673.png


点击大象符号,然后就会配置一个DFS Location

配置参数为:

f8ee1965f6ac47a2ae553f71e383e208.png


配置好后点击finish

然后会出现:

6fa9d84c2c45418892dc28a367944703.png


step3 新建Map/Reduce项目


在Eclipse中依次选择File→New→Other…→Map/Reduce Project→Next,

输入项目名TestWordCount,浏览并选择Hadoop路径/usr/local/hadoop,单击“Finish”按钮,则新建项目TestWordCount成功

新建包并在包下创建相应的类,具体项目结构如下:


40850cb235fb4948a79dd15800c2d43c.png


step4 复制粘贴代码


package wordCount;
import java.io.IOException;
import java.util.StringTokenizer;
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;
public class WordCount {
  public static class WordCountMapper extends Mapper<Object, Text, Text, IntWritable> {
    /**
     * 定义final 静态变量one,用来标示键值对<String,One>
     * 然后定义Text类型的变量来存储字符串
     */
    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 {
      StringTokenizer itr = new StringTokenizer(value.toString());
      while (itr.hasMoreTokens()) {//
        word.set(itr.nextToken());
        /**
         * 写入键值对
         */
        context.write(word, one);
      }
    }
  }
  public static class WordCountReducer 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();
    if (args.length != 2) {
      System.err.println("Usage: <in> <out>");
      System.exit(2); 
    }
    Job job = Job.getInstance(conf, "word count");
    job.setJarByClass(WordCount.class);
    job.setMapperClass(WordCountMapper.class);
    job.setCombinerClass(WordCountReducer.class);
    job.setReducerClass(WordCountReducer.class);
    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);
  }
}


step5 配置运行参数


启动hadoop集群后在终端写入:

hadoop fs -mkdir /tmp
hadoop fs -chmod -R 777 /tmp


Run→Run Configurations选项,以配置输入输出参数

大致为:

816cc543daa547cc9c001ee5e2cc002e.png


点击run直接跑

然后在左侧的目录下会显示文件夹:

cecfcde94c0844afbfaa7fe5f5fef97f.png


点进去看下part-r-00000文件就会发现,该文件存储结果:

1ff62be66023478a9cf557353f714b20.png


其中输入为:

fe0cc3669f494506ae7230f3d18e9c75.png


结果与预期一致,项目成功~


整个hadoop就到此结束啦

目录
相关文章
|
9月前
|
分布式计算 Hadoop Java
CentOS中构建高可用Hadoop 3集群
这个过程像是在一个未知的森林中探索。但当你抵达终点,看到那个熟悉的Hadoop管理界面时,所有的艰辛都会化为乌有。仔细观察,尽全力,这就是构建高可用Hadoop 3集群的挑战之旅。
354 21
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
638 6
|
SQL 分布式计算 Hadoop
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
220 3
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
253 3
|
11月前
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
577 79
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
356 2
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
764 4
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
620 2
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
523 1
|
存储 分布式计算 资源调度
两万字长文向你解密大数据组件 Hadoop
两万字长文向你解密大数据组件 Hadoop
672 11

相关实验场景

更多