关注 DLab数据实验室 公众号 带你一起学习大数据~

写在前面:最近终于闲下来了,打算把之前了解到的内容整理一下,先从搭建环境开始吧~

现在接触大数据开发的朋友可能直接使用Spark或者其他的查询引擎了,Hadoop似乎已经不用了,最近突然想再好好的理解一下Hadoop,想做一些实验,所以又面临重新配置环境的问题,尽管曾经配过n多次,但是没有认真的整理下来,所以又不断的遇到了一些小坑。这次一定涨记性。废话不多说了,本文是在已有Hadoop集群的前提下进行的,主要是指导如何通过本地的Eclipse轻松的连接远程Hadoop集群进行任务在线调试。

一、在Eclipse中安装插件

1.百度搜索hadoop-eclipse-plugin-2.6.5.jar,根据你的Hadoop版本下载相应的插件,然后将该插件放入Eclipse安装目录的plugin目录下;

2.重启Eclipse,你会看到在Window->show view中多了MapReduce这个模块;

该模块就是用于配置你的远程Hadoop集群的,如下图:

Location name:随便起一个名字;

Map/Reduce Master:如果你的Hadoop集群没有特别指定,默认是50000-50020都可,一般大家都写50020;Host就是你的Master的地址,此处写IP或者域名皆可

DFS Master:一样的,注意端口跟你的集群配置一致即可,一般都是9000;

3.配置成功你双击之后会在你的Eclipse左上角出现了下面这个

如果你的配置没有问题,你会看到你的HDFS上面存的文件信息,这就表明我们已经成功连接Hadoop集群;

二、WordCount测试后

1.创建一个简单的maven项目,例如取名mrtest;

2.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.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.edu.ruc.dbiir</groupId><artifactId>mrtest</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>mrtest</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><hadoop.version>2.6.5</hadoop.version></properties><dependencies><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version>
</dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>${hadoop.version}</version>
</dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>${hadoop.version}</version>
</dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>${hadoop.version}</version>
</dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
</project>

3. WordCount.java

