mapreduce中用於統計分析的資料大部分都是結構化的資料,如果資料量比較小的時候,直接使用mysql,當資料量大的時候,
針對這個結構化的資料的統計分析,sql更為方便,mapreduce的統計分析針對結構化資料的,絕大部分都可以使用sql語句做,比mapreduce開發成本低。出現了乙個基於mr程式設計的,使用sql實現的工具,hive.
1)hive由facebook實現並開源,
2)是基於hadoop的乙個資料倉儲工具
3)可以將結構化的資料對映為一張資料庫表
4)並提供 hql(hive sql)查詢功能
5)底層資料是儲存在hdfs上
6)hive的本質是將sql語句轉換為mapreduce任務執行
7)使不熟悉mapreduce的使用者很方便地利用hql處理和計算hdfs上的結構化資料
8)適用於離線批量計算 。
1)使用者介面層:
2)thrift server層:跨語言操作
對外提供 hive支援跨語言連線的服務
3)元資料層:
hive的資料儲存的兩大部分:
1、原始資料,真實資料儲存在hdfs上的
2、元資料,描述原始資料的資料,描述的是原始資料的儲存規則的資料。hive的元資料存在關係型資料庫中(mysql)
①表的描述資訊:包括表和hdfs的資料對應關係,表的屬性
②表的字段資訊:字段型別、字段順序
③資料庫的描述資訊
4)核心驅動層:
驅動器driver:驅動hql轉化為mapreduce到提交的整個過程的執行
編譯器:內部儲存了很多map和reduce的模板,將hql語句編譯為mapreduce任務
優化器:將編譯器的編譯結果做乙個優化,最終出現的就是最完美的執行方案
執行器:將優化器的優化結果,進行提交給集群進行執行
1)不支援update、delete操作,支援insert操作,但效率很低
2)查詢延時性高
3)不支援事務
初學HIVE(一) 初步認識HIVE
hive是基於hadoop的資料倉儲工具,可以將結構化的資料檔案對映為一張表,並提供類sql查詢功能。本質是將hql轉化成mapreduce程式,儲存的基礎資料在hdfs上,執行程式執行在yarn上。hive 在查詢資料的時候,由於沒有索引,需要掃瞄整個表,因此延遲較高。還有乙個原因是mapredu...
Hadoop 初步認識Hive
一 hive是什麼?二 hive和常用資料庫的區別 hive基於hadoop,hadoop是批處理系統,不能保證低延遲,因此,hive的查詢也不能保證低延遲。hive的工作模式是提交乙個任務,等到任務結束時被通知,而不是實時查詢。相對應的是,類似於oracle這樣的系統當執行於小資料集的時候,響應非...
hive的初步認識(二)
管理資料,不同模組的資料最好放在不同的資料庫中,同mysql中的資料庫的概念 內部表 管理表 managed table 表的建立,表的資料的刪除,都是由hive自己決定的,同mysql中的表。內部表在進行刪除的時候,元資料和原始資料都會被刪除 外部表 external table 和內部表對立面,...