Hadoop提供了大資料的通用解決方案,比如存儲提供了Hdfs,計算提供了MapReduce思想。但是想要寫出MapReduce算法還是比較繁瑣的,對于開發者來說,需要了解底層的hadoop api。如果不是開發者想要使用mapreduce就會很困難....
另一方面,大部分的開發者都有使用SQL的經驗。SQL成為開發者必備的技能...
那麼可以不可以使用SQL來完成MapReduce的過程呢?—— 答案就是,Hive
Hive可以幫助開發者從現有的資料基礎架構轉移到Hadoop上,而這個基礎架構是基于傳統關系型資料庫和SQL的。Hive提供了Hive查詢語言,即HQL,它可以使用SQL方言查詢存儲在hadoop中的資料。
Hive本身不會生成java的mapreduce程式,而是通過XML檔案 驅動執行内置的、原生的Mapper和Reducer。
1 不支援記錄級别的更新、插入或者删除
2 查詢延遲比較嚴重
3 不支援事務
如果想要基于SQL還想具有上面的特性,可以直接使用hadoop提供的nosql資料庫——HBase
Hive适合做 資料倉庫 應用程式,可以維護海量資料,對資料進行挖掘,形成意見和報表。
同類型的工具就是Pig
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuEzMzQzM3ADM10iMxgzN0ITMzEzMxgDM2EDMy0CN2ATO0QzLchDM2EDMy8CX0YDM5QDNvw1ZvxmYvwVbvNmLzd2bsJmbj5SNxAjMzV2Zh1Wavw1LcpDc0RHaiojIsJye.png)