hadoop eclipse插件生成
hadoop eclipse插件生成
做了一年的hadoop开发。还没有自动生成过eclipse插件,一直都是在网上下载别人的用,今天有时间,就把这段遗憾补回来,自己生成一下,废话不说,開始了。
本文着重介绍Eclipse插件的生成、配置过程、常见错误的解放方法以及使用Eclipse插件測试执行wordcount演示样例。
一、环境说明
本列中的hadoop eclipse插件通过eclipse生成(未使用命令生成是由于用命令生成插件过程中发生的一些问题。不easy查看和改动,用eclipse非常直观,方便出错校正),当中hadoop版本号为 1.2.1(stable版)。操作系统为Centos。IDE为myeclipse 2013(用eclipse也一样。没差别)。
下面的HADOOP_HOME表示hadoop的安装文件夹。
二、插件生成
1.将$HADOOP_HOME/src/contrib/eclipse-plugin导入eclipseproject。
本例中将/opt/hadoop-1.2.1/src/contrib/eclipse-plugin文件夹导入eclipse。
如加入完毕后的项目名称为“MapReduceTools”。例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1X3h1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
2.把hadoop-core-1.2.1.jar增加环境变量
右击项目——>build path——>configure buildpath,将现有的hadoop-core jar包删除(默认增加的包。已不在classpath中)。然后将$HADOOP_HOME/hadoop-core-1.2.1.jar增加classpath。
3.改动各项配置文件:
(1).改动build.properties:
增加eclipse的安装文件夹和hadoop版本。參考内例如以下
eclipse.home = 你的eclipse安装文件夹
version = 你的hadoop版本
个人改动后的文件内如例如以下:
#add by jack zhu
eclipse.home = /opt/myeclipse-2013
version = 1.2.1
#add by jack zhu output.. = bin/
bin.includes = META-INF/,plugin.xml,resources/,classes/,classes/,lib/
plugin.xml,\
resources/,\
classes/,\
classes/,\
lib/
(2).改动build.xml:
该文件需改动三处。參考例如以下。当中改动的地方均位于两个“<!--add by zhu-->”标记的中间:
<project default="jar" name="eclipse-plugin"> <import file="../build-contrib.xml"/> <path id="eclipse-sdk-jars">
<fileset dir="${eclipse.home}/plugins/">
<include name="org.eclipse.ui*.jar"/>
<include name="org.eclipse.jdt*.jar"/>
<include name="org.eclipse.core*.jar"/>
<include name="org.eclipse.equinox*.jar"/>
<include name="org.eclipse.debug*.jar"/>
<include name="org.eclipse.osgi*.jar"/>
<include name="org.eclipse.swt*.jar"/>
<include name="org.eclipse.jface*.jar"/> <include name="org.eclipse.team.cvs.ssh2*.jar"/>
<include name="com.jcraft.jsch*.jar"/>
</fileset>
</path> <!--add by zhu(1)-->
<path id="hadoop-lib-jars">
<fileset dir="${hadoop.root}/">
<include name="hadoop-*.jar"/>
</fileset>
</path>
<!--add by zhu--> <!-- Override classpath to include Eclipse SDK jars -->
<path id="classpath">
<pathelement location="${build.classes}"/>
<pathelement location="${hadoop.root}/build/classes"/>
<path refid="eclipse-sdk-jars"/>
<!--add by zhu(2)-->
<path refid="hadoop-lib-jars"/>
<!--add by zhu-->
</path> <!-- Skip building if eclipse.home is unset. -->
<target name="check-contrib" unless="eclipse.home">
<property name="skip.contrib" value="yes"/>
<echo message="eclipse.home unset: skipping eclipse plugin"/>
</target> <target name="compile" depends="init, ivy-retrieve-common" unless="skip.contrib">
<echo message="contrib: ${name}"/>
<javac
encoding="${build.encoding}"
srcdir="${src.dir}"
includes="**/*.java"
destdir="${build.classes}"
debug="${javac.debug}"
deprecation="${javac.deprecation}">
<classpath refid="classpath"/>
</javac>
</target> <!-- Override jar target to specify manifest -->
<target name="jar" depends="compile" unless="skip.contrib">
<mkdir dir="${build.dir}/lib"/>
<!--add by zhu(3)-->
<copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-cli-1.2.jar" todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-lang-2.4.jar" todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-configuration-1.6.jar" todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib" verbose="true"/>
<!--add by zhu-->
<jar
jarfile="${build.dir}/hadoop-${name}-${version}.jar"
manifest="${root}/META-INF/MANIFEST.MF">
<fileset dir="${build.dir}" includes="classes/ lib/"/>
<fileset dir="${root}" includes="resources/ plugin.xml"/>
</jar>
</target> </project>
注:以上文件内容可直接拷贝过去使用,没有不论什么差别。
(3).改动META-INF/MANIFEST.MF文件:
在该文件里增加上面步骤(2)的第三步中增加的jar包:lib/hadoop-core.jar,lib/commons-configuration-1.6.jar,lib/commons-httpclient-3.0.1.jar,lib/commons-lang-2.4.jar,lib/jackson-core-asl-1.8.8.jar,lib/jackson-mapper-asl-1.8.8.jar
该文件内容參考例如以下:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: MapReduce Tools for Eclipse
Bundle-SymbolicName: org.apache.hadoop.eclipse;singleton:=true
Bundle-Version: 0.18
Bundle-Activator: org.apache.hadoop.eclipse.Activator
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.jdt.launching,
org.eclipse.debug.core,
org.eclipse.jdt,
org.eclipse.jdt.core,
org.eclipse.core.resources,
org.eclipse.ui.ide,
org.eclipse.jdt.ui,
org.eclipse.debug.ui,
org.eclipse.jdt.debug.ui,
org.eclipse.core.expressions,
org.eclipse.ui.cheatsheets,
org.eclipse.ui.console,
org.eclipse.ui.navigator,
org.eclipse.core.filesystem,
org.apache.commons.logging
Eclipse-LazyStart: true
Bundle-ClassPath: classes/,
lib/hadoop-core.jar,lib/commons-configuration-1.6.jar,lib/commons-httpclient-3.0.1.jar,lib/commons-lang-2.4.jar,lib/jackson-core-asl-1.8.8.jar,lib/jackson-mapper-asl-1.8.8.jar
Bundle-Vendor: Apache Hadoop
注:以上文件内容可直接拷贝过去使用。没有不论什么差别。
4.在build.xml中运行ant进行编译和打包:
在该页面右击——>Run As Ant Build
假设一切顺利的话。ant 编译打包完毕后,将会在$HADOOP_HOME/contrib/eclipse-plugin文件夹下生成hadoop-eclipse-plugin-1.2.1.jar
5.将刚生成的jar包放入eclipse的安装文件夹下的dropins文件夹下,然后重新启动eclipse
三、Eclipse插件配置
先确保自己已把Eclipse插件放入Eclipse下的插件包中,并重新启动Eclipse。
1.配置Eclipse插件
进入 Eclipse 后。依照下面步骤进行设置 :在菜单条中依次单击“Window”→“Show View”→“Other...” ,在对话框中依次单击“MapReduce Tools”→“Map/Reduce Locations” ,
会弹出例如以下图 所看到的的对话框,按图中提示填写内容。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1X3h1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
经上述步骤后。回到主界面。可在“Project Explore”视图中查看分布式文件系统的内容,如显演示样例如以下图所看到的的内容。说明 Eclipse 插件成功安装。
四、常见错误解决
1.Call to localhost/127.0.0.1:9000 failed on local exception: java.io.EOFException
这是用于Hadoop Eclipse插件和Hadoop集群版本号不一致,或者说插件有问题,解决方法就是依照本文的步骤,自己生成一个Eclipse插件。
2.java.net.NoRouteToHostException:No route to host
这是由于该port(9000)拒绝连接,解决方法见:
http://blog.csdn.net/zhu_xun/article/details/41115389
五、新建Map/Reduceproject
新建一个 MapReduce project。在菜单条中,依次单击“New”→“Other...”→“MapReduce Project” 。会弹出例如以下图所看到的的对话框。在该对话框中填写项目名称,并配
置 Hadoop 安装文件夹
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1X3h1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1X3h1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
六、測试执行MapReduce作业
1.准备数据。例如以下图所看到的。在 HDFS 上创建文件夹 /test/input,并上传几个文本文件到该文件夹中。
准备 MapReduce 作业。可直接将 Hadoop 源码中 src\examples\org\apache\hadoop\examples 文件夹下的 WordCount.java 拷贝到新建的 MapReduceJobs project中。
配置输入 / 输出路径。如图下所看到的,在 WordCount.java 中右击。在弹出的快捷菜单中依次单击“Run As”→“Run Configurations...” ,会出现图 1-17 所看到的的对话框。
双
击“Java Applications”选项,在新建的对话框中输入作业的输入 / 输出路径(中间用空格分隔) ,并单击“Apply”button保存
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1X3h1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
执行作业。在 WordCount.java 中右击,在弹出的快捷菜单中依次单击“Run As”→“Run on Hadoop” ,会出现例如以下图所看到的的对话框。按图中的提示选择后,单击“Finish”button,作业開始执行。
假设不想自己生成,能够下载我生成的hadoop eclipse 插件:
http://download.csdn.net/detail/u012875880/8154149
hadoop eclipse插件生成的更多相关文章
- Hadoop学习笔记—6.Hadoop Eclipse插件的使用
开篇:Hadoop是一个强大的并行软件开发框架,它可以让任务在分布式集群上并行处理,从而提高执行效率.但是,它也有一些缺点,如编码.调试Hadoop程序的难度较大,这样的缺点直接导致开发人员入门门槛高 ...
- The command ("dfs.browser.action.delete") is undefined 解决Hadoop Eclipse插件报错
Hadoop Eclipse插件 报错. 使用 hadoop-eclipse-kepler-plugin-2.2.0.jar 如下所示 Error Log 强迫症看了 受不了 The command ...
- 第四章.使用ant编译hadoop eclipse插件
从hadoop 0.20.203以后,hadoop的发布包里,不再对eclipse插件进行jar包发布,而是给出了打包的代码,需要各位开发人员自己进行打包和设置.我们打的包必须跟自己使用的hadoop ...
- 每天收获一点点------Hadoop Eclipse插件的使用
本文所用软件版本:myeclipe2014 hadoop1.2.1 1.安装Hadoop开发插件 下载hadoop-eclipse-plugin-1.2.1.jar,拷贝到myeclipse根目 ...
- Hadoop Eclipse 插件制作以及安装
在本地使用Eclipse调试MapReduce程序,需要Hadoop插件,笔摘记录下制作安装过程. 准备工作(hadoop-2.6.0为例): 搭建好Hadoop环境 下载Hadoop安装包,解压到某 ...
- Hadoop eclipse插件使用过程中出现的问题
http://download.csdn.net/detail/java2000_wl/4326323 转自http://www.ithao123.cn/content-945210.html 由于h ...
- hadoop —— eclipse插件安装配置
安装: 1. 将hadoop-core-0.20.2-cdh3u6/contrib/eclipse-plugin/hadoop-eclipse-plugin-0.20.2-cdh3u6.jar拷贝到e ...
- 更新 hadoop eclipse 插件
卸载hadoop 1.1.2插件.并安装新版hadoop 2.2.0插件. 假设直接删除eclipse plugin文件夹下的hadoop 1.1.2插件,会导致hadoop 1.1.2插件残留在ec ...
- Windows平台下安装Eclipse插件,开发Hadoop应用
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
随机推荐
- ubuntu系统下如何禁用笔记本触摸板
命令行方式,得每次用终端输入命令行设置,不方便. sudo rmmod psmouse # 用来禁用触摸板 sudo modprobe psmouse # 用来启用触摸板 想 ...
- 【bzoj4383】[POI2015]Pustynia 线段树优化建图+差分约束系统+拓扑排序
题目描述 给定一个长度为n的正整数序列a,每个数都在1到10^9范围内,告诉你其中s个数,并给出m条信息,每条信息包含三个数l,r,k以及接下来k个正整数,表示a[l],a[l+1],...,a[r- ...
- BZOJ 4753 [Jsoi2016]最佳团体 ——01分数规划 树形DP
要求比值最大,当然用分数规划. 二分答案,转化为选取一个最大的联通块使得它们的和大于0 然后我们直接DP. 复杂度$O(n^2\log {n})$ #include <map> #incl ...
- BZOJ 4566 [Haoi2016]找相同字符 ——广义后缀自动机
建立广义后缀自动机. 然后统计子树中的siz,需要分开统计 然后对(l[i]-l[fa[i]])*siz[i][0]*siz[i][1]求和即可. #include <cstdio> #i ...
- BZOJ2241 [SDOI2011]打地鼠 【模拟】
题目 打地鼠是这样的一个游戏:地面上有一些地鼠洞,地鼠们会不时从洞里探出头来很短时间后又缩回洞中.玩家的目标是在地鼠伸出头时,用锤子砸其头部,砸到的地鼠越多分数也就越高. 游戏中的锤子每次只能打一只地 ...
- C++ 中头文件(.h)和源文件(.cc)的写法简述
用C++编写比较大型的项目时,文件的分割管理确实确实是非常必要的 .下面就非常简洁明了地谈谈头文件(.h)和源文件(.cc)应该怎么写. 头文件(.h):写类的声明(包括类里面的成员和方法的声明).函 ...
- 淘金(bzoj 3131)
Description 小Z在玩一个叫做<淘金者>的游戏.游戏的世界是一个二维坐标.X轴.Y轴坐标范围均为1..N.初始的时候,所有的整数坐标点上均有一块金子,共N*N块. 一阵风吹 ...
- 【C++】DLL内共享数据区在进程间共享数据(重要)
因项目需要,需要在DLL中共享数据,即DLL中某一变量只执行一次,在运行DLL中其他函数时该变量值不改变:刚开始想法理解错误,搜到了DLL进程间共享数据段,后面发现直接在DLL中定义全局变量就行,当时 ...
- 标准C程序设计七---26
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- 使用 ftrace 调试 Linux 内核,第 2 部分
ftrace 操作概述 使用 ftrace 提供的跟踪器来调试或者分析内核时需要如下操作: 切换到目录 /sys/kernel/debug/tracing/ 下 查看 available_tracer ...