Hive出現的背景
Hadoop提供了大數據的通用解決方案,比如存儲提供了Hdfs,計算提供了MapReduce思想。但是想要寫出MapReduce算法還是比較繁瑣的,對於開發者來說,需要了解底層的hadoop api。如果不是開發者想要使用mapreduce就會很困難....
另一方面,大部分的開發者都有使用SQL的經驗。SQL成為開發者必備的技能...
那么可以不可以使用SQL來完成MapReduce的過程呢?—— 答案就是,Hive
Hive能夠解決的問題
Hive可以幫助開發者從現有的數據基礎架構轉移到Hadoop上,而這個基礎架構是基於傳統關系型數據庫和SQL的。Hive提供了Hive查詢語言,即HQL,它可以使用SQL方言查詢存儲在hadoop中的數據。
執行原理
Hive本身不會生成java的mapreduce程序,而是通過XML文件 驅動執行內置的、原生的Mapper和Reducer。
Hive的缺點
- 1 不支持記錄級別的更新、插入或者刪除
- 2 查詢延遲比較嚴重
- 3 不支持事務
如果想要基於SQL還想具有上面的特性,可以直接使用hadoop提供的nosql數據庫——HBase
適合的場景
Hive適合做 數據倉庫 應用程序,可以維護海量數據,對數據進行挖掘,形成意見和報表。
其他
同類型的工具就是Pig