您的位置:首页 > 编程语言 > Java开发

eclipse上单步调试Hive

2015-11-16 16:56 399 查看
 

转自:

http://blog.sina.com.cn/s/blog_9f48885501017eyl.html

 

 在~/workspace/hive新建了两个目录lib和conf

从hive目录中的lib和hadoop目录中的lib复制一份到一个目录里,我是放在~/workspace/hive/lib

还要把hadoop目录下的hadoop*.jar都拷贝过来吧。

如果用mysql做metastore的数据库,还需要把mysql-connector的lib加上

把hive的conf文件夹拷贝过来(要已配置好的conf文件哦)

把hive中的src目录拷贝进来


创建项目

在这个目录下(~/workspace/hive/src/cli)的代码是hive命令行的代码,我们可以通过调试它来了解hive的执行过程。

在这个目录下,用eclipse新建一个项目。

配置bulid path,把我们准备好的lib全部加上

这个时候,代码应该没有编译错误了,如果有,请检查一下那个lib没加上。

还有个重要的步骤!hive是怎样找它的配置文件的呢?

我们要把conf目录加入classpath中,在debug configuration中的Classpath,点击左侧的advanced,add exteral path,选上我们准备好的conf目录。

这样就可以开始debug了!

如果你运行报does not have a sch错误,应该是由于没找到配置文件引起的。

 

顺便看看hive是怎么找到配置文件的。

都是通过getClassLoader().getResource()方法来获取的,所以配置文件夹必须在classpath中!

URL hconfurl = getClassLoader().getResource("hive-default.xml");

if (hconfurl == null) {

l4j.debug("hive-default.xml not found.");

}else {

addResource(hconfurl);

}

URL hsiteurl = getClassLoader().getResource("hive-site.xml");

if (hsiteurl == null) {

l4j.debug("hive-site.xml not found.");

}else {

addResource(hsiteurl);

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: