日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

HBase总结(十一)hbase Java API 介绍及使用示例

發布時間:2025/6/15 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HBase总结(十一)hbase Java API 介绍及使用示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
幾個相關類與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() 獲取下一行的值

    總結

    以上是生活随笔為你收集整理的HBase总结(十一)hbase Java API 介绍及使用示例的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。