nnpackage cn.edu.ruc.dbiir.mrtest;import java.io.IOException;import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.conf.Configuration;
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.Mapper.Context;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;public class WordCount {public static class WCMapper extends Mapper<LongWritable, Text, Text, IntWritable>{@Overrideprotected void map(LongWritable key, Text value,Context context)throws IOException, InterruptedException {// TODO Auto-generated method stub
//          super.map(key, value, context);String data = value.toString();String [] words = data.split(" ");Logger logger = Logger.getLogger(WCMapper.class);      logger.error("Map-key:"+key+"|"+"Map-value:"+value);for(String w:words) {context.write(new Text(w), new IntWritable(1));}}}public static class WCReducer extends Reducer<Text, IntWritable, Text, IntWritable>{@Overrideprotected void reduce(Text key, Iterable<IntWritable> value,Context context) throws IOException, InterruptedException {// TODO Auto-generated method stub
//          super.reduce(arg0, arg1, arg2);int total =0;Logger logger = Logger.getLogger(WordCount.class);logger.error("Map-key:"+key+"|"+"Map-value:"+value);for(IntWritable v:value) {total+=v.get();}context.write(key, new IntWritable(total));}}public static void main(String[] args) throws Exception{BasicConfigurator.configure();Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://db-01:9000");conf.set("mapreduce.framework.name", "yarn");conf.set("yarn.resourcemanager.hostname", "db-01");//1.创建一个job和任务入口Job job = Job.getInstance(conf);//        Job job = Job.getInstance(new Configuration());job.setJarByClass(WordCount.class);((JobConf)job.getConfiguration()).setJar("Your own path by maven install/mrtest/target/mrtest-0.0.1-SNAPSHOT.jar");//2.指定job的mapper和输出的类型<k2,v2>job.setMapperClass(WCMapper.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);//3.指定job的reducer和输出类型<k4,v4>job.setReducerClass(WCReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);//4指定job的输入和输出FileInputFormat.setInputPaths(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));//5封装参数job.setNumReduceTasks(2);//6.提交job给yarnboolean res=job.waitForCompletion(true);}}

4.运行,在Run Configuration里面填上参数如下,

以上就完成了本地Eclipse远程调试Hadoop集群的WordCount示例,我们再总结一下:

  • 下载并安装插件(jar包放入plugin目录)
  • 在插件中配置Hadoop集群的信息mr和hdfs
  • 编写wordcount代码运行

eclipse手动pom本地包_环境篇--Eclipse如何远程连接Hadoop集群调试相关推荐

  1. eclipse手动pom本地包_(转)如何在maven的pom.xml中添加本地jar包

    1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下所示: 1 groupId 2 artifactId 3 version 4 jar包的依赖 如果要将 ...

  2. windows下eclipse远程连接hadoop集群开发mapreduce

    转载请注明出处,谢谢 2017-10-22 17:14:09 之前都是用python开发maprduce程序的,今天试了在windows下通过eclipse java开发,在开发前先搭建开发环境.在此 ...

  3. eclipse手动pom本地包_eclipse手动添加本地jar包到本地maven仓库

    在使用maven进行构建项目时,有时候中央仓库不包含所需的jar包,就需要下载到本地后手动添加到本地仓库中.这里介绍下利用eclipse进行本地jar安装到maven本地仓库. 在Eclipse项目中 ...

  4. Eclipse连接Hadoop集群(详细版)

    颜子之不较,孟子之自反,是贤人处横逆之方 子贡之无谄,原思之坐弦,是贤人守贫穷之法 相关连接 HDFS相关知识 Hadoop分布式文件系统(HDFS)快速入门 Hadoop分布式文件系统(HDFS)知 ...

  5. eclipse远程连接hadoop_hadoop集群搭建详细方法

    第一步:搭建配置新的虚拟机 格式化之前先把tmp目录下所有与Hadoop有关的信息全部删除 rm -rf /tmp/hadoop-centos* 开启之后jps只有Java的进程:sudo vi /e ...

  6. openhd 树莓派_【创客学堂】树莓派搭建Hadoop集群

    Hadoop是由Java实现的, 所以在树莓派上运行就和在其他x86平台上运行一样简单. 首先, 我们需要安装支持树莓派的JVM. 可以选用OpenJDK或者Oracle的JDK 8. 我个人推荐JD ...

  7. hadoop(05)、使用Eclipse连接远程Hadoop集群

    2019独角兽企业重金招聘Python工程师标准>>> 在前面的文中我们分别搭建了单机和集群的Hadoop环境,今天我们将实践使用Eclispe开发工具安装 hadoop的开发插件, ...

  8. Window平台的eclipse连接linux的hadoop集群

    前提条件:之前已经在VM上虚拟了三台linux,并且安装了hadoop集群 feixu-master, feixu-slave1, feixu-slave2, feixu-slave3 需求: 为了开 ...

  9. eclipse链接Hadoop集群时报错Error:Call From xxx/xxx.xxx.xxx.xxx to hostname1:9000 failed on connection excep

    今天用eclipse连接Hadoop集群的时候突然给我报了这样一个错误:Error:Call From xxx/xxx.xxx.xxx.xxx to hostname1:9000 failed on ...

最新文章

  1. 超融合与传统架构真正的区别在哪?
  2. 从会议、医患沟通和客服对话三大场景看对话文本摘要技术
  3. unity实用技术:色盲玩家也能享受好的游戏体验
  4. 相机标定中部分疑问和注意事项
  5. .NET中的内存管理,GC机制,内存释放过程
  6. php按城市显示搜索结果,在php错误中突出显示搜索结果
  7. 测试连接redis时报错redis.clients.jedis.exceptions.JedisConnectionException: Failed to create socket.
  8. VMware NSX part 1(介绍) part 2(NSX-Manager安装) part 3(NSX Controller部署)
  9. 浅谈计算机教学论文,浅谈计算机在教学中的作用_优秀论文
  10. zed相机拆机_TX2入门教程硬件篇-外接双目相机ZED
  11. CentOS 7.x 默认防火墙 yum install firewalld
  12. 一个定时器的普通实现,多进程实现和多线程实现的对比
  13. android音频框架
  14. 算法第四版 课后习题答案
  15. ucore Lab2 物理内存管理
  16. 当心!你的NAS设备正成为勒索软件攻击的目标
  17. 积分专题笔记-曲线面积分三大公式
  18. MySQL从删库到跑路(6):子查询
  19. 直播疑难杂症排查(7)— 黑屏、花屏、闪屏问题
  20. C语言初阶:进制,计算机的美丽语言

热门文章

  1. spring-mybatis.xml 访问html5,Spring mvc无xml配置及利用JdbcTemplate访问数据库
  2. typec四线焊接图_实物图+电气图纸讲解:教你学会看配电系统图,不收藏,可惜了...
  3. 发表论文的十条金玉良言
  4. range python 3.6 type class_Python 3.6 有什么新特性
  5. python公里转海里_海里、公里、英里之间的转换
  6. python函数必背知识点_必背函数——python学习第四次总结
  7. 四位共阳极数码管显示函数_【项目8-任务10-小组13】利用四位数码管实现动态扫描显示...
  8. python中ioerror怎么解决_Python IOError错误异常原因|python基础教程|python入门|python教程...
  9. 根据控件句柄读控件在内存的数据_WPF 2020界面开发新纪元——Accordion控件、图表功能升级...
  10. MySQL--常见ALTER TABLE 操作