`

eclipse远程调式hadoop

 
阅读更多
远程连接hadoop分布式环境
1、确保分布式环境版本与eclipse插件版本要一致(0.20.205.0),否则连接是提示:



2、插件重新打包,需要把
lib/jackson-core-asl-1.8.8.jar,lib/jackson-mapper-asl-1.8.8.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar,lib/commons-httpclient-3.0.1.jar,lib/commons-cli-1.2.jar,打进插件包中,如下:


MANIFEST.MF修改:
Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/jackson-core-asl-1.8.8.jar,lib/jackson-mapper-asl-1.8.8.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar,lib/commons-httpclient-3.0.1.jar,lib/commons-cli-1.2.jar
否则出现:
关于eclipse无法连接报错:
"Map/Reduce location status updater". org/codehaus/jackson/map/JsonMappingException
经过查询,是由于hadoop的eclipse 插件里面缺少了包

3、准备测试类
package com.hadoop.learn.test;

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;
import org.apache.log4j.Logger;

public class WordCountTest {
	private static final Logger log = Logger.getLogger(WordCountTest.class);
	
	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 {
			log.info("Map key : " + key);
			log.info("Map value : " + value);
			StringTokenizer itr = new StringTokenizer(value.toString());
			while (itr.hasMoreTokens()) {
				String wordStr = itr.nextToken();
				word.set(wordStr);
				log.info("Map word : " + wordStr);
				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 {
			log.info("Reduce key : " + key);
			log.info("Reduce value : " + values);
			int sum = 0;
			for (IntWritable val : values) {
				sum += val.get();
			}
			result.set(sum);
			log.info("Reduce sum : " + sum);
			context.write(key, result);
		}
	}
	
	public static void main(String[] args) throws Exception {
		Configuration config = new Configuration();
		String[] otherArgs = new GenericOptionsParser(config, args).getRemainingArgs();
		if (otherArgs.length != 2) {
			System.err.println("Usage: WordCountTest <in> <out>");
			System.exit(2);
		}
		
		Job job = new Job(config, "word count test");
		job.setJarByClass(WordCountTest.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);
	}
}



4、配置host
192.168.197.131 hadoop-namenode
否则入参的地址已ip会出错:



java.lang.IllegalArgumentException: Wrong FS: hdfs://192.186.54.1:8020/user/hadoop/test.txt, expected: hdfs://hadoop1
正确如下:



5、hadoop-core-0.20.205.0.jar重新编译
运行是,可能报错:
12/04/24 15:32:44 ERROR security.UserGroupInformation: PriviledgedActionException as:Administrator cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700
Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700
    at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682)
这是由于Windows下文件权限问题,在Linux下可以正常运行,不存在这样的问题。
解决方法是修改 F:\编程开发\hadoop\older\hadoop-0.20.203.0rc1\hadoop-0.20.203.0\src\core\org \apache\hadoop\fs\RawLocalFileSystem.java ,注释掉 checkReturnValue(有些粗暴,在Window下,可以不用检查)


然后重新编译,编译可能出错
(1)ant开始下载依赖和编译文件。 我在编译的时候编译错误。经查,是$hadoop_home/src/saveVersion.sh生成的package-info.java有问题,导致无法编译过去。将saveVersion.sh修改一下:


(2):/hadoop/mapred/gridmix/Gridmix.java:396: 错误: 类型参数? extends T不在类型变量E的范围内
这个问题则需要修改/src/contrib/gridmix/src/java/org/apache/hadoop/mapred/gridmix/Gridmix.java这个文件。
原: private <T> String getEnumValues(Enum<? extends T>[] e) {
+改:  private String getEnumValues(Enum<?>[] e) {
    StringBuilder sb = new StringBuilder();
    String sep = "";
-原:    for (Enum<? extends T> v : e) {
+改:    for (Enum<?> v : e) {
      sb.append(sep);       sb.append(v.name());       sep = "|";

以上准备完成后,将执行成功


  • 大小: 11.1 KB
  • 大小: 11 KB
  • 大小: 89.1 KB
  • 大小: 88.8 KB
  • 大小: 9.7 KB
  • 大小: 27.1 KB
  • 大小: 82.2 KB
分享到:
评论

相关推荐

    Eclipse中远程调试Hadoop必备资料

    Eclipse中远程调试Hadoop必备资料:hadoop-eclipse-plugin-1.1.1和hadoop-core-1.0.2-modified;已经在eclipse-jee-juno-SR1-win32-x86_64和hadoop1.1.1 下测试过。

    eclipse4.5远程调试hadoop2.7.4依赖包

    eclipse远程调试出现Exception in thread “main” java.lang.UnsatisfiedLinkError,eclipse4.5远程调试hadoop2.7.4依赖包 ,方法 将匹配的hadoop.dll、winutils.exe、libwinutils.lib拷贝到C:\Windows\System32 详情...

    eclipse远程连接hadoop集群 hadoop-eclipse-plugin-2.6.0.jar

    windows下 eclipse操作hadoop集群 插件

    eclipse运行mr插件hadoop-eclipse-plugin-2.6.0.jar

    5. **编写MapReduce程序**: 使用Eclipse编写Java代码实现MapReduce任务,然后右键点击项目,选择`Run As` -&gt; `Hadoop Job`来提交作业到远程Hadoop集群。 6. **监控作业状态**: 插件还会在Eclipse的`Progress`视图中...

    Eclipse Hadoop2.7插件

    Eclipse Hadoop2.7插件是专门为Java开发者设计的一款工具,它允许用户在流行的集成开发环境(IDE)Eclipse中直接进行Hadoop项目的开发、调试和管理。这个插件极大地简化了Hadoop应用程序的创建过程,使得开发人员...

    hadoop-eclipse2.5.2、hadoop-eclipse2.6.0、hadoop-eclipse2.6.5

    Eclipse是流行的Java集成开发环境(IDE),而Hadoop-Eclipse插件是将Hadoop与Eclipse结合的工具,允许开发者在Eclipse中直接创建、运行和调试Hadoop MapReduce程序。这些文件"hadop-eclipse-plugin-2.5.2.jar"、...

    hadoop-eclipse2.7.1、hadoop-eclipse2.7.2、hadoop-eclipse2.7.3

    标题中的"hadoop-eclipse2.7.1、hadoop-eclipse2.7.2、hadoop-eclipse2.7.3"代表了Hadoop-Eclipse插件的三个不同版本,每个版本对应Hadoop框架的2.7.x系列。版本号的递增通常意味着修复了前一版本的错误,增加了新...

    Hadoop伪分布式部署文档(包括本地开发环境,eclipse远程连接Hadoop服务器)

    Hadoop伪分布式部署文档是指在单台机器上模拟分布式Hadoop集群的部署文档,包括服务器伪分布式部署、本地Hadoop开发环境部署、Eclipse远程连接Hadoop服务器等内容。下面是该文档的详细解释: 首先,需要安装JDK,...

    Hadoop-eclipse-plugin-2.7.2

    更重要的是,它提供了强大的调试工具,允许开发者在本地或远程Hadoop集群上运行和调试作业,这对于问题定位和优化至关重要。 Eclipse的集成环境使得Hadoop项目的开发变得更加直观和高效。在Eclipse中,你可以方便地...

    eclipse 64位 远程调试hadoop2.5

    eclipse远程调试hadoop,报Could not locate executable null\bin\winutils.exe ,将winutils.exe放入到hadoop的bin目录下,报UnsatisfiedLinkError错,将 hadoop.dll放入C:\Windows\System32下

    hadoop-eclipse-plugin-2.7.2.rar

    最后,可以在本地或远程Hadoop集群上提交并运行作业,观察和调试运行日志。 总之,Hadoop Eclipse Plugin 2.7.2是Hadoop开发者的重要工具,它使得Hadoop开发更加便捷高效。如果你是Hadoop初学者或者希望提升开发...

    hadoop-eclipse-plugin-3.1.1.tar.gz

    Hadoop-Eclipse-Plugin-3.1.1是一款专为Eclipse集成开发环境设计的插件,用于方便地在Hadoop分布式文件系统(HDFS)上进行开发和调试MapReduce程序。这款插件是Hadoop生态系统的组成部分,它使得Java开发者能够更加...

    hadoop-eclipse-plugin插件和hadoop.dll和winutile.exe.zip

    Hadoop-Eclipse-Plugin是Apache Hadoop项目的一部分,它为Eclipse提供了一个直观的界面,允许开发者将MapReduce项目部署到本地或远程的Hadoop集群上。通过这个插件,你可以直接在Eclipse中创建、编辑、运行和调试...

    hadoop-eclipse-plugin

    通过Eclipse插件,我们可以直接在本地开发MapReduce程序,然后将其提交到远程Hadoop集群上运行。 安装"hadoop-eclipse-plugin"的过程如下: 1. 首先,确保你已经安装了Eclipse IDE,并且版本兼容该插件。 2. 下载...

    hadoop-eclipse-plugin-2.8.2.jar

    hadoop-eclipse-plugin-2.8.2.jar hadoop eclipse环境开发调试所用

    eclipse的hadoop插件

    4. **运行与调试**:可以直接在Eclipse内提交MapReduce作业到Hadoop集群,进行本地或远程运行和调试。可以设置断点、查看变量状态,以及跟踪程序执行流程。 5. **资源管理**:通过插件,开发者可以查看集群状态,如...

    Eclipse开发Hadoop相关项目本地配置插件

    5. **连接Hadoop集群**:在Eclipse中配置Hadoop连接,可以让你在本地IDE中调试运行在远程集群上的作业。通过"Big Data Tools",可以在"Window" -&gt; "Preferences" -&gt; "Big Data" -&gt; "Hadoop Cluster"中添加和管理...

    Hadoop-eclipse-plugin-2.7.6下载与说明

    6. **连接到Hadoop集群**:如果你的开发环境不在Hadoop集群上,可以通过配置Eclipse连接到远程集群。这需要设置Hadoop的master节点地址,以及可能的安全认证信息(如Kerberos)。 7. **提交作业**:当代码调试完成...

Global site tag (gtag.js) - Google Analytics