Windows10安装配置Hadoop以及用eclipse运行WordCount程序

Windows10安装配置Hadoop以及用eclipse运行WordCount程序

一、Windows环境下hadoop安装和配置

1.下载Hadoop

选择一个版本下载

http://www.apache.org/dyn/closer.cgi/hadoop/common

下载完后进行解压,这里我是解压到D:/Develop/Hadoop/hadoop-3.2.1/hadoop-3.2.1

2.原版的Hadoop不支持Windows系统,需要修改一些配置方便在Windows上运行

将所需文件hadooponwindows-master.zip 解压

复制解压后的bin文件和etc文件到hadoop-3.2.1文件中,并替换原有的bin和etc文件

3.配置Hadoop的环境变量

①新建变量名:JAVA_HOME

输入路径:D:\jdk1.8 (你的jdk所在位置)

在path中最前面加上:%JAVA_HOME%\bin;

②新建变量名:HADOOP_HOME

输入路径:D:/Develop/Hadoop/hadoop-3.2.1/hadoop-3.2.1

在path中最前面加上:%HADOOP_HOME%\bin;

4. 确认hadoop配置的jdk的路径

在hadoop-3.2.1\etc\hadoop找到hadoop-env.cmd

右键用一个文本编辑器打开

找到 set JAVA_HOME=C:\PROGRA~1\Java\jdk1.7.0_67

将C:\PROGRA~1\Java\jdk1.7.0_67 改为 D:\jdk1.8(在环境变量设置中JAVA_HOME的值)

