eclipsehadoop源码
‘壹’ 如何给eclipse安装hadoop插件找不到
1、下载Eclipse解压。
2、把hadoop-eclipse-plugin-1.1.2.jar放到eclipse的plugs目录下。
我的hadoop集群用的版本:hadoop1.1.2
hadoop0.20以后的版本的安装目录下contrib/没有eclipse的hadoop-*-eclipse-plugin.jar插件,需要自己用ant编译。
源文件在:hadoop-x.y.z/src/contrib/eclipse-plugin 下,注意:需要下载源目录的包,如查下载的是bin的压缩包,里面是没有eclipse插件的源文件的。
3、打开Eclipse
window-- Preferences 出现Hadoop Map/Rece
配置Hadoop installation directory:
注意:我的宿主机windows上并没有安装hadoop, hadoop安装在VM中的centos中
在windows下建了一个目录F:/myHadoop 把centos hadoop安装根目录下的jar包拷过来。
4、新建工程:Map/Rece Project
配置hadoop location:
5、刷新DFS Locations 列出HDFS服务器上的上的目录:
6、问题:
在Eclipse上可以列出hadoop集群上的目录,但不能创建文件,上传文件
原因:windows下Eclipse安装了hadoop插件,默认使用的是windows当前用户去操作hadoop,而我的hadoop集群当前的用户是grid
而Eclipse中hadoop locations 的高级参数配置,是不能修改这个用户的:
解决方法:
在windows用户和组的管理中,把当前用户修改成hadoop组grid用户。
但我的机器系统是win7家庭版,打不开用户和组管理:
不能已,用另一种方案:
windows上新建一个grid用户,然后再打开Eclipse,创建工程,进行以上的配置DFS Loactioins
发现这时,在Eclipse中可以列出目录,新建文件夹,上传文件了。( 或者修改hadoop集群上文件夹的权限,如:bin/hadoop fs -chmod 777 ./in, 下图第2个文件是修改hadoop集群文件平权限后上传的)
‘贰’ hadoopeclipse的插件怎么安装
1.插件安装
在$HADOOP_HOME/contrib/eclipse-plugin/文件夹中有个hadoop-eclipse-plugin-0.20.203.0.jar,把这个文件复制到eclipse/plugins(这是eclipse的插件目录)下面即可。
注意在直接复制时会出错,主要是缺少jar包。
解决方法:(1)将commons-httpclient-3.0.1.jar,jackson-core-asl-1.0.1.jar,jackson-mapper-asl-1.0.1.jar,commons-configuration-1.6.jar,lcommons-lang-2.4.jar(这几个jar包在$HADOOP_HOME/lib/下找到)放入hadoop-0.20.203.0-eclipse-plugin的lib下
(2)修改hadoop-0.20.203.0-eclipse-plugin/META-INF/MANIFEST.MF 中的Bundle-ClassPath项
1
Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-httpclient-3.0.1.jar,lib/jackson-core-asl-1.0.1.jar,lib/jackson-mapper-asl-1.0.1.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar
2.环境配置
启动Eclipse,然后在Window->Preferences->Hadoop Map/Rece中添加Hadoop的安装目录
配置hadoop环境:在Window–>Show View中打开Map/Rece Locations,在底部会看到新的选项。然后右键–>New Hadoop Location,
Location name是你自己取的名字,我这里用了hadoop,Map/Rece Master这里的host和port对应上面mapred-site.xml中mapred.job.tracker的值,我配置的是localhost和9001;DFS Master对应上面core-site.xml中fs.default.name中的值,我配置的是localhost和9000.
完成后,如果屏幕左上方的DFS Locations中的内容可以正常显示,说明配置一切成功。
3.运行wordcount
使用Eclipse编写Hadoop的程序了,按该方式创建File->New->Project->Map/Rece Project.命名为hadoop-test。
将hadoop-0.20.203.0/src/examples/org/apache/hadoop/examples下的wordcount.java复制到当前项目中。
注意:要在src中看到WordCount.java文件,如果已经复制过来还看不到,在hadoop-test上右击选择refresh试一试。
另外,直接复制过来的文件,第一行要注释掉 //package org.apache.hadoop.examples;
在Run configuration/Java Application/WordCount下进行程序参数设置
input为又本地导入HDFS得输入文件,其中包含两个文本文件,file01和file02
完成后,使用 Run As/Run on Hadoop运行~~~~
在HDFS系统视图下可以看到刚才得运行结果
中途碰到得问题:装得时候不知道怎么回事,项目侧边栏(Project explorer)看不见了。或者侧边栏是Package explorer,这种情况下是看不见DFS Locations的,应该在菜单栏
Window/Open pespective/<Map/Rece>。然后就能看到HDFS文件系统已经所创建得一些项目。
‘叁’ 在Ubuntu中,用mvn打包hadoop源代码是报错,咋回事
将hadoop源码解压到一个目录,注意目录层次不要太深,否则可能无法解压。
进入hadoop-maven-plugins文件夹,执行 mvn install
返回源码根目录,执行 mvn eclipse:eclipse –DskipTests
eclipse在任意目录创建新的WorkSpace
eclipse设置Maven:window->preference->maven->{Installations...;user Settings:maven\conf\settings.xml}
eclipse:File->inport->Existing Projects into WorkSpace->Hadoop源码根目录
‘肆’ 如何通过eclipse查看,阅读hadoop2.4源码
1.导入查看hadoop源码
(1)选择Existing Projects into Workspace
(2)选择源码路径
(3)查看源码
这样我们就完成了全部的内容。
2.阅读hadoop源码
其中比较常用的
Open Call Hierarchy:
用Open Call Hierarchy可以查看方法的调用层次。如果想知道一个方法在别的什么地方被调用了,这个功能就很好用了,实际中也很常用,比如要重构一个方法时,想 知道他对其它什么地方可能有影响,就可以用这个功能。在方法名上点击右键,选择Open Type Hierarchy即可,快捷键是Ctrl+Alt+H。可以在Call Hierarchy窗口看到方法的调用层次的导航。
Open Type Hierarchy:
用Open Type Hierarchy可以查看类的继承关系,可以在Hierarchy窗口看到继承层次的导航。在方法或类名上点击右键,选择Open Type Hierarchy即可,快捷键是F4。
这里在演示一下:
看到下面代码
介绍完毕,这里在介绍一些其他的跟踪源码的方法:
1、 用Open Declaration可以查看类、方法和变量的声明。这是最常用的一个功能了,如果在要追踪的对象上点右键,选择Open Declaration,可以跳转到其声明的地方。这个功能有个快捷键是F3,当然你也可以按住Ctrl键,鼠标移过去会变成一个小手,单击就可以了。
2、用Open Super Implemention可以查看当前方法在父类中的实现或接口中的声明(前提是该方法是对父类或接口中相应方法的重写),在方法名上点击右键,选择Open Super Implemention即可。