直接使用MapReduce所面臨的問題:mysql
爲何要使用Hive:web
優勢:sql
可擴展性、橫向擴展:Hive能夠自由的擴展集羣的規模,通常狀況下不須要重啓服務。shell
延展性:數據庫
良好的容錯性服務器
缺點:架構
Hive不支持事務編輯器
對比項 | Hive | RDBMS |
---|---|---|
查詢語言 | HQL | SQL |
數據存儲 | HDFS | Raw Device or Local FS |
執行器 | MapReduce | Executor |
數據插入 | 支持批量導入/單條插入 | 支持批量導入/單條插入 |
處理數據規模 | 大 | 小 |
執行延遲 | 高 | 低 |
分區 | 支持 | 支持 |
索引 | 0.8版本以後加入簡單索引 | 支持複雜的索引 |
擴展性 | 高(好) | 有限(查) |
數據加載模式 | 讀時模式(快) | 寫時模式(慢) |
應用場景 | 海量數據查詢 | 實時查詢 |
總結:函數
Hive具備SQL數據庫的外表,但應用場景徹底不一樣,Hive只適合用來作海量離線數據統計分析,也就是數據倉庫。工具
CLI,Shell終端命令行(Command Line Interface),採用交互形式使用hive命令與Hive進行交互,最經常使用(學習,調試,生產)
元數據:通俗的講,就是存儲在Hive中的數據的描述信息。