linux系统利用eclipse单步调试hive

来源:互联网 发布:荆门第四届网络作文 编辑:程序博客网 时间:2024/06/14 00:39

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数据库还需要将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命令即可查看到,以证明上述配置过程的正确性。