2014-03-31 53 views
0

我试图启动一个使用Java程序的Hive服务器。无法在java程序中启动配置单元服务器

这是我的Java代码。

p = Runtime.getRuntime().exec("/home/bigdata/hive/bin/hive --service hiveserver"); 
p.waitFor(); 

错误:

Cannot find hadoop installation: $HADOOP_HOME or $HADOOP_PREFIX must be set or hadoop must be in the path

我开始了我的HDFS。但我也得到这个错误

+0

也许你想读这篇文章:http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/ 在本节中:'更新$ HOME/.bashrc' –

+0

您是否已将'HADOOP_HOME'配置到hadoop文件夹? – Avi

+0

我在.bashrc中配置了 – MarHserus

回答

0

Runtime.exec()不会运行您的.bashr,请参阅Bash Startup Files。你的exec()调用过程应该继承你的调用者environemnt,但显然调用者缺少HADOOP_HOME。我猜不出为什么,可能与你自己的Java程序被调用的方式/时间有关。解决这个问题的一种方法是运行bash -l -c hive --service ...如果你想让bash运行启动文件然后运行你的命令。但是更好的方法可能是明确设置要传递到流程的环境。见How do I set environment variables from Java?

最终,为什么?通常所有的蜂巢服务应该从init.d开始

相关问题