zoukankan      html  css  js  c++  java
  • 使用Ant发布hadoop代码到服务器

      首先,搭建Ant环境:

      1.1.下载antzip包,可以直接从官网下,也可以从我的csdn账号下载,这里我使用的Ant版本是:apache-ant-1.8.4-bin

          CSDN Ant 所需jar包下载地址

      1.2.将apache-ant-1.8.4-bin.zip包解压,然后添加到环境变量中去:

        ANT_HOME  //这个Ant home是我自己的本地目录,大家根据自己安装的不同修改
          E:Program Files (x86)javadecompressionapache-ant-1.8.4
        PATH变量最前边追加:
          %ANT_HOME%in;

      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>
    build.xml

      1.5.1."remote.host"的值改为自己远程服务器的名称.

      1.5.2."remote.username"的值修改为登录远程的用户名.

      1.5.3."remote.password"的值修改为登录远程的用户密码.

      1.5.4."main.class"的值修改为我们需要运行的代码即可.

      弄完这些就可以测试我们搭建好的Ant环境了.

  • 相关阅读:
    IReport问题整理
    超出打开游标的最大数的原因和解决方案【131101】
    【131031】rel 属性 -- link标签中的rel属性,定义了文档与链接的关系
    【131031】html:hidden的使用
    <jsp:include>和<%@include file=""%>区别【131031】
    【131031】<meta http-equiv=...> 的功能
    【131031】asp.net <%%>&<%#%>&<%=%>&<%@%>&<%$%>用法区别
    python面向对象(类的成员及类方法)
    python网络编程知识体系
    python面向对象(类和对象及三大特性)
  • 原文地址:https://www.cnblogs.com/xiaolong1032/p/4443132.html
Copyright © 2011-2022 走看看