文档章节

myeclipse hadoop 开发环境搭建

Joeson_
 Joeson_
发布于 2017/09/05 14:15
字数 1137
阅读 69
收藏 0
点赞 2
评论 0

myeclipse hadoop 开发环境搭建

  •  本文档所有安装包全部为64位

1.下载 hadoop-eclipse-plugin-2.6.0.jar

链接: https://pan.baidu.com/s/1skRb5yX 密码: 9rgd

2.下载 hadoop-2.6.0.tar.gz

Hadoop 下载地址

下载地址:https://archive.apache.org/dist/hadoop/common/
下载完以后解压到e盘hadoop下

3.安装myeclipse hadoop插件

1.将hadoop-eclipse-plugin-2.6.0.jar 放到myeclipse的安装目下的dropins目录下,重启myeclipse。再次打开myeclipse 
在windows->preferences下可看见hadoop Map/Reduce界面,路径选择你WINDOWS下的hadoop解压后的路径。

4.配置环境变量

1.右键我的电脑 -->属性 --> 高级系统设置 --> 环境变量

2.新增hadoop环境变量 变量名 HADOOP_HOME 变量值:hadoop的解压目录

3.编辑 path

配置好环境变量以后需重启电脑(本人为win10系统需重启)。

4.显示Map/Reduce选项卡

1.点击 【open perspective 】-> 【Map/Reduce】->【OK】 将Map/Reduce 显示在工具栏中
2.Map/Reduce Locations视图 【Window】->【Show View】->【Map/Reduce Locations】->【OK】 或者
【Window】->【Show View】->【Other...】->【MapReduce Tools】->【Map/Reduce Locations】->【OK】

5.创建hadoop连接

在Map/Reduce Locations选项卡视图中右键单击 选择新建new hadoop location。

配置连接
根据我们之前的安装情况填入相关信息:
location name

我这里随便起一个名称叫 hy001 。

Map/Reduce Master 
这个框里
Host:就是 hy001 所在的集群机器 
port:默认 50070 这两个参数就是安装hadoop配置的mapred-site.xml里面mapred.job.tracker里面的ip和port 。 

DFS Master
Host:和Map/Reduce Master中的Host 相同
Port: 就是namenode的port
这两个参数就是core-site.xml里面fs.default.name里面的ip和port。

User name :这个是连接hadoop的用户名

配置完如图: 

如果我们已经要启动了windows系统中的sshd服务(一般都是开启的,没有开启的话自己查下资料开启一下),而且启动了linux中的hadoop集群。
这时,我们的DFS Location就已经能连接上了,也就是在项目图中看hadoop集群上的文件。如图:

6.创建MapReduce 项目

经过前面的准备我们开始创建mapreduce项目,在过程中需要选择Hadoop的安装路径。
如果是windows系统安装的hadoop则填写本地的安装路径,如果是linux系统中安装的hadoop则需要写linux中安装的绝对路径。
我们之前在安装篇已经知道 安装目录是 /home/joe/hadoop/hadoop-1.2.1。
创建项目步骤如下:
如果前面设置了本地hadoop安装运行目录则步骤为:
【File】->【New】->【Project...】->【Map/Reduce】->【Map/Reduce Project】->【Project name: WordCount】->【Next】->【Allow output folders for source folders】->【Finish】
否则为:
【File】->【New】->【Project...】->【Map/Reduce】->【Map/Reduce Project】->【Project name: WordCount】->【Configure Hadoop install directory...】->【Hadoop installation directory:d:/hadoop/hadoop-1.2.1】->【Apply】->【OK】->【Next】->【Allow output folders for source folders】->【Finish】

 

创建成功后出现了MyHadoop项目如下,已经自动引入了hadoop的一些包:  

7.新建计数MapReduce的类WordCount

【MyHadoop】->【src】->【右键New】->【Class】->【Package: org.apache.hadoop.examples】->【Name: WordCount】->【Finish】

这个时候这个类就空的,如果是我们正常的开发流程的话,这里就是我们写mapreduce的地方。 但是我们是为了实现hadoop的经典例子单词计数---WordCount。 那我们可以在Apache hadoop 官网中找到WordCount的源码直接粘贴上去。

Apache hadoop 官网 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 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();
		Job job = Job.getInstance(conf, "word count");
		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(args[0]));
		FileOutputFormat.setOutputPath(job, new Path(args[1]));
		System.exit(job.waitForCompletion(true) ? 0 : 1);
	}
}

将FileInputFormat.addInputPath FileOutputFormat.setOutputPath 修改成自己的hadoop集群路径如图:

 

运行

修改后可以运行了,对着wordCount类 右键,run as---》run on hadoop。

有可能会出现如下错误:

此错误是缺少对应的hadoop.dll,winutils.exe 等

下载地址: 链接: https://pan.baidu.com/s/1pL9eSFh 密码: rdma

1:将文件解压到hadoop的bin目录下
2:将hadoop.dll复制到C:\Window\System32下
3:重启myeclipse或者eclipse

再次运行OK如图: 

运行成功后在DFS Locations中出现了结果文件,我们可以直接左键双击查看 

到此myeclipse hadoop开发环境搭建成功。

© 著作权归作者所有

共有 人打赏支持
Joeson_
粉丝 6
博文 9
码字总数 8444
作品 0
大兴
程序员
MyEclipse 8.6.1 制作绿色版

我们先在这个目录下新建一个文件: MyEclipse 10.6.bat , 文件内容如下: start eclipseeclipse.exe -vm jrebinjavaw.exe 接下来只需要改一个Eclipse 插件的配置文件就可以实现绿色版运行了, 我...

