一:Hbase和Hive對比
- Hive簡介
Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射爲一張數據庫表,並提供簡單的sql查詢功能,
可以將sql語句轉換爲MapReduce任務進行運行。
Hive 是建立在 Hadoop 之上爲了降低 MapReduce 編程複雜度的 ETL 工具。
Hive的本質其實就相當於將HDFS中已經存儲的文件在Mysql中做了一個雙射關係,以方便使用HQL去管理查詢。
Hive適用於離線的數據分析和清洗,延遲較高。
Hive存儲的數據依舊在DataNode上,編寫的HQL語句終將是轉換爲MapReduce代碼執行。
Hive 表是純邏輯表,因爲 Hive 的本身並不能做數據存儲和計算,而是完全依賴 Hadoop
Hive 是數據倉庫工具,需要全表掃描,就用 Hive,因爲 Hive 是文件存儲,運行Hive查詢會花費很長時間,
因爲它會默認遍歷表中所有的數據。 - Hbase簡介
HBase是Hadoop的數據庫,一個分佈式、可擴展、大數據的存儲。
Hbase是一種面向列存儲的非關係型數據庫。
Hbase用於存儲結構化和非結構化的數據,適用於單表非關係型數據的存儲,不適合做關聯查詢,類似JOIN等操作.
Hbase基於HDFS,數據持久化存儲的體現形式是Hfile,存放於DataNode中,被ResionServer以region的形式進行管理。
Hbase延遲較低,接入在線業務使用.面對大量的企業數據,HBase可以直線單表大量數據的存儲,同時提供了高效的數據訪問速度。
HBase通過存儲key/value來工作。
HBase 是數據庫,需要索引訪問,則用 HBase,因爲 HBase 是面向列的 NoSQL 數據庫.
HBase 是物理表,提供了一張超大的內存 Hash 表來存儲索引,方便查詢.
HBase 是爲了彌補 Hadoop 對實時操作的缺陷
二:Hbase常用的 Shell 操作
三:Hbase數據的備份與恢復
- 簡介
停止 HBase 服務後,使用 distcp 命令運行 MapReduce 任務進行備份,將數據備份到另一個
地方,可以是同一個集羣,也可以是專用的備份集羣。 - 下面我們操作即,把數據轉移到當前集羣的其他目錄下(也可以不在同一個集羣中):
a:我們將下面hdfs上的/hbase備份到另外一個目錄下
- 命令如下:
- 效果
四:Hbase高可用
- 簡介
在 HBase 中 Hmaster 負責監控 RegionServer 的生命週期,均衡 RegionServer 的負載,如果
Hmaster 掛掉了,那麼整個 HBase 集羣將陷入不健康的狀態,並且此時的工作狀態並不會維持太久。
所以 HBase 支持對 Hmaster 的高可用配置。 - 在hadoop111機器的 /usr/local/module/hbase-1.3.1/conf 目錄下創建 backup-masters 文件
hadoop111是之前的master節點,現在是讓hadoop112成爲備用的master節點 - 分發到其他的兩臺機器
- 在hadoop111機器上執行啓動腳本
- 效果