IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> hadoop配置eclipse的开发环境 -> 正文阅读

[大数据]hadoop配置eclipse的开发环境

hadoop配置eclipse的开发环境

一.前言

由于大三学习需要,而且网上的教程都有点模糊,导致我走了不少弯路,因此我写下这篇博客,本文仅供参考,如果有不足之处,还望指出。

二.安装eclipse

1.下载eclipse jee neon版

这里附上下载链接,当然你也可以前往官网自行下载:

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/neon/1a/eclipse-jee-neon-1a-linux-gtk-x86_64.tar.gz

2.解压并安装eclipse

命令行解压命令,我这里选择的是解压到home目录下面:

tar -zxvf eclipse-jee-neon-1a-linux-gtk-x86_64.tar.gz  -C /home

解压完成后可以根据需要在桌面创造快捷方式。方法如下:

我这里的eclipse文件在home目录下,所以打开home目录下的eclipse文件夹,选中eclipse,make link,创建完的快捷方式可以移动到桌面上。

image-20210930175249660

3.下载与eclipse的jar包

  • 下载的jar包要求Linux系统一致、hadoop版本一致、需与eclipse匹配,这里我安装的eclipse是2.6.0版本的,下载完后把jar包移动到eclipse的plugins目录下,我们直接用命令行操作:

    cp hadoop-eclipse-plugin-2.6.0.jar /home/eclipse/plugins
    
  • 现在可以打开eclipse了,我打开eclipse,弹出一个启动的选项,我们直接点击ok.

    image-20210929113002122

  • 在eclipse图形界面中点击左上角菜单上Windows 工具栏—>选择show view—>others,如图:

image-20210929113157300

  • (1)点击Window ----->Perspective----->open Perspective 选择Map/Reduce

    image-20210930175319782

  • 完成以上操作后我们可以得到以下界面:我们点击右下角的大象,new hadoop location.

    image-20210930175342746

  • 接下来的步骤就比较重要了,我在这踩了一点坑,归根结底还是有些教程写的比较模糊,并没有说明以下的配置的意思,我在这里大概的整理了下,location name:填写一个名字,我这里填写exam1 host:主节点的IP地址, 左边的port 默认 , 右边的port 填写core-site.xml文件里面的hdfs端口号,我这里设置的8020

    image-20210930182259671

  • 创建完成后我们看到以下界面,折叠的部分依次点开就可以了:

    image-20210930183321568

  • 然后创建项目,map/reduce项目

image-20210930183938660

image-20210930183955147

image-20210930184054681

  • 我们可以看到这里相应的包也导入了进来,但是我们还有一些hdfs的包还没导入进来,我们接着导入hdfs操作的包,操作如下:

    image-20210930184320701

image-20210930184507515

image-20210930184544550

  • 我们点击到如下目录进行导入包,/home/hadoop/hadoop/share/hadoop/common,导入第一个包;/home/hadoop/hadoop/share/hadoop/common/lib导入所有包 ; /home/hadoop/hadoop/share/hadoop/hdfs的一个包,如图中所示。/home/hadoop/hadoop/share/hadoop/hdfs/lib的所有包。导入完所有的包后记得apply。

    image-20210930184719703

    image-20210930184958111

image-20210930184942382

image-20210930185109732

三.eclipse的操作与实验

1.读单词

配置操作中的输入输出,达到测试的目录

1)下面,我给你这样一段代码:注意,我这里的包是hdfs,类名是HdfsDemo,这段代码的功能如下:对单词计数,最后显示出来。

package hdfs;

import java.io.IOException;
import java.util.*;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapred.*;
import org.apache.hadoop.util.*;

public class HdfsDemo {
	public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {
		
		private final static IntWritable one = new IntWritable(1);
		private Text word = new Text();
		public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter)
				throws IOException {
			String line = value.toString();
			StringTokenizer tokenizer = new StringTokenizer(line);
			while (tokenizer.hasMoreTokens()) {
				word.set(tokenizer.nextToken());
				output.collect(word, one);
			}
		}
	}

	public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> {
		public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output,
				Reporter reporter) throws IOException {
			int sum = 0;
			while (values.hasNext()) {
				sum += values.next().get();
			}
			output.collect(key, new IntWritable(sum));
		}
	}

	public static void main(String[] args) throws Exception {
		
		JobConf conf = new JobConf(HdfsDemo.class);
		conf.setJobName("wordcount");

		conf.setOutputKeyClass(Text.class);
		conf.setOutputValueClass(IntWritable.class);

		conf.setMapperClass(Map.class);
		conf.setReducerClass(Reduce.class);

		conf.setInputFormat(TextInputFormat.class);
		conf.setOutputFormat(TextOutputFormat.class);

		FileInputFormat.setInputPaths(conf, new Path(args[0]));
		FileOutputFormat.setOutputPath(conf, new Path(args[1]));

		JobClient.runJob(conf);
	}
}

2)我们可以在运行的时候选择run configurations , 然后配置输入的文件是哪个,输出的文件必须是那个目录没有的,也就是说是一个由我们自己定义的新目录,不然会报错。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sCKjTaen-1633000770421)(C:/Users/二月/AppData/Roaming/Typora/typora-user-images/image-20210930190916705.png)]

image-20210930191107427

3)这里我的text1.txt文件位与hdfs文件系统的根目录,内容如下:

image-20210930191412286

4)运行后刷新整个exam,我们可以看到根目录出现了一个output目录,里面有两个文件,点击part开头文件,我们可以看到:

image-20210930191529589

好的,eclipse配置完成。

四.结尾

以上就是我们的eclipse的配置过程,如果有不明白的地方,都可以在评论区留言。

接下来的一篇博客将介绍hdfs的java Api 操作,以及我会以我的实验作业作为例子进行总结。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:56:57  更:2021-10-01 16:59:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:10:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码