如何在win7下的eclipse中调试Hadoop2.2.0的程序

如何在win7下的eclipse中调试Hadoop2.2.0的程序,第1张

win7下调试Hadoop2.2.0程序的方法:

一、环境准备

1eclipseJuno Service Release 4.2的本

2 *** 作系统Windows7

3hadoop的eclipse插件hadoop-eclipse-plugin-2.2.0.jar

4hadoop的集群环境虚拟机Linux的Centos6.5单机伪分布式

5调试程序Hellow World

二、注意事项:

异常如下:

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

解决办法:

在org.apache.hadoop.util.Shell类的checkHadoopHome()方法的返回值里写固定的

本机hadoop的路径,在这里更改如下:

private static String checkHadoopHome() {

// first check the Dflag hadoop.home.dir with JVM scope

//System.setProperty("hadoop.home.dir", "...")

String home = System.getProperty("hadoop.home.dir")

// fall back to the system/user-global env variable

if (home == null) {

home = System.getenv("HADOOP_HOME")

}

try {

// couldn't find either setting for hadoop's home directory

if (home == null) {

throw new IOException("HADOOP_HOME or hadoop.home.dir are not set.")

}

if (home.startsWith("\"") &&home.endsWith("\"")) {

home = home.substring(1, home.length()-1)

}

// check that the home setting is actually a directory that exists

File homedir = new File(home)

if (!homedir.isAbsolute() || !homedir.exists() || !homedir.isDirectory()) {

throw new IOException("Hadoop home directory " + homedir

+ " does not exist, is not a directory, or is not an absolute path.")

}

home = homedir.getCanonicalPath()

} catch (IOException ioe) {

if (LOG.isDebugEnabled()) {

LOG.debug("Failed to detect a valid hadoop home directory", ioe)

}

home = null

}

//固定本机的hadoop地址

home="D:\\hadoop-2.2.0"

return home

}

第二个异常,Could not locate executable D:\Hadoop\tar\hadoop-2.2.0\hadoop-2.2.0\bin\winutils.exe in the Hadoop binaries. 找不到win上的执行程序,可以去https://github.com/srccodes/hadoop-common-2.2.0-bin下载bin包,覆盖本机的hadoop跟目录下的bin包即可

第三个异常:

Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: hdfs://192.168.130.54:19000/user/hmail/output/part-00000, expected: file:///

at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:310)

at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:47)

at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:357)

at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:245)

at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker.<init>(ChecksumFileSystem.java:125)

at org.apache.hadoop.fs.ChecksumFileSystem.open(ChecksumFileSystem.java:283)

at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:356)

at com.netease.hadoop.HDFSCatWithAPI.main(HDFSCatWithAPI.java:23)

出现这个异常,一般是HDFS的路径写的有问题,解决办法,拷贝集群上的core-site.xml和hdfs-site.xml文件,放在eclipse的src根目录下即可。

package com.qin.wordcount

import java.io.IOException

import org.apache.hadoop.fs.FileSystem

import org.apache.hadoop.fs.Path

import org.apache.hadoop.io.IntWritable

import org.apache.hadoop.io.LongWritable

import org.apache.hadoop.io.Text

import org.apache.hadoop.mapred.JobConf

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.input.TextInputFormat

import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat

import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat

/***

*

* Hadoop2.2.0测试

* 放WordCount的例子

*

* @author qindongliang

*

* hadoop技术交流群: 376932160

*

*

* */

public class MyWordCount {

/**

* Mapper

*

* **/

private static class WMapper extends Mapper<LongWritable, Text, Text, IntWritable>{

private IntWritable count=new IntWritable(1)

private Text text=new Text()

@Override

protected void map(LongWritable key, Text value,Context context)

throws IOException, InterruptedException {

String values[]=value.toString().split("#")

//System.out.println(values[0]+"========"+values[1])

count.set(Integer.parseInt(values[1]))

text.set(values[0])

context.write(text,count)

}

}

/**

* Reducer

*

* **/

private static class WReducer extends Reducer<Text, IntWritable, Text, Text>{

private Text t=new Text()

@Override

protected void reduce(Text key, Iterable<IntWritable>value,Context context)

throws IOException, InterruptedException {

int count=0

for(IntWritable i:value){

count+=i.get()

}

t.set(count+"")

context.write(key,t)

}

}

/**

* 改动一

* (1)shell源码里添加checkHadoopHome的路径

* (2)974行,FileUtils里面

* **/

public static void main(String[] args) throws Exception{

// String path1=System.getenv("HADOOP_HOME")

// System.out.println(path1)

// System.exit(0)

JobConf conf=new JobConf(MyWordCount.class)

//Configuration conf=new Configuration()

//conf.set("mapred.job.tracker","192.168.75.130:9001")

//读取person中的数据字段

// conf.setJar("tt.jar")

//注意这行代码放在最前面,进行初始化,否则会报

/**Job任务**/

Job job=new Job(conf, "testwordcount")

job.setJarByClass(MyWordCount.class)

System.out.println("模式: "+conf.get("mapred.job.tracker"))

// job.setCombinerClass(PCombine.class)

// job.setNumReduceTasks(3)//设置为3

job.setMapperClass(WMapper.class)

job.setReducerClass(WReducer.class)

job.setInputFormatClass(TextInputFormat.class)

job.setOutputFormatClass(TextOutputFormat.class)

job.setMapOutputKeyClass(Text.class)

job.setMapOutputValueClass(IntWritable.class)

job.setOutputKeyClass(Text.class)

job.setOutputValueClass(Text.class)

String path="hdfs://192.168.46.28:9000/qin/output"

FileSystem fs=FileSystem.get(conf)

Path p=new Path(path)

if(fs.exists(p)){

fs.delete(p, true)

System.out.println("输出路径存在,已删除!")

}

FileInputFormat.setInputPaths(job, "hdfs://192.168.46.28:9000/qin/input")

FileOutputFormat.setOutputPath(job,p )

System.exit(job.waitForCompletion(true) ? 0 : 1)

}

}

