1. 程式人生 > >hive和hbase的關係

hive和hbase的關係

1. 兩者分別是什麼?  

 Apache Hive是一個構建在Hadoop基礎設施之上的資料倉庫。通過Hive可以使用HQL語言查詢存放在HDFS上的資料。HQL是一種類SQL語言,這種語言最終被轉化為Map/Reduce. 雖然Hive提供了SQL查詢功能,但是Hive不能夠進行互動查詢--因為它只能夠在Haoop上批量的執行Hadoop。

    Apache HBase是一種Key/Value系統,它執行在HDFS之上。和Hive不一樣,Hbase的能夠在它的資料庫上實時執行,而不是執行MapReduce任務。Hive被分割槽為表格,表格又被進一步分割為列簇。列簇必須使用schema定義,列簇將某一型別列集合起來(列不要求schema定義)。例如,“message”列簇可能包含:“to”, ”from” “date”, “subject”, 和”body”. 每一個 key/value對在Hbase中被定義為一個cell,每一個key由row-key,列簇、列和時間戳。在Hbase中,行是key/value對映的集合,這個對映通過row-key來唯一標識。Hbase利用Hadoop的基礎設施,可以利用通用的裝置進行水平的擴充套件。

2. 兩者的特點

  Hive幫助熟悉SQL的人執行MapReduce任務。因為它是JDBC相容的,同時,它也能夠和現存的SQL工具整合在一起。執行Hive查詢會花費很長時間,因為它會預設遍歷表中所有的資料。雖然有這樣的缺點,一次遍歷的資料量可以通過Hive的分割槽機制來控制。分割槽允許在資料集上執行過濾查詢,這些資料集儲存在不同的資料夾內,查詢的時候只遍歷指定資料夾(分割槽)中的資料。這種機制可以用來,例如,只處理在某一個時間範圍內的檔案,只要這些檔名中包括了時間格式。

    HBase通過儲存key/value來工作。它支援四種主要的操作:增加或者更新行,檢視一個範圍內的cell,獲取指定的行,刪除指定的行、列或者是列的版本。版本資訊用來獲取歷史資料(每一行的歷史資料可以被刪除,然後通過Hbase compactions就可以釋放出空間)。雖然HBase包括表格,但是schema僅僅被表格和列簇所要求,列不需要schema。Hbase的表格包括增加/計數功能。

3. 限制

  Hive目前不支援更新操作。另外,由於hive在hadoop上執行批量操作,它需要花費很長的時間,通常是幾分鐘到幾個小時才可以獲取到查詢的結果。Hive必須提供預先定義好的schema將檔案和目錄對映到列,並且Hive與ACID不相容。

    HBase查詢是通過特定的語言來編寫的,這種語言需要重新學習。類SQL的功能可以通過Apache Phonenix實現,但這是以必須提供schema為代價的。另外,Hbase也並不是相容所有的ACID特性,雖然它支援某些特性。最後但不是最重要的--為了執行Hbase,Zookeeper是必須的,zookeeper是一個用來進行分散式協調的服務,這些服務包括配置服務,維護元資訊和名稱空間服務。

4. 應用場景

    Hive適合用來對一段時間內的資料進行分析查詢,例如,用來計算趨勢或者網站的日誌。Hive不應該用來進行實時的查詢。因為它需要很長時間才可以返回結果。

    Hbase非常適合用來進行大資料的實時查詢。Facebook用Hbase進行訊息和實時的分析。它也可以用來統計Facebook的連線數。

5. 總結

    Hive和Hbase是兩種基於Hadoop的不同技術--Hive是一種類SQL的引擎,並且執行MapReduce任務,Hbase是一種在Hadoop之上的NoSQL 的Key/vale資料庫。當然,這兩種工具是可以同時使用的。就像用Google來搜尋,用FaceBook進行社交一樣,Hive可以用來進行統計查詢,HBase可以用來進行實時查詢,資料也可以從Hive寫到Hbase,設定再從Hbase寫回Hive。

相關推薦

hivehbase關係

1. 兩者分別是什麼?    Apache Hive是一個構建在Hadoop基礎設施之上的資料倉庫。通過Hive可以使用HQL語言查詢存放在HDFS上的資料。HQL是一種類SQL語言,這種語言最終被轉化為Map/Reduce. 雖然Hive提供了SQL查詢功能,但是Hive不能夠進行互動查詢--因為它只能

HiveHbase的區別

缺點 每一個 oop 設備 actions 利用 計數 映射 編寫 1. 兩者分別是什麽? Apache Hive是一個構建在Hadoop基礎設施之上的數據倉庫。通過Hive可以使用HQL語言查詢存放在HDFS上的數據。HQL是一種類SQL語言,這種語言最終被轉化為M

淺談HiveHBase區別

但是 hql 應該 hdf 目前 http 返回 最重要的 hadoop基礎 出處: http://www.cnblogs.com/zlslch/p/5659641.html . 兩者分別是什麽?   Apache Hive是一個構建在Hadoop基礎設施之上的數

hiveHBase的比較

Hive 1、資料倉庫 Hive 的本質其實就相當於將 HDFS 中已經儲存的檔案在 Mysql 中做了一個雙射關係,以方便使用 HQL 去管理查詢。 2、用於資料分析、清洗 Hive 適用於離線的資料分析和清洗,延遲較高。 3、基於HDFS,MapReduce Hi

