1. 用svn 下载hive源码
将源码存放在hive_trunk目录 下。
# svn co http://svn.apache.org/repos/asf/hive/trunk/ hive_trunk1
2. 生成 eclipse项目
在hive_trunk1目录下,执行ant eclipse-files命令
#ant eclipse-files
生成可导入 的.project项目文件
3 加载hive_trunk1项目。
打开eclipse开发环境,file->import..打开“导入”对话框,选择root directory为hive_trunk1目录 。
在Project Explorer 视窗可以看到 已被成功导入。
继续在hive_trunk目录下执行 ant package命令
#ant package
耗时很多,我用了22分钟。
会发现新生成/opt/hive_trunk1/build/dist/lib目录 下会有很多 jar包。
hive_trunk项目,菜单 run-> debug configurations 对话框中,双击Java Application,做下图所示的定义。
单击进入classpath选项卡,对于classpath选项卡,需要
击“ Add External JARs”按钮,将“hadoop-0.20.0-core.jar" ,"hive_trunk1/build/dist/lib”下的所有jar包添加到classpath中。
接下来点击“Advanced”按钮,将Hive的hive_trunk1/build/dist/conf目录添加进来
在工程上右键-->properties
选择builders,去掉java builder前面的√
点击new按钮,双击【Ant Builder】选择Ant的编译模式
Name的地方写上hive_ant_Builder
在buildfile这里点击【browser file system】,浏览设置为/hive_trunk1/build.xml
打开 Targets选项卡,点击Manual Build的Set Targets按钮 做下图配置。
点击apply进行应用配置
点击ok按钮将hive_ant_builder进行up上移
在hive_trunk1/build/dist/conf目录添加
hive-site.xml .
hive-site.xml是将 hive-default.xml.template复制过来后并重命名的副本
对hive-site.xml做些修改,下面是配置hive 元数据库的三种方式,默认的嵌入式derby数据库、网络模式derby数据库和Mysql数据库。
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <!--<value>jdbc:derby:;databaseName=metastore_db;create=true</value>--> <!--<value>jdbc:derby://localhost:1527/db_hive;create=true</value> --> <value>jdbc:mysql://192.168.251.19:3306/mydb_hive?useUnicode=true& characterEncoding=UTF-8&createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <!-- <value>org.apache.derby.jdbc.EmbeddedDriver</value> --> <!-- <value>org.apache.derby.jdbc.ClientDriver</value> --> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>mysql</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>mysql</value> <description>password to use against metastore database</description> </property> </configuration>
使用Mysql数据库还需要将Mysql的JDBC导入到classpath中。
这里使用mysql-connector-java-5.1.24-bin.jar 。
对于网格模式的derby需要用到derby的l的JDBC 连接包derbyclient.jar,
derby的使用可以参考http://blog.csdn.net/duguduchong/article/details/8689822
4 .调试hive
单击菜单【run】下面的【debug】就可以单步调试hive了。
在此截图之前我创建了3个hive表,在截图中console 视窗里我通过 show tables命令即可查看到,以证明上述配置过程的正确性。