使用Ant发布hadoop代码到服务器
首先,搭建Ant环境:
1.1.下载antzip包,可以直接从官网下,也可以从我的csdn账号下载,这里我使用的Ant版本是:apache-ant-1.8.4-bin
1.2.将apache-ant-1.8.4-bin.zip包解压,然后添加到环境变量中去:
ANT_HOME //这个Ant home是我自己的本地目录,大家根据自己安装的不同修改
E:\Program Files (x86)\java\decompression\apache-ant-1.8.4
PATH变量最前边追加:
%ANT_HOME%\bin;
1.3.将解压包中的lib目录下的jsch-0.1.51.jar复制到Ant_Home中的目录中去,如果是Eclipse下的Ant环境必须在Window->Preferences->Ant->Runtime->Classpath中加入jsch-0.1.51
1.4.项目根目录下建立文件夹classes,dist,lib文件夹,并将解压后lib目录下的jar包加入到新建lib目录下.
1.5.在项目根目录下建立build.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="项目名称" basedir="." default="sshexec"> <description>本配置文件供ANT编译项目、自动进行单元测试、打包并部署之用。</description> <description>默认操作(输入命令:ant)为编译源程序并发布运行。</description> <!--属性设置--> <property environment="env" /> <property file="build.properties" /> <property name="src.dir" value="${basedir}/src" /> <property name="java.lib.dir" value="${env.JAVA_HOME}/lib" /> <property name="classes.dir" value="${basedir}/classes" /> <property name="dist.dir" value="${basedir}/dist" /> <property name="project.lib.dir" value="${basedir}/lib" /> <property name="localpath.dir" value="${basedir}" /> <property name="remote.host" value="hadoop1"/> <property name="remote.username" value="root"/> <property name="remote.password" value="hadoop"/> <property name="remote.home" value="~"/> <!--每次需要知道的main类,写到这里--> <property name="main.class" value="mapreduce.WordCountApp"/> <!-- 基本编译路径设置 --> <path id="compile.classpath"> <fileset dir="${java.lib.dir}"> <include name="tools.jar" /> </fileset> <fileset dir="${project.lib.dir}"> <include name="*.jar" /> </fileset> </path> <!-- 运行路径设置 --> <path id="run.classpath"> <path refid="compile.classpath" /> <pathelement location="${classes.dir}" /> </path> <!-- 清理,删除临时目录 --> <target name="clean" description="清理,删除临时目录"> <!--delete dir="${build.dir}" /--> <delete dir="${dist.dir}" /> <delete dir="${classes.dir}" /> <echo level="info">清理完毕</echo> </target> <!-- 初始化,建立目录,复制文件 --> <target name="init" depends="clean" description="初始化,建立目录,复制文件"> <mkdir dir="${classes.dir}" /> <mkdir dir="${dist.dir}" /> </target> <!-- 编译源文件--> <target name="compile" depends="init" description="编译源文件"> <javac srcdir="${src.dir}" destdir="${classes.dir}" source="1.6" target="1.6" includeAntRuntime="false"> <classpath refid="compile.classpath" /> </javac> </target> <!-- 打包类文件 --> <target name="jar" depends="compile" description="打包类文件"> <jar jarfile="${dist.dir}/jar.jar"> <fileset dir="${classes.dir}" includes="**/*.*" /> </jar> </target> <!--上传到服务器 **需要把lib目录下的jsch-0.1.51拷贝到$ANT_HOME/lib下,如果是Eclipse下的Ant环境必须在Window->Preferences->Ant->Runtime->Classpath中加入jsch-0.1.51。 --> <target name="ssh" depends="jar"> <scp file="${dist.dir}/jar.jar" todir="${remote.username}@${remote.host}:${remote.home}" password="${remote.password}" trust="true"/> </target> <target name="sshexec" depends="ssh"> <sshexec host="${remote.host}" username="${remote.username}" password="${remote.password}" trust="true" command="source /etc/profile; hadoop jar ${remote.home}/jar.jar ${main.class}"/> </target> </project>
1.5.1."remote.host"的值改为自己远程服务器的名称.
1.5.2."remote.username"的值修改为登录远程的用户名.
1.5.3."remote.password"的值修改为登录远程的用户密码.
1.5.4."main.class"的值修改为我们需要运行的代码即可.
弄完这些就可以测试我们搭建好的Ant环境了.