Hadoop2.3.0-CDH5.1.3的eclipse插件编译

最近在使用CDH5,想找个eclipse插件用用。无奈万般百度而不得,最后发现只能自己编译。可是作为萌新从来没有编译过啊。网上找到的帖子又各不相同,只能自己摸索啦。最后为了避免遗忘,还是写个blog大致记录一下。

环境:windows,Hadoop2.3.0-CDH5.1.3,eclipse版本:kapler

1,安装Ant

      版本apache-ant-1.9.6,常规的复制进去,配PATH,很简单不再赘述。


2,安装Maven

      版本apache-maven-3.3.9,常规的复制进去,配PATH,很简单不再赘述。

Hadoop2.3.0-CDH5.1.3的eclipse插件编译_第1张图片

3,安装Ivy

      版本apache-ivy-2.4.0,常规的复制进去,配PATH,然后找到ivy-2.4.0.jar,把ivy-2.4.0.jar复制到%ANT_HOME%\lib 下。然后进入IVY_HOME/src/example/hello-ivy目录,运行ant可见:

Hadoop2.3.0-CDH5.1.3的eclipse插件编译_第2张图片


4.下载CDH版本Hadoop源码

 地址:http://archive.cloudera.com/cdh5/cdh/5/ 

下载对应版本的tar.gz文件解压到本地。我这里是D:\hadoop-2.3.0-cdh5.1.3\hadoop-2.3.0-cdh5.1.3,并把这个目录添加到HADOOP_HOME环境变量中(不添加最后运行插件过程中会报错),PATH也加入对应的${HADOOP_HOME}\bin


5.复制jar包

需要将${HADOOP_HOME}/share/hadoop/mapreduce1下面的所有jar包拷贝到

${HADOOP_HOME}/src/hadoop-mapreduce1-project 目录下面

${HADOOP_HOME}/share/hadoop/mapreduce1/lib下面的所有内容拷贝到

${HADOOP_HOME}/src/hadoop-mapreduce1-project /lib目录下面

6.配置build.xml文件

build.xml文件在${HADOOP_HOME}/src/hadoop-mapreduce1-project/src/contrib/eclipse-plugin 目录下

  
  
    
    
     
        
    
    
  


    
       
     target="1.7"
     source="1.7"
     deprecation="${javac.deprecation}"
     includeantruntime="on">
     
    
  

  
  
    
    
    
    
    
    
      
    
    
    
    
    
    
    
    
    
    
    
     
    
      
      
    
  


 
  

修改build.properties

增加如下:

eclipse.home=D:/eclipse/    
reactor.repo=https://repository.cloudera.com/content/repositories/snapshots
version=2.3.0-mr1-cdh5.1.3
 

 
  

修改META-INF下的MANIFEST.MF文件

Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-configuration-1.6.jar,lib/commons-httpclient-3.1.jar,lib/jackson-core-asl-1.8.8.jar,lib/commons-lang-2.6.jar,lib/jackson-mapper-asl-1.8.8.jar,lib/hadoop-common-2.3.0-cdh5.1.3.jar,lib/hadoop-auth-2.3.0-cdh5.1.3.jar,lib/hadoop-hdfs-2.3.0-cdh5.1.3.jar,lib/slf4j-log4j12-1.7.5.jar,lib/slf4j-api-1.7.5.jar,lib/log4j-1.2.17.jar,lib/protobuf-java-2.5.0.jar,lib/hadoop-annotations-2.3.0-cdh5.1.3.jar,hadoop-tools-2.3.0-mr1-cdh5.1.3.jar,lib/guava-11.0.2.jar,lib/commons-collections-3.2.1.jar

7.修改build-contrib.xml文件

位于在上一层目录中

  on"/>

8.编译插件

最后进入${HADOOP_HOME}\src\hadoop-mapreduce1-project\src\contrib\eclipse-plugin执行ant即可。

执行成功后在提示的目录中可以找到jar包了,右键使用rar打开,找到plugin.xml文件在172行左右加入如下代码。添加后替代原来的plugin.xml


      
      
      
      
      
      
      
      
        
      
      
      
        
      
       
      
      
      
       


9.下载winutils.exe

很多地方都有,无需考虑版本问题,貌似都是一样的。放到${HADOOP_HOME}\bin 下。

如果找不到可以去http://www.aboutyun.com/thread-8311-1-1.html下载

10.插件的配置

Window→preference→hadoop 目录选择${HADOOP_HOME} \share\hadoop\mapreduce1而不是${HADOOP_HOME}


最后说几个常见的问题:

1,ant过程中连接失败:请挂VPN

2,插件放进去点了没反应,或者等等:请查看workplace里面的log应该有报错,通常为NoClassDefFoundError,那么就把对应的jar包加到插件的jar总,并且MF文件中作对应修改。

3 .运行项目提示 java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.:忘记配置  ${HADOOP_HOME}环境。

4 .一切都弄好了为何还是连不上?提示20000 millis timeout while waiting for channel to be ready for connect. ch :?

    请修改windows 的hosts文件 加入对应的全部主机,有的说是要开启windows的telnet,并且关闭防火墙。不管他们开没开,不过telnet我是没开的,防火墙倒是关了,一样成功。关键在于客户机作为hadoop集群的外部一个节点使用eclipse插件访问的时候使用的是自己hosts文件还不是hadoop集群的。所以必须在自己的客户机上配置hosts文件才行(原谅我忘记这句话参考自哪篇文章了,实在是看了太多帖子了)


最后附上成功截图一张,左边为插件的HDFS的文件浏览,右边是跑的测试操作HBase的例子。

Hadoop2.3.0-CDH5.1.3的eclipse插件编译_第3张图片

参考:http://my.oschina.net/muou/blog/408543

            http://blog.csdn.net/dwld_3090271/article/details/41546323

            http://blog.csdn.net/luckymelina/article/details/19923095

            http://blog.csdn.net/yunlong34574/article/details/21331927

你可能感兴趣的:(hadoop)