Hive學習筆記 簡介

2021-10-19 08:44:04 字數 2541 閱讀 2250

大資料技術——》傳輸、儲存、計算、查詢

hive:由facebook開源用於解決海量結構化日誌的資料統計。

hive是基於hadoop的乙個資料倉儲工具(hive是為資料倉儲而設計的,hive本身不儲存資料,提供一種管理方式),用來進行資料提取、轉化、載入,可以將結構化的資料檔案對映為一張表,並提供類sql查詢功能。

本質是:將 hql 翻譯成 mapreduce 程式(本來可以直接寫mr程式來生成結果,但是為了降低學習成本,就使用 hive 從當乙個翻譯器,hive sql ==> mr,使mapreduce變得更加簡單,而不必開發專門的mapreduce應用程式,這樣有了hive後我們就不用再寫麻煩的mapreduce程式了。)

hive是mapreduce的乙個封裝,底層就是mapreduce程式

hive 具有 sql 資料庫的外表,但應用場景完全不同。在廣義上,學會了sql語句的語法也就學會了hql語句,但也有一些不同。

hive 只適合用來做海量離線資料統計分析,也就是資料倉儲

hive 可以理解是 hadoop 或者說是hdfs的客戶端

操作介面採用類sql語法,提供快速開發的能力(簡單、容易上手)。

避免了去寫mapreduce,減少開發人員的學習成本

hive的執行延遲比較高,因此hive常用於資料分析,對實時性要求不高的場合。

hive優勢在於處理大資料,對於處理小資料沒有優勢,因為hive的執行延遲比較高。

hive支援使用者自定義函式,使用者可以根據自己的需求來實現自己的函式。

1.hive的hql表達能力有限

2.hive的效率比較低

由於 hive 採用了類似sql 的查詢語言 hql(hive query language),因此很容易將 hive 理解為資料庫。其實從結構上來看,hive 和資料庫除了擁有類似的查詢語言,再無類似之處。

由於sql被廣泛的應用在資料倉儲中,因此,專門針對hive的特性設計了類sql的查詢語言hql。熟悉sql開發的開發者可以很方便的使用hive進行開發。

hive 是建立在 hadoop 之上的,所有hive的資料都是儲存在 hdfs 中的。而資料庫則可以將資料儲存在塊裝置或者本地檔案系統中。

由於hive是針對資料倉儲應用設計的,而資料倉儲的內容是讀多寫少的。因此,hive中不建議對資料的改寫,所有的資料都是在載入的時候確定好的。而資料庫中的資料通常是需要經常進行修改的,因此可以使用 insert into … values 新增資料,使用 update … set修改資料。

hive在載入資料的過程中不會對資料進行任何處理,甚至不會對資料進行掃瞄,因此也沒有對資料中的某些key建立索引。

hive要訪問資料中滿足條件的特定值時,需要暴力掃瞄整個資料(也可以只掃分割槽),因此訪問延遲較高

由於 mapreduce 的引入, hive 可以並行訪問資料,因此即使沒有索引,對於大資料量的訪問,hive 仍然可以體現出優勢。

即hive 只適合用來做海量離線資料統計分析,也就是資料倉儲

hive中大多數查詢的執行是通過 hadoop 提供的 mapreduce 來實現的。而資料庫通常有自己的執行引擎。

hive 在查詢資料的時候,由於沒有索引,需要掃瞄整個表,因此延遲較高。

另外乙個導致 hive 執行延遲高的因素是 mapreduce 框架。由於 mapreduce 本身具有較高的延遲,因此在利用 mapreduce 執行 hive 查詢時,也會有較高的延遲。相對的,資料庫的執行延遲較低。

當然,這個低是有條件的,即資料規模較小,當資料規模大到超過資料庫的處理能力的時候,hive的平行計算顯然能體現出優勢。

由於hive是建立在hadoop之上的,因此hive的可擴充套件性是和hadoop的可擴充套件性是一致的。

而資料庫由於 acid 語義的嚴格限制,擴充套件行非常有限。

由於hive建立在集群上並可以利用mapreduce進行平行計算,因此可以支援很大規模的資料;對應的,資料庫可以支援的資料規模較小。

其實,最核心的區別就是處理資料量問題,資料量極大,傳統的關係型資料庫,如mysql不能很好的處理這個問題。由於資料量大,這也導致 hive 延遲高,需要使用分布式的儲存方式,資料量小,mysql可以儲存在本地

另外,一定要區分 hive 不是乙個資料庫,hive 和資料庫除了擁有類似的查詢語言,再無類似之處。

Hive學習 一 Hive簡介和架構

hive 資料倉儲。hive 直譯器,編譯器,優化器等。hive 執行時,元資料儲存在關係型資料庫裡面。1 使用者介面主要有三個 cli,client 和 wui。其中最常用的是cli,cli啟動的時候,會同時啟動乙個hive副本。client是hive的客戶端,使用者連線至hive server。...

Hadoop學習之Hive簡介

1.hive的基本架構 2.hive的資料儲存 例如 tbl pv 表中包含 ds 和 city 兩個 partition,則對應於 ds 20090801,ctry us 的 hdfs 子目錄為 wh tbl pv ds 20090801 ctry us 對應於 ds 20090801,ctry ...

Hive學習筆記 Hive 引數

第一部分 hive 引數 hive.exec.max.created.files 說明 所有hive執行的map與reduce任務可以產生的檔案的和 預設值 100000 hive.exec.dynamic.partition 說明 是否為自動分割槽 預設值 false hive.mapred.re...