thinkyoung ⋅ 2014/11/16 ⋅ 0

填坑系列之Mac下破解MyEclipse2017

网上各大论坛有很多关于MyEclipse破解的教程,但是亲自实践后发现,大部分都是基于windows的,很多直接复制粘贴,号称是在Mac下安装的,导致按照教程会破解不成功。 接下来,本文会根据实际操...

充电实践 ⋅ 04/22 ⋅ 0

转 Myeclipse 2017 安装与破解

一、下载 Myeclipse官网下载地址:http://www.myeclipsecn.com/download/ 百度云链接(含破解):链接:http://pan.baidu.com/s/1pKCQLJ1 密码:v2jw(如果这个链接失效,新的链接在文章最底下...

1024菜bird ⋅ 06/13 ⋅ 0

MyEclipse使用总结——MyEclipse10安装SVN插件

一、下载SVN插件subclipse 下载地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240 在打开的网站中找到subclipse的最新版本,如下图所示: 下载完成之后,得到的...

thinkyoung ⋅ 2014/12/14 ⋅ 0

Myeclipse普通工程转为Maven工程

在SVN导出的Maven项目,或以前不是用Maven管理的项目想要转换成Maven项目,但Myeclipse中右键Configure 找不到(eclipse可行)Convert to maven project选项,因此需要如下设置: Window > Pre...

进击的悠然 ⋅ 2016/04/28 ⋅ 0

怎么搭建SSM框架

myeclipse的8.5版本,用web project工程能否搭建ssm框架?因为大家都是maven和ssm的整合,我就想知道webProject能不能和ssm整合,还需要注意一些什么问题,请各位指点一下。...

行走的思想 ⋅ 03/06 ⋅ 0

myeclipse集成activiti-designer

第一次发布文章,也算是一个测试~ 使用工具:activiti-designer-5.15.0 + myeclipse2014 activiti-designer-5.15.0下载地址 http://down.51cto.com/data/1876002 集成方法: 1、解压designe...

qq5b0fd66864347 ⋅ 06/21 ⋅ 0

同一个servlet在myeclipse中正常在tomcat中中文乱码

写了一个servlet程序,打印html文件的input输入到控制台,在myeclipse中中文打印正常,导出部署在tomcat上后中文乱码。 读取input参数做了下面的转化: new String(request.getParameter("u...

changlianggao ⋅ 05/06 ⋅ 0

初学Python,对于开发工具不是很了解?一文带你选择适合你的开发工具

工欲善其事必先利其器! 开发Python用什么工具好呢?其实刚学Python的话,使用IDLE就够了,虽然调试不是特别方便,但是对于初学已经够了,可以使用Print进行简单的调试,不建议使用记事本进行...

柯西带你学编程 ⋅ 06/01 ⋅ 0

JEECG 新版在线文档WIKI正式发布

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangdaiscott/article/details/80003500 JEECG 新版在线文档WIKI正式发布 背景: jeecg 从2013年开源至今经历...

Jeecg ⋅ 04/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何使用serverchan微信推送告警

之前实现推送告警信息到微信的方法有如下几种: 1、通过企业公众号实现----收费: 2、通过QQ邮箱,在微信平台上开启收到邮件进行提醒; 3、第三方告警平台API,一般也是收费的; 不过最近看文...

问题终结者 ⋅ 30分钟前 ⋅ 0

TCP的RPC

RPC就是远程方法调用(Remote Process Call ),包含了客户端和服务端,涉及了对象的序列化传输。 1.服务端启动,注册远程调用的类2.客户端发送请求信息包含类、方法、参数的一些信息、序列化传...

Cobbage ⋅ 50分钟前 ⋅ 0

IOS-UI UI初步代码布局添加事件

ISO开发界面,UI是必须学习的一部分,其实很早之前想学来了,一直没有沉下心来学习。看到IOS的代码风格和布局就别扭的不行,跟java代码和android布局比较显得不是那么方便,所以一直到现在。...

京一 ⋅ 今天 ⋅ 0

浅谈OpenDaylight的二次开发

OpenDaylight作为一款开源SDN网络控制器,依托于强大的社区支持以及功能特性,成为了目前主流的SDN网络控制器开发平台。在比较稳定的OpenDaylight Helium版本中,已经为开发者提供了大量的网...

wangxuwei ⋅ 今天 ⋅ 0

API 开发中可选择传递 token 接口遇到的一个坑

在做 API 开发时,不可避免会涉及到登录验证,我使用的是jwt-auth 在登录中会经常遇到一个token过期的问题,在config/jwt.php默认设置中,这个过期时间是一个小时,不过为了安全也可以设置更...

等月人 ⋅ 今天 ⋅ 0

Java NIO之文件处理

程序要操作本地操作系统的一个文件,可以分为以下三个部分: 对文件位置的操作 对文件的操作 对文件内容的操作 其中,对文件内容的操作在 Java NIO之Channel 中已经有了介绍,通过FileChann...

士别三日 ⋅ 今天 ⋅ 0

Maven的pom.xml配置文件详解

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.......

小海bug ⋅ 今天 ⋅ 0

解决httpclient超时设置不生效的问题

最近公司有项目需要通过http调用第三方服务,且第三方服务偶有超时,故需要设置一定的超时时间防止不响应的情况出现。 初始设置如下: [java] view plain copy //超时设置 RequestConfig re...

Mr_Tea伯奕 ⋅ 今天 ⋅ 0

过滤器Filter和拦截器HandlerInterceptor

过滤器 依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要...

hutaishi ⋅ 今天 ⋅ 0

Redis入门详解(转)

Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis应用场景 Redis总结 Redis简介: Redi...

xiaoyaoyoufang ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部