从apache下载的tar.gz的hadoop-1.1.0包中本来就包括了src的源码。可以方便我们查看源码调试。
(从github上下载了最新的hadoop-common的源码,发现hadoop-2.0已经是使用maven管理代码了。)
在eclipse中新建java project,去掉“Use Default location”的复选框的勾,自定义项目为hadoop-1.1.0程序所在的位置。然后点击finish即可。
完成后,项目下面的lib包,以及Source Folder源码包都已经正确的配置好了。如下图。
根据网上的资料,编译hadoop的源码,需要用到sed,sh的linux shell命令。安装好了cygwin,把c:\cygwin\bin加入到Path目录。然后直接使用eclipse ant(eclipse自带的)编译。
Winseliu@WINSE ~ $ cygcheck -c cygwin Cygwin Package Information Package Version Status cygwin 1.7.17-1 OK
由于linux和windows的换行符的不同(同事周帅哥在导数据也遇到这样的问题),直接编译会失败。
需要对src/saveVersion.sh的shell文件进行修改:
- user=`whoami` + user=`whoami | tr -d '\r'`
然后再编译一次就ok了!
------------经过上面步骤已经可以正确的编译hadoop-core的源码了。
在监控集群的时刻,我们一般都在自己常用的windows系统上面通过50030和50070来了解集群的情况。但是如果没有域名服务器,那,我们就不得不修改hosts文件。我们可以通过使用ip地址替换对应的hostname来访问,但是比较麻烦。如果在服务器响应请求的时刻,解析生成html的时刻就已经是ip地址那就最好不过了!
在瞎逛的时刻,看高一个牛人实现过,但是没有提供方法和步骤。
其实,直接看看jsp的源码,修改起来不算太难。把jsp里面的hostname转换为IP地址即可。
把上图的hostname通过InetAddress获取转换为IpAddress地址。
- String namenodeHost = jspHelper.nameNodeAddr.getHostName(); + String namenodeHost = jspHelper.nameNodeAddr.getAddress().getHostAddress(); - InetAddress.getByName(namenodeHost).getCanonicalHostName() + ":" + + InetAddress.getByName(namenodeHost).getHostAddress() + ":" +
全部修改完成后,再次运行hadoop-1.1.0 build.xml的ant命令,会调用自定义的jsp-compile把jsp转换成java类保存到build/src目录下面。javac编译的时刻会同时编译build/src目录下的源码。
如果你只想编译这些jsp,把javac中的srcdir的目录只保留build.src应该就可以咯。
我是直接把build/src作为Source Folder,然后把这个Source Folder下的编译文件放置的特定的目录,然后覆盖原来jar里面的class即可!
参考:
Hadoop源代码eclipse编译教程[ http://wenku.baidu.com/view/c1ad44323968011ca3009199.html ]
相关推荐
win 7 64上编译 Hadoop 2.7.3 源码 的真实经历。
Centos6.8 32位 64位下编译 hadoop 2.6.4 源码
hadoop cdh 编译所需下载的所有软件,很全的
编译hadoop2.7.1所需要的软件,这里有个合集,包括hadoop2.7.1源码,findbugs1.3.9,maven3.3.9,protobuf2.5.0,ant1.9.4
Hadoop2.7.2 centos7 64位编译后的库文件
替换掉安装目录下的lib即可,不会的留言
编译Hadoop源码需要的maven文件,编译Hadoop源码需要的maven文件.
2.6.0源码编译生成的lib包目录。替换官网下载的资源里的lib目录即可
hadoop源码,官方,放心下载,完整版,阅读hadoop源代码的目的不一定非是工作的需要,你可以把他看成一种修养,通过阅读hadoop源代码,加深自己对分布式系统的理解,培养自己踏实做事的心态。
官网荡下的源码,自己亲手编译的hadoop2.x 64位,给大家分享下 文件太大放的是百度网盘链接,目前有hadoop2.3.0,后面的版本我会陆续更新。
解决Unable to load native-hadoop library for your platform... using builtin-java classes where applicable。基于macos Yosemite 10.10.5 编译的Hadoop2.7.1源码。
Hadoop及源码 Hadoop及源码 Hadoop及源码 Hadoop及源码
Hadoop源码编译
编译hadoophadoop-3.2.2-src的源码
编译hadoop所用软件findbugs,linux cenos6.10上验证可用
win10环境下hadoop-3.2.1编译后的源码包,以及win10环境编译所使用的软件及工具,hadoop-3.2.1-src.tar.gz、protobuf-2.5.0.zip和protoc-2.5.0-win32.zip、zlib-1.2.5.tar.gz、cmake-3.18.4-win64-x64.zip、Git-...
Hadoop源码编译好的源码(eclipse可直接导入)直接eclipse->import->Existing Maven Projects即可无错误阅读Hadoop源码。亲给个好评吧~
java 关联hadoop源码 查看底层实现,mapReduce实现 HDFS实现
包含hadoop2.6.0源码和eclipse开发hadoop所用插件,下载即可用。
主要是编译Hadoop的详细步骤,流程,对每个流程做的总结