作者:手浪用户2502876054 | 来源:互联网 | 2017-11-02 04:59
最近Hadoop的研究中,都是利用Mockito来模拟数据进行,下一个阶段需要在Hadoop服务器上做大量的运行进行验证,同时也要为正式使用做准备。今天考虑使用Ant来搭建一个Hadoop的开发和调试环境,不使用hadoop自带的插件。思路如下:1、利用Ant在开发机器上
最近Hadoop的研究中,都是利用Mockito来模拟数据进行,下一个阶段需要在Hadoop服务器上做大量的运行进行验证,同时也要为正式使用做准备。
今天考虑使用Ant来搭建一个Hadoop的开发和调试环境,不使用hadoop自带的插件。
思路如下:
1、 利用Ant在开发机器上将代码编译、打包,最终得到可执行的jar包。
2、 利用Ant的SSH属性,将jar包传到hadoop服务器的指定工作目录。
这样就开发机器做为编码客户端,与执行服务器之间关联,代码部署的时间基本不用考虑,开发效率可以提高,也利于在真实环境进行验证程序。
再扩展开来,可以利用Ant操作hadoop服务器,实现与开发客户端的交互,因为Ant可以通过SSH实现Linux服务器的命令操作。
如下是根据需要改造的Ant的bulid.xml文件,实现了:目录清理、目录构建、编译、打包、SFTP上传功能:
- xml version="1.0" encoding="UTF-8"?>
- <project name="AntTest" default="all" basedir=".">
-
- <property name="src" location="./src" />
- <property name="build" location="./build/classes" />
- <property name="dist" location="./lib" />
-
-
- <path id="project.classpath">
- <fileset dir="D:\Project\Java\OpenSource\Hadoop\hadoop-0.20.205.0-bin\hadoop-0.20.205.0\lib">
- <include name="*.jar" />
- fileset>
- path>
-
- <target name="all" depends="clean,sshexec">target>
-
- <target name="init">
- <tstamp />
- <mkdir dir="${build}" />
- <mkdir dir="${dist}" />
- target>
-
-
- <target name="compile" depends="init">
- <javac srcdir="${src}" destdir="${build}" includeantruntime="no">
- <compilerarg line="-encoding GBK " />
-
- <classpath refid="project.classpath" />
- javac>
- target>
-
- <target name="dist" depends="compile">
- <mkdir dir="${dist}" />
- <jar jarfile="${dist}/hadoop_project.jar" basedir="${build}" />
- target>
-
-
- <target name="clean">
- <delete dir="${build}" />
- <delete dir="${dist}" />
- <echo message="clean dir">
- echo>
- target>
-
-
- <target name="run" depends="dist">
- <java classpath="${build}" classname="demo.guide.chp7.HelloWorld">
- <classpath refid="project.classpath" />
-
- java>
- target>
-
-
- <target name="sshexec" depends="run">
- <scp todir="root:****@192.168.9.181:/tmp/" trust="true">
- <fileset dir="${dist}" />
- scp>
- target>
-
- project>