源码编译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目录下