HBase Java API

來源:互聯網
上載者:User

  幾個相關類與HBase資料模型之間的對應關係

java類 HBase資料模型
HBaseAdmin 資料庫(DataBase)
HBaseConfiguration
HTable 表(Table)
HTableDescriptor 列族(Column Family)
Put 列修飾符(Column Qualifier)
Get
Scanner

 

一、HBaseConfiguration

關係:org.apache.hadoop.hbase.HBaseConfiguration

作用:對HBase進行配置

 傳回值  函數  描述
 void  addResource(Path file)  通過給定的路徑所指的檔案來添加資源
 void  clear()  清空所有已設定的屬性
 string  get(String name)  擷取屬性名稱對應的值
 String  getBoolean(String name, boolean defaultValue)  擷取為boolean類型的屬性值,如果其屬性值類型部位boolean,則返回預設屬性值
 void  set(String name, String value)  通過屬性名稱來設定值
 void  setBoolean(String name, boolean value)  設定boolean類型的屬性值

 用法樣本:

HBaseConfiguration hconfig = new HBaseConfiguration();hconfig.set("hbase.zookeeper.property.clientPort","2181");

  該方法設定了"hbase.zookeeper.property.clientPort"的連接埠號碼為2181。一般情況下,HBaseConfiguration會使用建構函式進行初始化,然後在使用其他方法。

二、HBaseAdmin

關係:org.apache.hadoop.hbase.client.HBaseAdmin

作用:提供了一個介面來管理HBase資料庫的表資訊。它提供的方法包括:建立表,刪除表,列出表項,使表有效或無效,以及添加或刪除表列族成員等。

 傳回值  函數  描述
      void  addColumn(String tableName, HColumnDescriptor column)  向一個已經存在的表添加咧
 checkHBaseAvailable(HBaseConfiguration conf)  靜態函數,查看HBase是否處於運行狀態
 createTable(HTableDescriptor desc)  建立一個表,同步操作
 deleteTable(byte[] tableName)  刪除一個已經存在的表
 enableTable(byte[] tableName)  使表處於有效狀態
 disableTable(byte[] tableName)  使表處於無效狀態
 HTableDescriptor[]  listTables()  列出所有使用者控制項表項
 void  modifyTable(byte[] tableName, HTableDescriptor htd)  修改表的模式,是非同步操作,可能需要花費一定的時間
 boolean  tableExists(String tableName)  檢查表是否存在

用法樣本:

HBaseAdmin admin = new HBaseAdmin(config);admin.disableTable("tablename")

三、HTableDescriptor

關係:org.apache.hadoop.hbase.HTableDescriptor

作用:包含了表的名字極其對應表的列族

傳回值 函數 描述
void addFamily(HColumnDescriptor) 添加一個列族
HColumnDescriptor removeFamily(byte[] column) 移除一個列族
byte[] getName() 擷取表的名字
byte[] getValue(byte[] key) 擷取屬性的值
void setValue(String key, String value) 設定屬性的值

用法樣本:

HTableDescriptor htd = new HTableDescriptor(table);htd.addFamily(new HcolumnDescriptor("family"));

在上述例子中,通過一個HColumnDescriptor執行個體,為HTableDescriptor添加了一個列族:family

四、HColumnDescriptor

關係:org.apache.hadoop.hbase.HColumnDescriptor

作用:維護著關於列族的資訊,例如版本號碼,壓縮設定等。它通常在建立表或者為表添加列族的時候使用。列族被建立後不能直接修改,只能通過刪除然後重新建立的方式。列族被刪除的時候,列族裡面的資料也會同時被刪除。

傳回值 函數 描述
byte[] getName() 擷取列族的名字
byte[] getValue(byte[] key) 擷取對應的屬性的值
void setValue(String key, String value) 設定對應屬性的值

用法樣本:

HTableDescriptor htd = new HTableDescriptor(tablename);HColumnDescriptor col = new HColumnDescriptor("content:");htd.addFamily(col);

此例添加了一個content的列族

五、HTable

關係:org.apache.hadoop.hbase.client.HTable

作用:可以用來和HBase表直接通訊。此方法對於更新操作來說是非安全執行緒的。

傳回值 函數 描述
void checkAdnPut(byte[] row, byte[] family, byte[] qualifier, byte[] value, Put put 自動的檢查row/family/qualifier是否與給定的值匹配
void close() 釋放所有的資源或掛起內部緩衝區中的更新
Boolean exists(Get get) 檢查Get執行個體所指定的值是否存在於HTable的列中
Result get(Get get) 擷取指定行的某些儲存格所對應的值
byte[][] getEndKeys() 擷取當前一開啟的表每個地區的結束索引值
ResultScanner getScanner(byte[] family) 擷取當前給定列族的scanner執行個體
HTableDescriptor getTableDescriptor() 擷取當前表的HTableDescriptor執行個體
byte[] getTableName() 擷取表名
static boolean isTableEnabled(HBaseConfiguration conf, String tableName) 檢查表是否有效
void put(Put put) 向表中添加值

用法樣本:

HTable table = new HTable(conf, Bytes.toBytes(tablename));ResultScanner scanner =  table.getScanner(family);

六、Put

關係:org.apache.hadoop.hbase.client.Put

作用:用來對單個行執行添加操作

傳回值 函數 描述
Put add(byte[] family, byte[] qualifier, byte[] value) 將指定的列和對應的值添加到Put執行個體中
Put add(byte[] family, byte[] qualifier, long ts, byte[] value) 將指定的列和對應的值及時間戳記添加到Put執行個體中
byte[] getRow() 擷取Put執行個體的行
RowLock getRowLock() 擷取Put執行個體的行鎖
long getTimeStamp() 擷取Put執行個體的時間戳記
boolean isEmpty() 檢查familyMap是否為空白
Put setTimeStamp(long timeStamp) 設定Put執行個體的時間戳記

用法樣本:

HTable table = new HTable(conf,Bytes.toBytes(tablename));Put p = new Put(brow);//為指定行建立一個Put操作p.add(family,qualifier,value);table.put(p);

七、Get

關係:org.apache.hadoop.hbase.client.Get

作用:用來擷取單個行的相關資訊

傳回值 函數 描述
Get addColumn(byte[] family, byte[] qualifier) 擷取指定列族和列修飾符對應的列
Get addFamily(byte[] family) 通過指定的列族擷取其對應列的所有列
Get setTimeRange(long minStamp,long maxStamp) 擷取指定取件的列的版本號碼
Get setFilter(Filter filter) 當執行Get操作時設定伺服器端的過濾器

用法樣本:

HTable table = new HTable(conf, Bytes.toBytes(tablename));Get g = new Get(Bytes.toBytes(row));

八、Result

關係:org.apache.hadoop.hbase.client.Result

作用:儲存Get或者Scan操作後擷取表的單行值。使用此類提供的方法可以直接擷取值或者各種Map結構(key-value對)

傳回值 函數 描述
boolean containsColumn(byte[] family, byte[] qualifier) 檢查指定的列是否存在
NavigableMap<byte[],byte[]> getFamilyMap(byte[] family) 擷取對應列族所包含的修飾符與值的索引值對
byte[] getValue(byte[] family, byte[] qualifier) 擷取對應列的最新值

九、ResultScanner

關係:Interface

作用:用戶端擷取值的介面

傳回值 函數 描述
void close() 關閉scanner並釋放分配給它的資源
Result next() 擷取下一行的值
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.