(如果路径中有“Program Files”,则将Program Files改为 PROGRA~1

5.配置好上面所有操作后,win+R 输入cmd打开命令提示符,然后输入hadoop version,按回车,如果出现如图所示结果,则说明安装成功
在这里插入图片描述

6.修改hadoop核心配置文件

在hadoop-3.2.1\etc\hadoop中找到以下几个文件,复制内容到文件里面,如果文件里面已经有相同的,则不用复制

①打开 hadoop-3.2.1/etc/hadoop/core-site.xml, 复制下面内容粘贴到最后并保存

<configuration>
<property>       
<name>fs.defaultFS</name>       
<value>hdfs://localhost:9000</value>   
</property>
</configuration>

打开 hadoop-3.2.1/etc/hadoop/mapred-site.xml, 复制下面内容粘贴到最后并保存

<configuration>   
<property>       
<name>mapreduce.framework.name</name>       
<value>yarn</value>   
</property>
</configuration>

打开 hadoop-3.2.1/etc/hadoop/hdfs-site.xml, 复制下面内容粘贴到最后并保存, 本例子是建立在 HADOOP_HOME的目录里(注意每个人的hadoop的路径不一样,这里要做修改)

<configuration>
<property>       
<name>dfs.replication</name>       
<value>1</value>   
</property>   
<property>       
<name>dfs.namenode.name.dir</name>       
<value>/D:\Develop\Hadoop\hadoop-3.2.1/namenode</value>   
</property>   
<property>       
<name>dfs.datanode.data.dir</name>     
<value>/E:/hadoop-2.7.3/datanode</value>   
</property>
</configuration>

打开 hadoop-3.2.1/etc/hadoop/yarn-site.xml,复制下面内容粘贴到最后并保存

<configuration>   
<property>       
<name>yarn.nodemanager.aux-services</name>       
<value>mapreduce_shuffle</value>   
</property>   
<property>       
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>       
<value>org.apache.hadoop.mapred.ShuffleHandler</value>   
</property>
</configuration>

7.启动Hadoop服务

创建三个文件夹

D:\Develop\Hadoop\hadoop-3.2.1\hadoop-3.2.1/tmp

D:\Develop\Hadoop\hadoop-3.2.1\hadoop-3.2.1/namenode

D:\Develop\Hadoop\hadoop-3.2.1\hadoop-3.2.1/datanode

格式化 HDFS

以管理员身份打开命令提示符

输入hdfs namenode -format执行

执行完后 namenode文件里会自动生成一个current文件,则格式化成功。

然后转到Hadoop-2.7.3\sbin文件下

输入start-all.cmd,启动hadoop服务

**输入JPS ** 可以查看运行的所有服务 (前提是java路径设置正确)

按照以上操作,在Windows环境下的Hadoop就安全安装好了。

二、在eclipse上运行WordCount程序

下载Hadoop连接eclipse的插件

在GitHub中下载对应版本的hadoop-eclipse-plugin-2.7.3.jar 插件,下载后放到eclipse的dropinsplugins文件夹里

下载CDH版本的Hadoop

http://archive.cloudera.com/cdh5/cdh/5下载,这里我存放在D:/hadoop-2.6.0-cdh5.4.2。

1.在Eclipse开发环境中创建JAVA工程

双击桌面上的Eclipse的快捷方式。首先选择菜单“File -> New -> Java Project”。再在“Project name:”文本框中输入工程名“WordCount”。最后点击“Next”按钮。

2. 添加编译依赖类库

首先点击选项卡“Libraries”。再点击“Add External JARs…”按钮添加编译依赖类库,分别添加目录“D:/hadoop-2.6.0-cdh5.4.2/share/hadoop/mapreduce1”、“D:/hadoop-2.6.0-cdh5.4.2/share/hadoop/mapreduce1/lib”和“D:/hadoop-2.6.0-cdh5.4.2/share/hadoop/common”下的所有JAR文件。最后点击“Finish”按钮。

3. 在工程中添加类

首先右击工程WordCount,选择菜单“New -> Class”。再在“Package:”文本框中输入包名“lab2.module11”,在“Name:”文本框中输入类名“WordCount”。最后点击“Finish”按钮。

4. 编写词频统计代码

在文件“WordCount.java”中输入以下代码。

package lab2.module11;

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;
import org.apache.hadoop.util.GenericOptionsParser;

public class WordCount {

  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 {
      StringTokenizer itr = new StringTokenizer(value.toString());
      while (itr.hasMoreTokens()) {
        word.set(itr.nextToken());
        context.write(word, one);
      }
    }
  }
  
  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();
    String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
    if (otherArgs.length < 2) {
      System.err.println("Usage: wordcount <in> [<in>...] <out>");
      System.exit(2);
    }
    Job job = new Job(conf, "word count");
    job.setJarByClass(WordCount.class);
    job.setMapperClass(TokenizerMapper.class);
    job.setReducerClass(IntSumReducer.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    for (int i = 0; i < otherArgs.length - 1; ++i) {
      FileInputFormat.addInputPath(job, new Path(otherArgs[i]));
    }
    FileOutputFormat.setOutputPath(job,
      new Path(otherArgs[otherArgs.length - 1]));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }
}

5.准备输入数据

在D盘下新建“input”文件夹,并将文件“D:/hadoop-2.6.0-cdh5.4.2/LICENSE.txt”复制到路径“D:/input/”下。

6. 配置运行参数

首先选择菜单“Run -> Run Configurations…”。再选择左侧的“Java Application”,并点击左上角的新建按钮。然后点击选项卡“Arguments”,并在文本框“Program arguments:”中输入作业的输入和输出路径D:\input D:\output。然后点击选项卡“Environments”,点击右侧按钮“New”,在弹出的对话框中文本框“Name:”中输入HADOOP_HOME,文本框“Value:”中输入D:\Develop\Hadoop\hadoop-3.2.1\hadoop-3.2.1;再一次点击右侧按钮“New”,在弹出的对话框中文本框“Name:”中输入PATH,文本框“Value:”中输入%PATH%;D:\Develop\Hadoop\hadoop-3.2.1\hadoop-3.2.1\bin

7.在Eclipse开发环境中测试程序

点击按钮“Run”,即可以在在Eclipse开发环境中运行程序,得到如下输出。
在这里插入图片描述

参考博客: https://blog.csdn.net/CSDN_fzs/article/details/78985586

发布了8 篇原创文章 · 获赞 0 · 访问量 138

猜你喜欢

转载自blog.csdn.net/Kingknot/article/details/103076169