如何让hive在eclipse中修改、编译、运行

1.环境

本文没有使用hadoop0.20这个版本网上有很多成功的例子

我使用hive-0.10.0和hadoop-0.23.4,没有使用root用户,不知道root可不可以,源码为hive-branch-0.10,因为是用hadoop用户,首先要确保在hadoop用户下可以编译,也就是说在hive-branch-0.10下运行ant package可以通过,有这个条件才能进行下面的操作。

2.导入

ant package
ant eclipse-files

这样以后就可以在eclipse中查看hive源码了

3.编译

eclipse中hive-branch-0.10右键选中Properties---->Builders---->new---->Ant Builder

然后在Buildfile中选择hive-branch-0.10/build.xml

target选项卡中After a "Clean"选中package,Manual Build也选中package

就可以了,然后勾选这个ant builder,去掉除这个新建的以外所有的勾,例如java builder前面的勾,然后将ant builder 用up移到最上面

这样我们就能手动编译hive了。

在hive-0.10支持多个hadoop版本,而这些hadoop版本之间不完全兼容,在外部hive能识别hadoop版本,可是在eclipse默认是0.20,使用hadoop-core-0.20.2.jar,于是我把这个jar包删掉了(包括build path中删除),然后把hadoop-common-0.23.4.jar、hadoop-mapreduce-client-core-0.23.4.jar、hadoop-hdfs-0.23.4.jar、commons-cli-1.2.jar、hadoop-mapreduce-client-common-0.23.4.jar拷贝到了hive中或者添加到build path中(以上不一定全要,但是我加了以上这些),这样就不会影响正常的编译,与没删那个hadoop-core-0.20.2.jar一样了

4.运行

就是要加一些jar包和conf文件到classpath中,另外配置环境变量,可以报什么错,然后发现缺什么包,再一一加进去。

首先在run---->run configurations---->Java Application中新建配置我把它命名为MyHive,project设置为hive-branch-0.10,Main class配置为org.apache.hadoop.hive.cli.CliDriver

然后再选择classpath选项卡,添加$HIVE_HOME目录下lib文件夹下面的所有jar包到classpath,添加$HIVE_HOME目录下conf文件夹到classpath,添加hadoop配置文件夹到classpath,添加hadoop-mapreduce-client-common-0.23.4.jar、guava-11.0.2.jar、hadoop-common-0.23.4.jar、protobuf-java-2.4.0a.jar、hadoop-mapreduce-client-jobclient-0.23.4.jar、hadoop-yarn-common-0.23.4.jar、hadoop-yarn-api-0.23.4.jar、commons-io-2.1.jar、hadoop-auth-0.23.4.jar

我添加了以上这些,其实添加的最好方法就是上面的缺什么加什么包

另外我还在hadoop设置中的hadoop-env.sh添加了export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/conf:$HADOOP_HOME/etc/hadoop不知道有没有用

然后在Environment选项卡中我增加了HADOOP_HOME、HADOOP_CONF_DIR、HADOOP_HDFS_HOME、HADOOP_MAPRED_HOME、HADOOP_YARN_HOME、YARN_CONF_DIR这些变量(也不知道有没有用)

最后的结果是能够在eclipse成功运行hive(我遇到错误诸如缺包、使用0.20时候的IPC错误、找不到配置文件、可以运行select * from table_name却无法运行select id from table_name等等)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值