HBase(五): HBase運維管理

来源:http://www.cnblogs.com/tgzhu/archive/2016/09/11/5836231.html
-Advertisement-
Play Games

HBase自帶的很多工具可用於管理、分析、修複和調試,這些工具一部分的入口是hbase shell 客戶端,另一部分是在hbase的Jar包中。 目錄: hbck hfile 數據備份與恢復 hbck: hbck 工具用於Hbase底層文件系統的檢測與修複,包含Master、RegionServer ...


      HBase自帶的很多工具可用於管理、分析、修複和調試,這些工具一部分的入口是hbase shell 客戶端,另一部分是在hbase的Jar包中。

目錄:

  • hbck
  • hfile
  • 數據備份與恢復
    1. Snapshots
    2. Replication
    3. Export
    4. CopyTable
    5. HTable API
    6. Offline backup of HDFS data

hbck:


  • hbck 工具用於Hbase底層文件系統的檢測與修複,包含Master、RegionServer記憶體中的狀態及HDFS上數據的狀態之間的一致性、黑洞問題、定位元數據不一致問題等
  • 命令: hbase hbck -help  查看參數幫助選項
  • 命令: hbase hbck -details   顯示所有Region的完整報告
  • 命令: hbase hbck -metaonly  只檢測元數據表的狀態,如下圖:
  • 快捷修複命令:
  • 命令:hbase hbck -repair -ignorePreCheckPermission   
  • 命令:hbase hbck -repairHoles -ignorePreCheckPermission   
  • 應用示例,參見:HBase(三): Azure HDInsigt HBase表數據導入本地HBase

hfile:


  • 查看HFile文件內容工具,命令及參數如下:
  • 命令:hbase hfile -p -f  /apps/hbase/data/data/default/PerTest/7685e6c39d1394d94e26cf5ddafb7f9f/d/3ef195ca65044eca93cfa147414b56c2
  • 效果如下圖:

 數據備份與恢復:


  • 常用的備份恢復方法如下圖:參考文檔: http://blog.cloudera.com/blog/2013/11/approaches-to-backup-and-disaster-recovery-in-hbase/

snapshots:


  • HBase快照功能豐富,有很多特征,創建時不需要關閉集群
  • 快照在幾秒內就可以完成,幾乎對整個集群沒有任何性能影響。並且,它只占用一個微不足道的空間
  • 啟用快速需設置 hbase-site.xml 文件的  hbase.snapshot.enabled 為True
  • 命令: snapshot 'PerTest','snapPerTest'     基於表 PerTest 創建名為 snapPerTest 的快照
  • 命令: list_snapshots                               查看快照列表
  • 創建完快照後,在hbase 目錄下會生成 .hbase-snapshots 目錄,存放快照信息,如右下角圖
  •   
  • 命令:delete_snapshot 'snapPerTest'       刪除快照
  • 恢復快照需要對錶進行離線操作。一旦恢復快照,那任何在快照時刻之後做的增加/更新數據都會丟失,命令如下:
    disable 'PerTest'
    restore_snapshot  'snapPerTest'
    enable 'PerTest'
  •  命令:clone_snapshot 'snapPerTest','PerTest1'     根據快照clone新表(註:clone出來的新表不帶數據副本)

  • ExportSnapshot tool 快照導出工具命令: hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 'snapPerTest' -copy-to /apps/hbase/data/zhu
  • 註意: 如果能訪問到另一集群,則後面的地址可直接改為另一集群hdfs目錄
  • 導出的文件結構如下

 Replication:


  • HBase replication是另外一個負載較輕的備份工具。被定義為列簇級別,可以工作在後臺並且保證所有的編輯操作在集群複製鏈之間的同步
  • 複製有三種模式:主->從(master->slave),主<->主(master<->master)和迴圈(cyclic)。這種方法給你靈活的從任意數據中心獲取數據並且確保它能獲得在其他數據中心的所有副本。在一個數據中心發生災難性故障的情況下,客戶端應用程式可以利用DNS工具,重定向到另外一個備用位置
  • 註:對於一個存在的表,你需要通過本文描述的其他方法,手工的拷貝源表到目的表。複製僅僅在你啟動它之後才對新的寫/編輯操作有效
  • 複製是一個強大的,容錯的過程。它提供了“最終一致性”,意味著在任何時刻,最近對一個表的編輯可能無法應用到該表的所有副本,但是最終能夠確保一致。

Export:


  • Export是HBase一個內置的實用功能,它使數據很容易將hbase表內容輸出成HDFS的SequenceFiles文件
  • 使用map reduce任務,通過一系列HBase API來獲取指定表格的每一行數據,並且將數據寫入指定的HDFS目錄中
  • 示例說明:集群A:基於HDInsight創建的windows系統下的hbase 集群, 集群B 基於Azure 虛擬機創建的liunx系統下 hbase集群,將A集群中表StocksInfo表導出至集群B的hdfs目錄,遺憾的是兩個集群無法通信,只能先導到本地,再手工上傳
  • 命令語法: hbase org.apache.hadoop.hbase.mapreduce.Export <tablename> <outputdir>     示例如下:
  • 導出的文件結構如下:
  • 命令:hdfs dfs -get /zhu c:/zhu 下載到A集群某節點c盤,手工上傳至liunx,如下圖
  • 使用import命令導入數據至B集群HBase表,如下:(註:輸入目錄的文件必須是Export命令導出的文件格式)
  • 命令語法:hbase org.apache.hadoop.hbase.mapreduce.Import <tablename> <inputdir>  如下圖:
  • 查看Hbase 表,如下圖則OK

copyTable:


  • 和導出功能類似,拷貝表也使用HBase API創建了一個mapreduce任務,以便從源表讀取數據。不同的地方是拷貝表的輸出是hbase中的另一個表,這個表可以在本地集群,也可以在遠程集群
  • 它使用獨立的“puts”操作來逐行的寫入數據到目的表。如果你的表非常大,拷貝表將會導致目標region server上的memstore被填滿,會引起flush操作並最終導致合併操作的產生,會有垃圾收集操作等等
  • 必須考慮到在HBase上運行mapreduce任務所帶來的性能影響。對於大型的數據集,這種方法的效果不太理想
  • 命令語法:hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=PerTest2 PerTest    (copy名為PerTest的表到集群中的另外一個表PerTest2) 如下圖
  • 註意:若用到--new.name =xxx,首先這個新表要之前就被定義

Offline backup of HDFS data:


 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • mysql存儲過程詳解 1. 存儲過程簡介 我們常用的操作資料庫語言SQL語句在執行的時候需要要先編譯,然後執行,而存儲過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經編譯後存儲在資料庫中,用戶通過指定存儲過程的名字並給定參數(如果該存儲過程帶有參數)來調用執行它。 ...
  • 介紹 以前一直使用centos今天需要對一臺ubantu的系統安裝mysql,雖然它也是類unix但是和redhat或centos命令上還是有點差別。 下載解壓 wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux- ...
  • 轉自http://www.shangxueba.com/jingyan/1940447.html 1.游標方式 複製代碼代碼如下: DECLARE @Data NVARCHAR(max) SET @Data='1,tanw,2,keenboy' --Id,Name DECLARE @dataItem ...
  • 附加資料庫時出現附加資料庫失敗的錯誤,錯誤號是5120,已經兩次遇到這種問題了。今天寫一下解決辦法。 有兩個方法,很簡單: 1.設置mdf文件所在文件夾的許可權,在文件夾上右擊——屬性——安全,如圖所示: 根據圖示進行設置即可,註意是Authenticated user的許可權。 2.不要用sa登陸你的 ...
  • 在主庫沒有數據情況下配置MYSQL的主從及讀寫分離。目前只接觸過mysql_proxy,atlas(360)的代理。現已學習一下。以備以後用到。 ...
  • 在 HBase(六): HBase體繫結構剖析(上) 介紹過,Hbase創建表時,只需指定表名和至少一個列族,基於HBase表結構的設計優化主要是基於列族級別的屬性配置,如下圖: 目錄: BLOOMFILTER BLOCKSIZE IN_MEMORY COMPRESSION/ENCODING VER ...
  • 前陣子給以同事導oracle資料庫,但是發現導入後數據都是亂碼,下麵是自己解決這個問題的一些小整理。 比如: #su oralce $export ORACLE_SID=orcl $export ORACLE_HOME=/db/oracle/product/10.2.0/db_1 $cd $ORAC ...
  • explain顯示了mysql如何使用索引來處理select語句以及連接表。可以幫助選擇更好的索引和寫出更優化的查詢語句。 1、創建資料庫 創建的sql語句如下: 2、explain使用方法 使用方法:在select語句前加上explain 就可以了,如: 結果: 3、explain各個參數解釋 i ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...