`
winse
  • 浏览: 94752 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

编译hadoop的jsp源码

阅读更多

从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 ]

 

 

 

  • 大小: 33.8 KB
  • 大小: 19.2 KB
  • 大小: 47.6 KB
  • 大小: 75.1 KB
  • 大小: 115.8 KB
  • 大小: 93.3 KB
  • 大小: 26.6 KB
分享到:
评论

相关推荐

    Hadoop源码eclipse编译.pdf

    本文档将详细介绍如何在Windows环境下使用Eclipse IDE编译Hadoop源码的过程,为读者提供一个直观的学习指南。 #### 二、准备工作 ##### 2.1 Hadoop源码下载 首先,需要从Apache官方SVN仓库下载Hadoop源码。下载...

    hadoop-1.2.1运行WordCount

    - 需要在Hadoop-1.2.1源码包中的`src/examples/org/apache/hadoop/examples/WordCount.java`进行必要的修改。 - 编译Java文件,这一步可能会比较耗时。 2. **替换编译后的类文件**: - 将编译好的`WordCount*....

    采用Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现.zip

    资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。

    apache-tomcat-9.0.30-deployer_apache_源码

    7. `work`目录:存放Tomcat处理JSP页面时生成的编译后的Java类文件,方便调试和分析。 在部署Web应用程序到Tomcat时,开发者通常会创建一个WAR文件,然后使用Tomcat的部署工具(如`bin/deployer/htpasswd`)进行...

    一个牛人给初学JAVA者的建议

    这与C++等其他语言有所不同,Java的源码和编译结果都是以类的形式存在,增强了代码的组织性。 其次,Java的一个重要特点是其对指针的处理。Java完全屏蔽了指针操作,引入了垃圾回收机制,这极大地简化了内存管理,...

    Java:各种用Java编写的程序和应用程序

    最后,JVM将字节码解释执行或通过即时编译(JIT)转化为机器码,以提高性能。 Java程序的结构基于类和对象,它遵循类的继承、封装和多态等面向对象原则。类定义了对象的属性和行为,而对象是类的实例。Java支持接口...

    Hive-1.2.1-hwi配置

    1. `org.apache.jasper.jar`: 该JAR包用于支持JSP页面的编译和运行。可以从以下链接下载: ``` http://cn.jarfire.org/org.apache.jasper.html ``` 2. `commons-el.jar`: 用于支持表达式语言(EL)的解析。可以从...

    应用程序

    2. **Web应用**:Java Servlets、JavaServer Pages(JSP)、Spring框架等技术用于构建动态网站和企业级应用服务器端逻辑。 3. **移动应用**:尤其是在Android平台上,Java是主要的开发语言,用于创建各种手机应用,...

    AlexB

    此外,Java还有丰富的类库,如Spring框架用于企业级应用开发,Apache Hadoop用于大数据处理,JUnit用于单元测试,以及无数的其他库,覆盖了各种开发需求。 【AlexB-master】文件名通常表示这是项目的主分支或源码库...

    bananablue

    2. **编译产物**(Compiled Classes):编译后的.java文件变为.class文件,存放在build或target目录下。 3. **资源文件**(Resources):如图片、音频、配置文件等,可能在src/main/resources或其他指定路径。 4. **...

    tomcat_udemy

    【标题】"Tomcat Udemy" 课程源码解析 【描述】这是一份与"Maven项目"相关的学习资源,源自詹姆斯·李(James Lee)的Jenkins课程。在这个压缩包中,你将找到用于实践教学的源代码,这些代码是按照詹金斯的构建流程...

Global site tag (gtag.js) - Google Analytics