怎樣在Java中運行Hive命令或HiveQL


       這里所說的在Java中運行Hive命令或HiveQL並非指Hive Client通過JDBC的方式連接HiveServer(or HiveServer2)運行查詢,而是簡單的在部署了HiveServer的server上運行Hive命令。當然這是一個簡單的事情。尋常我們通過Hive做簡單的數據分析實驗的時候,都是直接進入Hive運行HiveQL,那我們為什么還要在程序中運行呢?

       這里涉及到了一個問題。通過進入Hive運行HiveQL。我們僅僅能將分析結果打印到屏幕或是存入暫時表,那假設我們想吧分析結果寫入文件,或者我們想對分析結果做進一步的分析,用程序做分析。該怎么辦?這就是為什么要在Java中運行Hive命令。

       Java在1.5過后提供了ProcessBuilder依據執行時環境啟動一個Process調用執行執行時環境下的命令或應用程序(1.5曾經使用Runtime),關於ProcessBuilder請參考Java相關文檔。調用代碼例如以下:

String sql="show tables; select * from test_tb limit 10";
List<String> command = new ArrayList<String>();

command.add("hive");
command.add("-e");
command.add(sql);

List<String> results = new ArrayList<String>();
ProcessBuilder hiveProcessBuilder = new ProcessBuilder(command);
hiveProcess = hiveProcessBuilder.start();

BufferedReader br = new BufferedReader(new InputStreamReader(
		hiveProcess.getInputStream()));
String data = null;
while ((data = br.readLine()) != null) {
	results.add(data);
}
       當中command能夠是其他Hive命令,不一定是HiveQL。

       本文產生於個人工作學習筆記,轉載請注明出處http://blog.csdn.net/horace20


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM