hive是同乙個sql解析引擎,目的是將sql轉義成mr,其本質就是mr。
hive本身不儲存資料!它的資料儲存在hdfs上,hive中有表定義,這個純邏輯表,定義表的元資料。本質就是hadoop的目錄/檔案達到了元資料與資料儲存分離的目的。
hive的內容是讀多寫少,不支援多少對資料的改寫和刪除。
hive的sql與標準資料庫的差別
hqlsql資料儲存
hdfs,hbase
local fs
資料格式
使用者自定義
系統決定
資料更新
不支援資料更新
支援索引
有(0.8之後有)有執行
mrexecutor
執行延遲高低
可擴充套件性
高(udf,udaf,udtf)
低資料規模
大(資料大於tb)
小資料檢查
讀時模式
寫時模式
通過上述的定義,我們基本可以梳理出引入hive的原因
1.對存在hdfs上的檔案我們要進行查詢處理的時候,需要手工寫一堆的mr**。但是引入hive後可以通過sql與轉譯成mr, 縮短了開發周期。
2.對於統計任務,只能有懂mr的程式設計師才能搞定。引入hive,只要會sql就可以搞定。
1.使用者介面:client,通過該介面進行sql互動
2.語句轉化:driver,是hive的核心,將使用者的查詢和mr task進行轉換並執行
3.資料儲存:實際儲存資料的時hdfs ,元資料預設儲存在derby,但是一般用在mysql進行儲存
1.table:預設表,內部表
2.external table:外部表
3.partiton:使用者輔助查詢表
4.bucket:採用,控制reduce的個數
WorkFlow之理論篇
對於工作流我也多次接觸到,雖然不是主要負責工作流,自己也私下略知一二,下面對我這階段對工作流的學習做個總結 工作流尚沒有乙個統一的 明確的定義,不同的組織和研究人員對工作流給出了各自的定義 定義1 工作流是一類能夠完全或者部分自動執行的經營過程,它根據一系列過程規則,文件 資訊或任務能夠在不同的執行...
時間序列學習筆記之理論基礎(一)
我們可以將資料分為兩種維度來看,某個時間點的橫截面方向的資料和以時間為序列的資料。這個也很容易理解,因為隨著時間的推移,資料本身也會發生變化,如果我們只拿某一時刻的資料出來做分析,就是橫截面資料,我們最常接觸的眾多機器學習演算法實際上分析的都是這種資料,因為在其情景下,不需要時間這個特殊的維度。但是...
安卓廣播之理論篇
什麼叫廣播?比如 在 android 裡面有各種各樣的廣播,比如電池的使用狀態,的接收和簡訊的接收都會產生乙個廣播,應用程式開發者也可以監聽這些廣播並做出程式邏輯的處理 android廣播的分類 1 普通廣播 normal broadcasts 依次傳遞給各個處理器去處理 完全非同步的,可以在同一時...