我是用WIN7旗舰版的.瑞星可以正常的使用,安装的时候也没有出现这样的问题.

首先检查一下自己的序列号是不是出现了问题.

然后你可以在这里输入ID和序列号看看能不能登录

http://update.rising.com.cn/personvalidate/pcver/upgrade.htm

如果可以,那么说明瑞星的安装包出了问题,可能使用的安装包是很早版本的,可以在上面地址登录以后下载新的瑞星安装包,再尝试一下安装.

如果不能登录,说明可能是序列号问题,请确认序列号可用后与瑞星的客服联系解决问题.

下面第七个就是ID啦

网络术语大扫盲(2)-中文缩写指南1

1.IT是什么意思

IT是指信息技术,即英文Information Technology 的缩写.

2.bt是什么意思?

BT是一种P2P共享软件,全名叫"BitTorrent",中文全称:"比特流"又名"变态下载",论坛

中说某BT,则是"变态"的意思.

3.diy是什么意思?

DIY是每个电脑爱好者熟悉的新名词,是英文Do It Yourself的首字母缩写,自己动手制

作的意思,硬件爱好者也被俗称DIYer.

4.oem是什么意思?

OEM是英文Original Equipment Manufacturer的缩写,意思是原设备制造商。

5.xp是什么意思?

XP,是英文Experience(体验)的缩写, 自从微软发布Office XP后,成为软件流行命名

概念.

6.ps是什么意思?

在网上,常用软件一般都用缩写代替photoshop简称ps,DreamWeaver简称dw,等等..

play station

photoshop

parenthesis

7.ID是什么意思?

ID是英文IDentity的缩写,ID是身份标识号码的意思.

8.msn是什么意思?

MSN 即MICROSOFT NETWORK, 是微软公司的一个门户站点. MSN作为互联网上最受欢迎的

一个门户, 具备了为用户提供了在线调查、浏览和购买各种产品和服务的能力.

9.dj是什么意思?

DJ是DISCO JOCIKEY(唱片骑士)的英文缩写,以DISCO为主,DJ这两个字现在已经代表了最

新、最劲、最毒、最HIGH的Muisc。

10.URL是什么意思?

URL是英文Uniform Resoure Locator的缩写,即统一资源定位器,它是WWW网页的地址,如

http://www.99du.net.

11.ceo是什么意思?

CEO(Chief 执行utive Officer),即首席执行官,源自美国20世纪60年代进行公司治理

结构改革创新时.

12.ova是什么意思?

OVA是英文录象带的缩写.

13.vip什么意思?

VIP是英文Very Important Person的缩写,就是贵宾的意思。

14.mc是什么意思?

MC的意思是Micphone Controller的意思,翻译差不多是“控制麦克风的人”。也可以

理解为Rapper,很多Rap都在自己的艺名前面加上“MC”,比如台湾的MChotdog,香港

的MCYan,美国的MC Hammer等。

15.cs是什么意思?

CS是非常流行的网络游戏,中文名是反恐精英。

16.banner是什么意思?logo是什么意思?

BANNER是横幅广告,logo是图标广告.

17.ftp是什么意思?

FTP是英文File Transfer Protocol的缩写,即文本传输协议。

18.ip是什么意思?

为了使Internet上的众多电脑主机在通信时能够相互识别,Internet上的每一台主机都

分配有一个唯一的32位地址,该地址称为IP地址,也称作网际地址。IP地址由4个数组

成,每个数可取值0~255,各数之间用一个点号“.”

19.bug是什么意思

在英语中,bug表示“臭虫”的意思。但在电脑行业却把电脑内部发生的小故障也称为

“bug”,如程序运行不畅等,这种叫法也许与臭虫不无关系。有人猜测,之所以用

bug,是因为它非常简洁明快。其次,臭虫也确实使人连休息也不得安宁,如同电脑中

的小故障一样,它虽小,但麻烦还是很大的。

20.pm是什么意思

Private Messages 论坛短信


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/9905614.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存