Hive HBase 的區別

1. 兩者分別是什麼?         Apache Hive是一個構建在Hadoop基礎設施之上的資料倉庫。通過Hive可以使用HQL語言查詢存放在HDFS上的資料。HQL是一種類SQL語言,這種語言最終被轉化為Map/Red

hivehbase整合,Caused by: java.lang.ClassNotFoundException

Hive-1.2.1與HBase-1.1.2的整合 這裡的整合是指,將HBase作為儲存資料的庫,由Hive作為連線橋樑 在Hive中建立表時,出現了 FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.q

HIVEHBASE區別

Hive中的表是純邏輯表,就只是表的定義等,即表的元資料。Hive本身不儲存資料,它完全依賴HDFS和MapReduce。這樣就可以將結構化的資料檔案對映為為一張資料庫表,並提供完整的SQL查詢功能,並將SQL語句最終轉換為MapReduce任務進行執行。 而HBase表是

Hadoop HiveHbase關係 整合

用hbase做資料庫,但由於hbase沒有類sql查詢方式,所以操作和計算資料非常不方便,於是整合hive,讓hive支撐在hbase資料庫層面 的 hql查詢.hive也即 做資料倉庫 1. 基於Hadoop+Hive架構對海量資料進行查詢:http://blog.csd

hivehbase資料相互關聯

一.使用hive獲取,HBASE中資料 1.create 'hadoop:hbase_hive_human','info' 2.造數 put 'hadoop:hbase_hive_human','1','info:id','1' put 'hadoop:hbase_hive_human','1','

HiveHBase的整合原理

Point 1: 配置 hive 與 hbase 整合的目的是利用 HQL 語法實現對 hbase 資料庫的增刪改查操作,基本原理就是利用兩者本身對外的API介面互相進行通訊,兩者通訊主要是依靠hive_hbase-handler.jar工具類。 但請注意:

HiveHbase關係整合

近期工作用到了Hive與Hbase的關係整合,雖然從網上參考了很多的資料,但是大多數講的都不是很細,於是決定將這塊知識點好好總結一下供大家分享,共同掌握!  本篇文章在具體介紹Hive與Hbase整合之前,先給大家用一個流程圖介紹Hadoop業務的開發流程以及Hive與H

Hive定義、HiveHBase關係Hive與RDBMS的關係、資料庫與資料倉庫的區別

1、Hive定義 Hive 是建立在 Hadoop 上的資料倉庫基礎構架。它提供了一系列的工具,可以用來進行資料提取轉化載入(ETL),這是一種可以儲存、查詢和分析儲存在 Hadoop 中的大規模資料的機制。Hive 定義了簡單的類 SQL 查詢語言,稱為 HQL,它允許熟

HBase學習之一: 建立hivehbase關聯表

背景:專案中需要使用HQL對源資料進行分析,分析的結果需要做近似於實時的查詢,所以建立的表就需要在hive和hbase之間相關聯,此為背景。 drop table tbl_hive_test; create external table tbl_hive_test (   

Hadoop生態系統之HiveHBase and Zookeeper

今天來說一下Hadoop生態系統中的Zookeeper,HBase,Hive,說到Zookeeper簡單來說其實就是Hadoop分散式框架的一個協調服務,也就是分散式應用都需要一個主控協調器或者控制器來管理物理分佈的子程序.那再說的明白點就是:Zookeeper在hadoo

建立hivehbase整合表報錯原因之一

我的hive版本是apache-hive-1.2.1-bin.tar在hive裡建立hive和hbase整合表的內部表報錯資訊如下:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.ex

hive學習教程(五):hiveHbase整合

一、Hive整合HBase原理 Hive與HBase整合的實現是利用兩者本身對外的API介面互相進行通訊,相互通訊主要是依靠hive-hbase-handler-0.9.0.jar工具類,如下圖 Hive與HBase通訊示意圖 二、具體步驟

Hadoop、HbaseHivezookeeper版本匹配關係

Hadoop平臺中各個元件的版本匹配非常重要!不是所有元件都下載最新版本就好,版本不匹配和引發各種問題。 Hadoop和Hbase的匹配關係可以檢視Hbase官方文件,搜尋‘Hadoop version support matrix’: Hadoop和Hive的匹

Hive關係資料庫的簡單區別

這裡列舉以下幾點區別: 1、Hive 和關係資料庫儲存檔案的系統不同,Hive 使用的是 Hadoop 的HDFS(Hadoop的分散式檔案系統),關係資料庫則是伺服器本地的檔案系統; 2、Hive 使用的計算模型是 MapReduce,而關係資料庫則是自己設計的計算模型; 3、關係

大資料之Spark(八)--- Spark閉包處理,部署模式叢集模式,SparkOnYarn模式,高可用,Spark整合Hive訪問hbase類載入等異常解決,使用spark下的thriftserv

一、Spark閉包處理 ------------------------------------------------------------ RDD,resilient distributed dataset,彈性(容錯)分散式資料集。 分割槽列表,function,dep Op

SqoolHiveHBase簡介

Sqool和Hive、HBase簡介 Sqoop Sqoop是一個用來將Hadoop和關係型資料庫中的資料相互轉移的開源工具,可以將一個關係型資料庫(例如 : MySQL ,Oracle ,Postgres等)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料導進到關係型資料庫中。