整理两年前的草稿
通过以下步骤在IDE上搭建Hive的编译、调试环境,从而深入学习hive:
这里使用NetBeans编译并调试Hive(0.7.1)1. 新建Java应用程序项目
2. 导入需要调试的源包
3. 在库中添加hive目录lib下的所有jar、Hadoop项目依赖(无hadoop调试需求的也可以直接导入hadoop的core)、mysql库(如果跟我一样,metastore用mysql存。BTW,不同版本hive的meta表结构会不同)
4. 这步很重要,在运行选项卡中将编译的源至于类路径之上
5. 将hive配置文件放到项目默认包里
6. 这时候就可以编译、调试了,为了可以在IDE的console中输入hive脚本,需要改一下cliDriver类的命令采集代码
可能遇到的问题:
Hadoop版本不识别:修改shimloader类,显式对vars赋值
MySQL连不上:检查防火墙、远程连接授权
Windows上不能访问tmp目录:给Context类localScratchDir变量赋值
HDFS目录权限问题,主要原因是开发、调试的操作系统用户不是HDFS用户,导致Hive创建用于存放中间结果的文件失败,根据错误发生的位置,找到hive读取客户端用户身份的对应代码,修改即可。