hbase基礎shell操作


一 基礎理論
Hbase是一個非分布式的,面向列的開源數據庫
基於BigTable
非結構化
存儲在HDFS上,備份機制
線性擴展
cluster / slave
Hmaster
Regionserver
Hbase架構圖:
 
組件功能:
 
Hbase數據模型:
NameSpace
Rowkey
family_columns . hbase 表中的每個列,都歸屬與某個列族。列族是表的 schema 的一部分(而列不是),必須在 使用表之前定義。 列名都以列族作為前綴。例如 courses:history , courses:math 都屬於 courses 這個列族。 訪問控制、磁盤和內存的使用統計都是在列族層面進行的。列族越多,在取一行數據時所要參與 IO、搜尋的文件就越多,所以,如果沒有必要,不要 設置太多的列族 
(每個列族存放在不同的文件中,建表時列族越少越好)
TimeStamp
cell 沒有數據類型,都是字節碼的形式, cell有多版本,Rowket和列唯一確定cell,cell的版本通過時間戳來索引
為了避免數據存在過多版本造成的的管理 (包括存貯和索引)負擔, hbase 提供了兩種數據版 本回收方式: 
       保存數據的最后 n 個版本
      保存最近一段時間內的版本(設置數據的生命周期 TTL)。
用戶可以針對每個列族進行設置。
二 基本操作
列出所有表:list
 
創建表:第一種:列族設置默認屬性 create 'userInfo', 'baseInfo', 'extrInfo'
    第二種:設置列族屬性 create 'userInfo', { NAME => 'baseInfo', VERSIONS => 3 }, { NAME => 'extrInfo', VERSIONS => 2}
增加刪除列族:(在表有數據的情況下,要先disable表,才能alter)
    增加:alter 'userInfo', 'add_family'
           alter 'userInfo', { NAME => 'add_new', VERSIONS => 3 }
    刪除:alter 'userInfo', 'delete'=> 'add_family'
         alter 'userInfo', { NAME => 'add_new', METHOD => 'delete' }
 
 
 
 
表失效:is_disable 判斷表是否失效
    is_enable 判斷表是否有效
    disable 使表失效
    enable 使表生效
 
 
  刪除表:drop 'userInfo' (刪除之前要先disable)
 
插入數據:可以指定時間戳
  put 'user_info', 'rk001', 'base_info:name', 'Rose'
  put 'user_info', 'rk001', 'base_info:age', 20, 1535359300000
 
查詢數據:
  get : 指定rowkey查詢單條數據
  scan:指定條件,獲取批量數據
  詳情見 help 指定
 
 
刪除數據:指定 rowkey ,指定時間戳
 
清空表數據:truncate 'user_info'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM