2014-03-31 57 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開始

相關問題