hadoop_eclipse及HDT插件的使用
Hadoop Development Tools (HDT)是开发hadoop应用的eclipse插件,http://hdt.incubator.apache.org/介绍了其特点,安装,使用等,针对Windows版的eclipse,介绍一种不同的安装方式、和使用方式。
1 下载HDT
打开:http://hdt.incubator.apache.org/download.html,部分页面:
下载HDT 0.0.2.incubating (Binary)版。点击“tar.gz”,跳转到:
http://www.apache.org/dyn/closer.cgi/incubator/hdt/hdt-0.0.2.incubating/hdt-0.0.2.incubating-bin.tar.gz,部分页面:
点击红框部分的连接,下载HDT,解压看到文件夹内容:
2 安装HDT插件
下载当前最新版(eclipse oxygen)
点击Download Packages。
下载64bit版本。文件为:eclipse-jee-oxygen-3a-win32-x86_64.zip,解压:
将HDT的features和plugins中的文件,对应放到上面的文件夹内。
3 下载hadoop并配置环境变量
下载Hadoop
输入网址:http://hadoop.apache.org/,看到下面的部分。
点击Download进入下载页面:
下载2.6.5版本的binary,注意下载的时候选择一个国内的镜像,这样下载的速度会比较快。解压到指定目录,例如:E:\hadoop-2.6.5。文件夹包括:
配置环境变量
配置HADOOP_HOME、HADOOP_USER_NAME环境变量、PATH(系统变量)
HADOOP_HOME配置为E:\hadoop-2.6.5,PATH添加%HADOOP_HOME%\bin
Windows下开发
为了能在Windows平台下做开发,还需要两个文件winutils.exe和hadoop.dll
将winutils.exe放在E:\hadoop-2.6.0\bin目录下,将hadoop.dll放在C:\Windows\System32下
4 安装HDT
1)点击顺序:File->Other->展开Hadoop,入下面两幅图所示:
2)选择,如下图:
给项目取一个名称:MapReduce_4_27,并选择“Use default Hadoop”(默认的设置)。
3)配置Hadoop安装目录
点击2)步奏中的进行配置,其中配置的就是刚才hadoop解压文件的路径。
点击“Apply and Close”,显示如下界面:
点击,显示如下界面:
最后点击“Finish”。
4)导入开发包和javadoc文档
右键->项目属性->选择Property->在弹出的对话框左侧列表中选择Java Build Path->选择Libraries->选择Add Library->弹出窗口内选择User Library->点击Next->点击User Libraries->点击New->在弹出的窗口内输入必要信息->将必要的jar包添加进去。
所需的开发包在E:\hadoop-3.0.2\share\hadoop,这个文件夹是刚才解压hadoop安装包解压的文件夹。
导入doc文档
右键lib文件夹->点击Build Path->点击Config Build Path
点击Javadoc Location->点击Browse选择doc文档路径。
点击validate可以验证是否是正确的路径,下面分别展示了正确的路径和非正确的路径验证信息。
5 使用HDT(MapReduce编程)
设置JVM参数
创建好Map/Reduce Project后要设置JVM参数设置为:
-Djava.library.path=$HADOOP_HOME/lib/native
Mapper:创建Mapper类的子类
例,模板自动生成的map函数框架
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper; public class Tmap extends Mapper<LongWritable, Text, Text, IntWritable> { public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
} }
Reducer:创建Reducer类的子类
例:模板自动生成的reduce函数框架
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer; public class Treduce extends Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterable<IntWritable> values, Context context)
throws IOException, InterruptedException {
while (values.iterator().hasNext()) {
// replace ValueType with the real type of your value
// process value
}
} }
MapReduce Driver:创建驱动
例:模板自动生成的驱动框架
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.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class TMR { public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {
Job job = new Job(); job.setJarByClass( ... ); job.setJobName( "a nice name" ); FileInputFormat.setInputPaths(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1])); // TODO: specify a mapper
job.setMapperClass( ... ); // TODO: specify a reducer
job.setReducerClass( ... ); job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class); boolean success = job.waitForCompletion(true);
System.exit(success ? 0 : 1);
}; }
New MR Cluster:集群配置
可以点击下图中的New MR Cluster配置集群
也可以点击eclipse的图标来配置集群:
配置页面如下:
Resource Manager Node:配置资源管理节点,对应Hadoop配置文件
DFS Master:配置分布式文件系统主节点,即NameNode节点的端口号。对应配置文件fs.default.name的值
转载与引用请注明出处。 时间仓促,水平有限,如有不当之处,欢迎指正。
hadoop_eclipse及HDT插件的使用的更多相关文章
- Angular杂谈系列1-如何在Angular2中使用jQuery及其插件
jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...
- Jenkins 安装的HTML Publisher Plugin 插件无法展示ant生成的JunitReport报告
最近在做基于jenkins ant junit 的测试持续集成,单独ant junit生成的junitreport报告打开正常,使用Jenkins的HTML Publisher Plugin 插件无 ...
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件
昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务:今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索. 在solr服务中集成IKAnalyzer中文分词器的步骤: ...
- 使用Visual Studio SDK制作GLSL词法着色插件
使用Visual Studio SDK制作GLSL词法着色插件 我们在Visual Studio上开发OpenGL ES项目时,避免不了写Shader.这时在vs里直接编辑shader就会显得很方便. ...
- 工欲善其事,必先利其器 之 VS2013全攻略(安装,技巧,快捷键,插件)!
如有需要WPF工具的朋友可以移步 工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧 之前一篇<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATI ...
- Jquery mobiscroll 移动设备(手机)wap日期时间选择插件以及滑动、滚动插件
Jquery Mobiscroll是一个用于触摸设备(Android phones, iPhone, iPad, Galaxy Tab)的日期和时间选择器jQuery插件.以及各种滑动插件 可以让用户 ...
- 10个最好用的HTML/CSS 工具、插件和资料库
大家在使用HTML/CSS开发项目的过程中,有使用过哪些工具,插件和库?下面介绍的10种HTML/CSS工具,插件和资料库,是国外程序员经常用到的. Firebug Lite FirebugLite ...
- 在Sublime Text 3上安装代码格式化插件CodeFormatter
1.了解CodeFormatter插件 在Sublime Text 3中编写代码,为了能让我们的代码格式变得漂亮整洁,需要一个能自动格式代码的插件.这里发现CodeFormatter插件不错,它能支持 ...
随机推荐
- Socket接收器——Acceptor
Acceptor是JIoEndpoint的内部类,主要的职责就是监听是否有客户端套接字连接并接收socket,再将socket交由任务执行者(Executor)执行.不断从系统底层读取socket,接 ...
- 毕加索的艺术——Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选
毕加索的艺术--Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选 官网: http://square.github.i ...
- Linux下修改主机名步骤
Linux下修改主机名为gpdb 步骤一.运行vi /etc/sysconfig/network命令 NETWORKING=yesHOSTNAME=gpdb 步骤二.运行hostname gpdb命令 ...
- Linux Debugging(二): 熟悉AT&T汇编语言
没想到<Linux Debugging:使用反汇编理解C++程序函数调用栈>发表了收到了大家的欢迎.但是有网友留言说不熟悉汇编,因此本书列了汇编的基础语法.这些对于我们平时的调试应该是够用 ...
- Dynamics CRM2011/2013 站点地图sitemap的翻译
实体.属性字段.ribbon等的翻译可以通过解决方案来解决(具体可见我前面的博客:http://blog.csdn.net/vic0228/article/details/37690913),但解决方 ...
- 4.6、Libgdx线程介绍
(原文:http://www.libgdx.cn/topic/48/4-6-libgdx%E7%BA%BF%E7%A8%8B%E4%BB%8B%E7%BB%8D) 所有的ApplicationList ...
- Spring揭秘 读书笔记 五 容器的启动
Spring的IoC容器所起的作用,就是生产bean,并维持bean间的依赖关系.它会以某种方式加载Configuration Metadata(通常也就是XML格式的配置信息),然后根据这些信息绑定 ...
- [leetcode]经典算法题- String to Integer (atoi)
题目描述: 把字符串转化为整数值 原文描述: Implement atoi to convert a string to an integer. Hint: Carefully consider al ...
- 【翻译】对于Ext JS 5,你准备好了吗?
原文:Are You Ready for Ext JS 5? Ext JS 5:准备升级 对于Ext JS 5加入Sencha的大家庭,我们感到非常高兴!作为一个主要版本,在Ext JS 5引入了一堆 ...
- Ext JS 5初探(三)
在上文提到了本地化文件的问题,然后在Ext JS 5的包里找了找,居然还没包含本地化包.我估计目前还不到考虑本地化的时候.在Sencha Touch中,是没有本地化包的,但是要让Ext JS也不包含本 ...