2012-04-20 57 views
2

我想了解hive和hadoop如何交互。從我讀過的教程中,我看到在運行HIVE查詢之前,您運行map/reduce作業來獲取輸入數據。這對我來說似乎適得其反,如果我已經運行map/reduce作業並以易於解析的格式獲取數據,爲什麼不將數據放入傳統數據庫中。執行查詢時hive是否運行hadoop?

感謝您的幫助, 彌敦道

回答

4

蜂箱上存儲的文件HDFS工作。除了最簡單的查詢之外,配置單元都會生成並運行mapreduce作業。對於非常簡單的查詢(SELECT * FROM MyTable),它只會將文件從磁盤上流出。

輸入數據不需要來自MapReduce--它可以是一個簡單的文本文件上傳到HDFS。請參閱http://developer.yahoo.com/hadoop/tutorial/module2.html#commandref

0

Hive通過提供大量parralel處理數據庫的功能填補了開源軟件中非常重要的空白。在其他世界 - 它爲我們提供了可橫向擴展的分析式SQL引擎。
具體到你的問題,我可以看到幾個主要的情況,當蜂房比RDMS更好。
a)數據已經存在於HDFS中,我們還有其他用法(如磁盤作業)
b)有太多數據要加載到單個服務器RDMBS中。
c)我們只需要查詢一次或兩次數據。在這種情況下,Hive的數據加載時間可能會超過RDMBS。