hive是什麼?就從這兒開始學習。。。。
hive是建立在hadoop hdfs上的資料倉儲基礎架構。
hive可以用來資料抽取轉換載入(etl)。
hive定義了簡單的類sql查詢語句,稱為hql。
hive是sql解析引擎,它將sql語句轉移成m/r job,然後在hadoop上執行。
hive的表其實就是hdfs的目錄,hive的資料對應相應目錄下的檔案。
hive使用場景:非實時的海量資料分析/挖掘/建模
hive本質是將sql轉換為mapreduce程式
那我就說哈本質過程,掌握本質就能掌握其核心思想。
當我們在控制台輸入乙個hql(類似sql),接下來hive處理轉換成mapreduce,然後提交到hadoop執行計算,最後將結果返回到控制台。
上面這個過程你就感覺自己在操作關聯式資料庫一樣,根本不需要底層是怎麼實現的。就是這麼簡單自信。
真正想理解hive必須要理解mapreduce。
因為他的本質是跑的mapreduce程式,所以他將不適合實時任務處理。這就是和impala本質區別。
雖然impala和hive都是建立在hadoop(hdfs)之上的。但是:impala沒有使用 mapreduce進行平行計算,而hive依賴maprduce.
雖然mapreduce是非常好的平行計算框架,但它更多的面向批處理模式,而不是面向互動式的sql執行。與 mapreduce相比:impala把整個查詢分成一執行計畫樹,而不是一連串的mapreduce任務,在分發執行計畫後,impala使用拉式獲取 資料的方式獲取結果,把結果資料組成按執行樹流式傳遞匯集,減少的了把中間結果寫入磁碟的步驟,再從磁碟讀取資料的開銷。impala使用服務的方式避免每次執行查詢都需要啟動的開銷,即相比hive沒了mapreduce啟動時間.
說的有點多了。。。想起一點就記錄一些。這樣也不錯。
初學HIVE(一) 初步認識HIVE
hive是基於hadoop的資料倉儲工具,可以將結構化的資料檔案對映為一張表,並提供類sql查詢功能。本質是將hql轉化成mapreduce程式,儲存的基礎資料在hdfs上,執行程式執行在yarn上。hive 在查詢資料的時候,由於沒有索引,需要掃瞄整個表,因此延遲較高。還有乙個原因是mapredu...
HIve的初步認識(一 )
mapreduce中用於統計分析的資料大部分都是結構化的資料,如果資料量比較小的時候,直接使用mysql,當資料量大的時候,針對這個結構化的資料的統計分析,sql更為方便,mapreduce的統計分析針對結構化資料的,絕大部分都可以使用sql語句做,比mapreduce開發成本低。出現了乙個基於mr...
hive的初步認識(二)
管理資料,不同模組的資料最好放在不同的資料庫中,同mysql中的資料庫的概念 內部表 管理表 managed table 表的建立,表的資料的刪除,都是由hive自己決定的,同mysql中的表。內部表在進行刪除的時候,元資料和原始資料都會被刪除 外部表 external table 和內部表對立面,...