当前位置:   article > 正文

eclipse连接Hadoop并实现词频统计(大数据分析)_java词频分析hadoop

java词频分析hadoop

1、简介

Eclipse是一个集成开发环境(IDE),包含一个基工作区和定制环境的可扩展插件系统。大部分使用 Java 编写,Eclipse 可以用来开发应用程序。

通过各种插件,Eclipse 也可以用于其他编程语言开发应用程序:Ada、ABAP、C、C++、COBOL、 Fortran、Haskell、 JavaScript、Lasso、Natural、Perl、 PHP、 Prolog、 Python、Ruby、Scala、Clojure、 Groovy、Scheme 和 Erlang。它也可以用来开发Mathematica软件包。

开发环境包括 Eclipse Java 开发工具(JDT)支持 Java与Scala,Eclipse CDT C / C + +和Eclipse PDT PHP,等等。

eclipse-linux百度云下载链接,提取码(fm01)

2、解压安装eclipse

在home下创建文件夹eclipse—bag(这是我根据自己的习惯创建的,文件路径以及文件夹名根据自己的需求自行调整)
在这里插入图片描述
打开命令行,将桌面的压缩包移动到eclipse-bag文件夹下:

mv eclipse-jee-luna-SR2-linux-gtk-x86_64.tar /home/hadoop/eclipse-bag
  • 1

这里插入一下,当你不确定你的文件所属路径时,右键,点击Properties,即可查看文件所属路径
在这里插入图片描述

然后切换到该目录

cd /home/hadoop/eclipse-bag
  • 1

将压缩包进行解压

tar -zxvf eclipse-jee-luna-SR2-linux-gtk-x86_64.tar
  • 1

效果如下
在这里插入图片描述

为eclipse创建快捷方式并发送到桌面,方便以后打开

ln -s /eclipse-bag/eclipse/eclipse /home/hadoop/Desktop
  • 1

效果如图:
快捷方式

3、安装Hadoop插件

Hadoop插件百度云下载链接,提取码(fm01)

直接将下载好的插件复制到eclipse,即/home/hadoop/exlipse-bag/eclipseplugins路径下,将插件拖入这个目录后打开eclipse,出现下图红框内文件夹即说明成功!
在这里插入图片描述

4、配置Hadoop

点击windows–>Preferences
在这里插入图片描述
选择Hadoop的安装目录,点击右下角的Apply and Close关闭对话框
在这里插入图片描述
添加Map/Reduce视图,点击最上方的Window—>Perspective—>Open Perspective—>Other,
在这里插入图片描述

找到Map/Reduce后选择点击OK
在这里插入图片描述

此时页面底部效果如图:
在这里插入图片描述

5、连接Hadoop

右键选择New Hadoop location
在这里插入图片描述
这里边需要填写三个空,locatio name可以根据需求自行决定,左侧port端口是配置yarn的端口号,没有配置可以按照默认的;右侧port端口号是配置hadoop时coresite.xml文件中配置的端口号,一般应该9000.
在这里插入图片描述
Host那里默认的应该是localhost,可以不改,当然这是在伪分布的前提下,如果不是伪分布的话就需要在Host中填写节点主机ip

配置完成之后,可以在Eclipse的左侧视图中点开DFS Locations查看你的HDFS文件系统,以后可以直接在这里查看HDFS的文件,而不需要通过命令行进行控制

在这里插入图片描述
之后打开命令行,使用 HDFS,首先需要在 HDFS 中创建用户目录:

cd /home/hadoop/local/hadoop
./bin/hdfs dfs -mkdir -p /user/hadoop
  • 1
  • 2

创建用户目录之后,在目录下创建输入文件夹

./bin/hdfs dfs -mkdir input
  • 1

接着将 我这里直接右键点击**upload files
to DFS…**上传了Hadoop安装目录下的README.txt文件作为输入文件复制到分布式文件系统中的input文件夹中
在这里插入图片描述

当然上述创建用户目录与input文件夹也可以直接通过右键创建文件夹实现

6、创建Map/Reduce项目

在File中new下选择Project,找到Map/Reduce Project点击Next
在这里插入图片描述
为项目名创建个名字,我这里用的是myfirst,之后点击Next就成功创建了一个Map/Reduce项目
在这里插入图片描述

7、运行WordCount实现词频统计

右键myfirst项目,依次点击new——>class,创建一个名为WordCount的文件
在这里插入图片描述

在这里插入图片描述

之后点击finish,将下列代码复制到其中,

package myfirst;

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 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> <out>");
      System.exit(2);
    }

    Job job = Job.getInstance(conf);
    job.setJarByClass(WordCount.class);
    job.setMapperClass(TokenizerMapper.class);
    job.setCombinerClass(IntSumReducer.class);
    job.setReducerClass(IntSumReducer.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
    FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }

  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);
    }
 }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70

之后右键该java文件,依次选择Run as–>Run configurations…
在这里插入图片描述
打开之后切换到Arguments那一栏,输入input output,其中
(input为DFS文件系统中hadoop下的input文件夹,output为结果输出的文件夹,output必须不存在,如果已经存在则删除,否则会出错)
在这里插入图片描述
之后点击右下角Run即可开始运行
在这里插入图片描述
运行过程
在这里插入图片描述
(9)查看运行结果

运行结束后,hadoop文件夹右键刷新,会出现一个output文件夹
在这里插入图片描述
双击output文件夹打开,点击par-r-00000文件,查看结果
在这里插入图片描述
词频统计完成!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/337578
推荐阅读
相关标签
  

闽ICP备14008679号