利用Ant构建Hadoop高效开发环境

2019-03-28 14:20|来源: 网络

最近Hadoop的研究中,都是利用Mockito来模拟数据进行,下一个阶段需要在Hadoop服务器上做大量的运行进行验证,同时也要为正式使用做准备。 

今天考虑使用Ant来搭建一个Hadoop的开发和调试环境,不使用hadoop自带的插件。

思路如下:

1、  利用Ant在开发机器上将代码编译、打包,最终得到可执行的jar包。

2、  利用Ant的SSH属性,将jar包传到hadoop服务器的指定工作目录。

这样就开发机器做为编码客户端,与执行服务器之间关联,代码部署的时间基本不用考虑,开发效率可以提高,也利于在真实环境进行验证程序。 

再扩展开来,可以利用Ant操作hadoop服务器,实现与开发客户端的交互,因为Ant可以通过SSH实现Linux服务器的命令操作。 

如下是根据需要改造的Ant的bulid.xml文件,实现了:目录清理、目录构建、编译、打包、SFTP上传功能: 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project name="AntTest" default="all" basedir=".">  
  3.       
  4.     <property name="src" location="./src" />  
  5.     <property name="build" location="./build/classes" />  
  6.     <property name="dist" location="./lib" />  
  7.   
  8.   
  9.     <path id="project.classpath">  
  10.         <fileset dir="D:\Project\Java\OpenSource\Hadoop\hadoop-0.20.205.0-bin\hadoop-0.20.205.0\lib">  
  11.             <include name="*.jar" />  
  12.         </fileset>  
  13.     </path>  
  14.   
  15.     <target name="all" depends="clean,sshexec"></target>  
  16.     <!-- Generate directory -->  
  17.     <target name="init">  
  18.         <tstamp />  
  19.         <mkdir dir="${build}" />  
  20.         <mkdir dir="${dist}" />  
  21.     </target>  
  22.   
  23.     <!-- compile java -->  
  24.     <target name="compile" depends="init">  
  25.         <javac srcdir="${src}" destdir="${build}" includeantruntime="no">  
  26.             <compilerarg line="-encoding GBK " />  
  27.             <!-- 给编译器指定编码,防止出现:"警告: 编码 GBK 的不可映射字符"-->  
  28.             <classpath refid="project.classpath" />  
  29.         </javac>  
  30.     </target>  
  31.     <!-- jar -->  
  32.     <target name="dist" depends="compile">  
  33.         <mkdir dir="${dist}" />  
  34.         <jar jarfile="${dist}/hadoop_project.jar" basedir="${build}" />  
  35.     </target>  
  36.   
  37.     <!-- clean -->  
  38.     <target name="clean">  
  39.         <delete dir="${build}" />  
  40.         <delete dir="${dist}" />  
  41.         <echo message="clean dir">  
  42.         </echo>  
  43.     </target>  
  44.   
  45.     <!-- run -->  
  46.     <target name="run" depends="dist">  
  47.         <java classpath="${build}" classname="demo.guide.chp7.HelloWorld">  
  48.             <classpath refid="project.classpath" />  
  49.             <!--     <classpath refid="${build}" />  -->  
  50.         </java>  
  51.     </target>  
  52.   
  53.     <!-- sftp -->  
  54.     <target name="sshexec" depends="run">  
  55.         <scp todir="root:****@192.168.9.181:/tmp/" trust="true">  
  56.             <fileset dir="${dist}" />  
  57.         </scp>  
  58.     </target>  
  59.   
  60. </project>  

相关问答

更多
  • 步骤如下:   1:从HBase集群中复制一份Hbase部署文件,放置在开发端某一目录下(如在/app/hadoop/hbase096目录下)。   2:在eclipse里新建一个java项目HBase,然后选择项目属性,在Libraries->Add External JARs...,然后选择/app/hadoop/hbase096/lib下相关的JAR包,如果只是测试用的话,就简单一点,将所有的JAR选上。   3:在项目HBase下增加一个文件夹conf,将Hbase集群的配置文件hbase-site ...
  • Docker的英文本意是码头工人,也就是搬运工,这种搬运工搬运的是集装箱(Container),集装箱里面装的可不是商品货物,而是任意类型的App,Docker把App(叫Payload)装在Container内,通过Linux Container技术的包装将App变成一种标准化的、可移植的、自管理的组件,这种组件可以在你的latop上开发、调试、运行,最终非常方便和一致地运行在production环境下。 Docker的核心底层技术是LXC(Linux Container),Docker在其上面加了薄薄的 ...
  • 在Eclipse的Windows->Preferences中,选择Hadoop Map/Reduce,设置好Hadoop的安装目录,这里,我直接从linux的/home/hadoop/hadoop-1.0.3拷贝过来的,点击OK按钮!
  • 1、构建linux开发环境要看具体的开发环境 。 2、一般来说,linux系统具备大部分的开发环境,比如 gcc/g+++vim可以作为c/c++开发环境 。 python、perl等脚本都是默认支持的。
  • 1.关闭hdfs权限:hdfs-site.xml中 dfs.permissions false 2.检查eclipse插件是否设置了hadoop安装目录:将与linux下安装的hadoop相同版本的hadoop解压到windows下一个文件夹,然后指定hadoop插件目录,插件目录在preferences的map/reduce的hadoop installation location 3.在windows的hosts文件中添加hadoop所有节点的ip和主机名 4.关闭linux系统防火墙 5.把hadoo ...
  • 我的eclipse是装在WINDOWS下的,HADOOP在CENTOS生产环境。 但原理是一样额 http://club.sm160.com/showtopic-937269.aspx HADOOP 版本是hadoop1.0.0(和你的hadoop1.0.4配置相同)
  • 可以的 但是网络状况要好 伪分布式你在阿里云买一台就可已搭集群呢
  • GitHub从一开始就运营良好,员工拥有较高满意度,看看这些不太一样的做法: 每一位GitHub公司的新员工,官方博客将发表文章欢迎。 在GitHub内部,没有经理,需求内容与优先级由项目组自行决策。 选择自己的工作时间、工作地点。 员工来自开源社区。 能开源的尽可能开源。 富有激情、创意的员工使得GitHub得到了社区的广泛认同,从而拥有极高的客户满意度,并从创业一开始就盈利。一份早期的调查表明,GitHub很快成为Git托管首选。
  • 在命令中: ant -file build.xml -DTARGET=build test -DTARGET=build正在设置名为TARGET的属性 ,而不是环境变量。 TARGET可以像常规财产一样回应: build.xml文件 My TARGET: ${TARGET} 产量 $ ant -DTARGET=build [echo] My TARGET: bu ...
  • 这是一个有2个目标的骷髅蚂蚁构建。 初始化简单的回声到控制台你的类路径(用于调试)。 “make-war”任务构建了实际的战争档案。您需要更改位置以匹配您的设置。 ...