远程连接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必备资料:hadoop-eclipse-plugin-1.1.1和hadoop-core-1.0.2-modified;已经在eclipse-jee-juno-SR1-win32-x86_64和hadoop1.1.1 下测试过。
eclipse远程调试出现Exception in thread “main” java.lang.UnsatisfiedLinkError,eclipse4.5远程调试hadoop2.7.4依赖包 ,方法 将匹配的hadoop.dll、winutils.exe、libwinutils.lib拷贝到C:\Windows\System32 详情...
windows下 eclipse操作hadoop集群 插件
5. **编写MapReduce程序**: 使用Eclipse编写Java代码实现MapReduce任务,然后右键点击项目,选择`Run As` -> `Hadoop Job`来提交作业到远程Hadoop集群。 6. **监控作业状态**: 插件还会在Eclipse的`Progress`视图中...
Eclipse Hadoop2.7插件是专门为Java开发者设计的一款工具,它允许用户在流行的集成开发环境(IDE)Eclipse中直接进行Hadoop项目的开发、调试和管理。这个插件极大地简化了Hadoop应用程序的创建过程,使得开发人员...
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-Eclipse插件的三个不同版本,每个版本对应Hadoop框架的2.7.x系列。版本号的递增通常意味着修复了前一版本的错误,增加了新...
Hadoop伪分布式部署文档是指在单台机器上模拟分布式Hadoop集群的部署文档,包括服务器伪分布式部署、本地Hadoop开发环境部署、Eclipse远程连接Hadoop服务器等内容。下面是该文档的详细解释: 首先,需要安装JDK,...
更重要的是,它提供了强大的调试工具,允许开发者在本地或远程Hadoop集群上运行和调试作业,这对于问题定位和优化至关重要。 Eclipse的集成环境使得Hadoop项目的开发变得更加直观和高效。在Eclipse中,你可以方便地...
eclipse远程调试hadoop,报Could not locate executable null\bin\winutils.exe ,将winutils.exe放入到hadoop的bin目录下,报UnsatisfiedLinkError错,将 hadoop.dll放入C:\Windows\System32下
Hadoop-Eclipse-Plugin-3.1.1是一款专为Eclipse集成开发环境设计的插件,用于方便地在Hadoop分布式文件系统(HDFS)上进行开发和调试MapReduce程序。这款插件是Hadoop生态系统的组成部分,它使得Java开发者能够更加...
最后,可以在本地或远程Hadoop集群上提交并运行作业,观察和调试运行日志。 总之,Hadoop Eclipse Plugin 2.7.2是Hadoop开发者的重要工具,它使得Hadoop开发更加便捷高效。如果你是Hadoop初学者或者希望提升开发...
6. **连接到Hadoop集群**:如果你的开发环境不在Hadoop集群上,可以通过配置Eclipse连接到远程集群。这需要设置Hadoop的master节点地址,以及可能的安全认证信息(如Kerberos)。 7. **提交作业**:当代码调试完成...
Hadoop-Eclipse-Plugin是Apache Hadoop项目的一部分,它为Eclipse提供了一个直观的界面,允许开发者将MapReduce项目部署到本地或远程的Hadoop集群上。通过这个插件,你可以直接在Eclipse中创建、编辑、运行和调试...
通过Eclipse插件,我们可以直接在本地开发MapReduce程序,然后将其提交到远程Hadoop集群上运行。 安装"hadoop-eclipse-plugin"的过程如下: 1. 首先,确保你已经安装了Eclipse IDE,并且版本兼容该插件。 2. 下载...
hadoop-eclipse-plugin-2.8.2.jar hadoop eclipse环境开发调试所用
4. **运行与调试**:可以直接在Eclipse内提交MapReduce作业到Hadoop集群,进行本地或远程运行和调试。可以设置断点、查看变量状态,以及跟踪程序执行流程。 5. **资源管理**:通过插件,开发者可以查看集群状态,如...
5. **连接Hadoop集群**:在Eclipse中配置Hadoop连接,可以让你在本地IDE中调试运行在远程集群上的作业。通过"Big Data Tools",可以在"Window" -> "Preferences" -> "Big Data" -> "Hadoop Cluster"中添加和管理...