源码编译hive

hive -hiveconf hive.root.logger=DEBUG,console(debug模式运行hive)

==========================================================

源码编译hive

环境:hadoop 0.20.2

        hive 0.6

$ svn co http://svn.apache.org/repos/asf/hive/trunk hive
  $ cd hive
  $ ant clean package(ant package -Dhadoop.version=0.20.2)
  $ cd build/dist
  $ ls
  README.txt
  bin/ (all the shell scripts)
  lib/ (required jar files)
  conf/ (configuration files)
  examples/ (sample input and query files)

需要的工具:ant 具体安装,请自己在网上查找

1.使用svn检出hive的源代码:

         svn地址:http://svn.apache.org/repos/asf/hadoop/hive/trunk

         可参考:http://wiki.apache.org/hadoop/Hive/GettingStarted

2.直接使用ant命令的时候,程序会去网上下载hadoop版本。(本来配置了HADOOP_HOME环境变量之后,应该可以不用下载,但是不知道为什么我配置了之后,参数没有生效)

默认程序会去http://mirror.facebook.net/facebook/hive-deps下载,在国内,不能访问,所以我们要将这个hadoop.mirror修改。

修改:build.properties文件

hadoop.mirror=http://mirror.facebook.net/facebook/hive-deps

修改为:

hadoop.mirror=http://apache.freelamp.com/(具体可用的mirror可参考http://www.apache.org/dyn/closer.cgi/hadoop/core/

hadoop.security.url=http://people.apache.org/~todd/snapshot-for-hive-build/hadoop-0.20.3-CDH3-SNAPSHOT.tar.gz

修改hadoop版本:

hadoop.version=0.19.2

3.修改下载hadoop的版本:

修改shims目录下的build.xml跟ivy.xml,将里面不需要的hadoop的版本删除。如果列表中没有自己需要的hadoop,可修改。

bulid.xml:

    <antcall target="build_shims" inheritRefs="false" inheritAll="false">

<paramname="hadoop.version.ant-internal"value="0.20.2"/>

    </antcall>

ivy.xml:

 <dependency org="hadoop" name="core" rev="0.20.2">

<artifactname="hadoop"type="source"ext="tar.gz"/>

        </dependency>

至此,在hive源代码目录下就可以使用ant命令进行编译,编译后的结果在build目录下

相关推荐