<sup id="m40ya"></sup>
  • 
    
  • <kbd id="m40ya"></kbd>
    <samp id="m40ya"></samp>
    <ul id="m40ya"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    hbase java

    文檔

    hbase java

    HBase是一個分布式的、面向列的開源數據庫,具有高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。
    推薦度:
    導讀HBase是一個分布式的、面向列的開源數據庫,具有高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。

    hbase java是什么,讓我們一起了解一下?

    HBase是一個分布式的、面向列的開源數據庫,具有高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。

    如何使用JAVA語言操作Hbase、整合Hbase?

    可分為五步驟:

    步驟1:新創建一個Java Project?。

    步驟2:導入JAR包,在工程根目錄下新建一個“lib”文件夾,將官方文檔中的lib目錄下的jar全部導入。

    步驟3:修改開發機的hosts文件,在文件莫為增加一行虛擬機IP的映射信息。

    步驟4:修改虛擬機的配置文件,修改虛擬機的設備名稱,名稱需要與之前兩個配置文件的映射名稱一致。

    步驟5:實現查詢、新建、刪除等。

    案例代碼展示如下:

    package?hbase;
    import?java.io.IOException;
    import?java.util.ArrayList;
    import?java.util.List;
    import?org.apache.hadoop.conf.Configuration;
    import?org.apache.hadoop.hbase.Cell;
    import?org.apache.hadoop.hbase.HBaseConfiguration;
    import?org.apache.hadoop.hbase.HColumnDescriptor;
    import?org.apache.hadoop.hbase.HTableDescriptor;
    import?org.apache.hadoop.hbase.TableName;
    import?org.apache.hadoop.hbase.client.Admin;
    import?org.apache.hadoop.hbase.client.Connection;
    import?org.apache.hadoop.hbase.client.ConnectionFactory;
    import?org.apache.hadoop.hbase.client.Delete;
    import?org.apache.hadoop.hbase.client.Get;
    import?org.apache.hadoop.hbase.client.Put;
    import?org.apache.hadoop.hbase.client.Result;
    import?org.apache.hadoop.hbase.client.ResultScanner;
    import?org.apache.hadoop.hbase.client.Scan;
    import?org.apache.hadoop.hbase.client.Table;
    import?org.apache.hadoop.hbase.exceptions.DeserializationException;
    import?org.apache.hadoop.hbase.filter.Filter;
    import?org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
    import?org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
    import?org.apache.hadoop.hbase.util.Bytes;
    import?org.junit.Before;
    import?org.junit.Test;
    public?class?HBaseDemo?{
    //?與HBase數據庫的連接對象
    Connection?connection;
    //?數據庫元數據操作對象
    Admin?admin;
    @Before
    public?void?setUp()?throws?Exception?{
    //?取得一個數據庫連接的配置參數對象
    Configuration?conf?=?HBaseConfiguration.create();
    //?設置連接參數:HBase數據庫所在的主機IP
    conf.set("hbase.zookeeper.quorum",?"192.168.137.13");
    //?設置連接參數:HBase數據庫使用的端口
    conf.set("hbase.zookeeper.property.clientPort",?"2181");
    //?取得一個數據庫連接對象
    connection?=?ConnectionFactory.createConnection(conf);
    //?取得一個數據庫元數據操作對象
    admin?=?connection.getAdmin();
    }
    /**
    ????*?創建表
    ????*/
    public?void?createTable()?throws?IOException{
    System.out.println("---------------創建表?START-----------------");
    //?數據表表名
    String?tableNameString?=?"t_book";
    //?新建一個數據表表名對象
    TableName?tableName?=?TableName.valueOf(tableNameString);
    //?如果需要新建的表已經存在
    if(admin.tableExists(tableName)){
    System.out.println("表已經存在!");
    }
    //?如果需要新建的表不存在
    else{
    //?數據表描述對象
    HTableDescriptor?hTableDescriptor?=?new?HTableDescriptor(tableName);
    //?列族描述對象
    HColumnDescriptor?family=?new?HColumnDescriptor("base");;
    //?在數據表中新建一個列族
    hTableDescriptor.addFamily(family);
    //?新建數據表
    admin.createTable(hTableDescriptor);
    }
    System.out.println("---------------創建表?END-----------------");
    }
    /**
    ????*?查詢整表數據
    ????*/
    @Test
    public?void?queryTable()?throws?IOException{
    System.out.println("---------------查詢整表數據?START-----------------");
    //?取得數據表對象
    Table?table?=?connection.getTable(TableName.valueOf("t_book"));
    //?取得表中所有數據
    ResultScanner?scanner?=?table.getScanner(new?Scan());
    //?循環輸出表中的數據
    for?(Result?result?:?scanner)?{
    byte[]?row?=?result.getRow();
    System.out.println("row?key?is:"?+?new?String(row));
    List?listCells?=?result.listCells();
    for?(Cell?cell?:?listCells)?{
    byte[]?familyArray?=?cell.getFamilyArray();
    byte[]?qualifierArray?=?cell.getQualifierArray();
    byte[]?valueArray?=?cell.getValueArray();
    System.out.println("row?value?is:"?+?new?String(familyArray)?+?new?String(qualifierArray)
    +?new?String(valueArray));
    }
    }
    System.out.println("---------------查詢整表數據?END-----------------");
    }
    /**
    ????*?按行鍵查詢表數據
    ????*/
    @Test
    public?void?queryTableByRowKey()?throws?IOException{
    System.out.println("---------------按行鍵查詢表數據?START-----------------");
    //?取得數據表對象
    Table?table?=?connection.getTable(TableName.valueOf("t_book"));
    //?新建一個查詢對象作為查詢條件
    Get?get?=?new?Get("row8".getBytes());
    //?按行鍵查詢數據
    Result?result?=?table.get(get);
    byte[]?row?=?result.getRow();
    System.out.println("row?key?is:"?+?new?String(row));
    List?listCells?=?result.listCells();
    for?(Cell?cell?:?listCells)?{
    byte[]?familyArray?=?cell.getFamilyArray();
    byte[]?qualifierArray?=?cell.getQualifierArray();
    byte[]?valueArray?=?cell.getValueArray();
    System.out.println("row?value?is:"?+?new?String(familyArray)?+?new?String(qualifierArray)
    +?new?String(valueArray));
    }
    System.out.println("---------------按行鍵查詢表數據?END-----------------");
    }
    /**
    ????*?按條件查詢表數據
    ????*/
    @Test
    public?void?queryTableByCondition()?throws?IOException{
    System.out.println("---------------按條件查詢表數據?START-----------------");
    //?取得數據表對象
    Table?table?=?connection.getTable(TableName.valueOf("t_book"));
    //?創建一個查詢過濾器
    Filter?filter?=?new?SingleColumnValueFilter(Bytes.toBytes("base"),?Bytes.toBytes("name"),
    CompareOp.EQUAL,?Bytes.toBytes("bookName6"));
    //?創建一個數據表掃描器
    Scan?scan?=?new?Scan();
    //?將查詢過濾器加入到數據表掃描器對象
    scan.setFilter(filter);
    //?執行查詢操作,并取得查詢結果
    ResultScanner?scanner?=?table.getScanner(scan);
    //?循環輸出查詢結果
    for?(Result?result?:?scanner)?{
    byte[]?row?=?result.getRow();
    System.out.println("row?key?is:"?+?new?String(row));
    List?listCells?=?result.listCells();
    for?(Cell?cell?:?listCells)?{
    byte[]?familyArray?=?cell.getFamilyArray();
    byte[]?qualifierArray?=?cell.getQualifierArray();
    byte[]?valueArray?=?cell.getValueArray();
    System.out.println("row?value?is:"?+?new?String(familyArray)?+?new?String(qualifierArray)
    +?new?String(valueArray));
    }
    }
    System.out.println("---------------按條件查詢表數據?END-----------------");
    }
    /**
    ????*?清空表
    ????*/
    @Test
    public?void?truncateTable()?throws?IOException{
    System.out.println("---------------清空表?START-----------------");
    //?取得目標數據表的表名對象
    TableName?tableName?=?TableName.valueOf("t_book");
    //?設置表狀態為無效
    admin.disableTable(tableName);
    //?清空指定表的數據
    admin.truncateTable(tableName,?true);
    System.out.println("---------------清空表?End-----------------");
    }
    /**
    ????*?刪除表
    ????*/
    @Test
    public?void?deleteTable()?throws?IOException{
    System.out.println("---------------刪除表?START-----------------");
    //?設置表狀態為無效
    admin.disableTable(TableName.valueOf("t_book"));
    //?刪除指定的數據表
    admin.deleteTable(TableName.valueOf("t_book"));
    System.out.println("---------------刪除表?End-----------------");
    }
    /**
    ????*?刪除行
    ????*/
    @Test
    public?void?deleteByRowKey()?throws?IOException{
    System.out.println("---------------刪除行?START-----------------");
    //?取得待操作的數據表對象
    Table?table?=?connection.getTable(TableName.valueOf("t_book"));
    //?創建刪除條件對象
    Delete?delete?=?new?Delete(Bytes.toBytes("row2"));
    //?執行刪除操作
    table.delete(delete);
    System.out.println("---------------刪除行?End-----------------");
    }
    /**
    ????*?刪除行(按條件)
    ????*/
    @Test
    public?void?deleteByCondition()?throws?IOException,?DeserializationException{
    System.out.println("---------------刪除行(按條件)?START-----------------");
    //?步驟1:調用queryTableByCondition()方法取得需要刪除的數據列表
    //?步驟2:循環步驟1的查詢結果,對每個結果調用deleteByRowKey()方法
    System.out.println("---------------刪除行(按條件)?End-----------------");
    }
    /**
    ????*?新建列族
    ????*/
    @Test
    public?void?addColumnFamily()?throws?IOException{
    System.out.println("---------------新建列族?START-----------------");
    //?取得目標數據表的表名對象
    TableName?tableName?=?TableName.valueOf("t_book");
    //?創建列族對象
    HColumnDescriptor?columnDescriptor?=?new?HColumnDescriptor("more");
    //?將新創建的列族添加到指定的數據表
    admin.addColumn(tableName,?columnDescriptor);
    System.out.println("---------------新建列族?END-----------------");
    }
    /**
    ????*?刪除列族
    ????*/
    @Test
    public?void?deleteColumnFamily()?throws?IOException{
    System.out.println("---------------刪除列族?START-----------------");
    //?取得目標數據表的表名對象
    TableName?tableName?=?TableName.valueOf("t_book");
    //?刪除指定數據表中的指定列族
    admin.deleteColumn(tableName,?"more".getBytes());
    System.out.println("---------------刪除列族?END-----------------");
    }
    /**
    ????*?插入數據
    ????*/
    @Test
    public?void?insert()?throws?IOException{
    System.out.println("---------------插入數據?START-----------------");
    //?取得一個數據表對象
    Table?table?=?connection.getTable(TableName.valueOf("t_book"));
    //?需要插入數據庫的數據集合
    List?putList?=?new?ArrayList();
    Put?put;
    //?生成數據集合
    for(int?i?=?0;?i?

    以上就是小編今天的分享了,希望可以幫助到大家。

    文檔

    hbase java

    HBase是一個分布式的、面向列的開源數據庫,具有高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    hibernate java hotspot java idea創建java idea創建普通java項目 idea怎么建立java idea編寫java程序 influxdb java instance java instant java integer java interface java iterator java 鐵觀音產地是哪個地方 java -ea 南極洲有哪些國家 行程碼帶*號什么意思 祁連山在哪個省境內 idea新建java項目 java -xms java 32bit guava java groupby java grep java golang調用java glue java geojson java geohash java gdb java gdal java gateway java for循環java foreach java field java 愛奇藝黃金會員和星鉆會員的區別 false是java關鍵字嗎 extends java extend java excel讀取java enum java 小程序和app的區別
    Top 香港三级精品三级在线专区| 国产国产精品人在线观看| 久久久精品人妻一区二区三区蜜桃 | 日韩精品免费一级视频| 久久久久久久久久久免费精品| 老司机无码精品A| 久久精品午夜一区二区福利| 国产高清在线精品一区二区| 四虎国产精品永久在线无码| 久久99青青精品免费观看| 国产精品成人精品久久久| 欧美精品久久久久久精品爆乳| 久久丫精品国产亚洲av不卡| 久久亚洲中文字幕精品一区四| 精品国产福利在线观看91啪| 91精品国产综合久久四虎久久无码一级| 国产精品一区12p| 国产精品高清尿小便嘘嘘| 亚洲精品第五页中文字幕| 国产精品特级毛片一区二区三区 | 中文成人无字幕乱码精品区| 老司机免费午夜精品视频| 国产成人精品三级在线| 无码国产精品一区二区免费模式| 国产偷国产偷高清精品| 国产模特众筹精品视频| 日韩精品无码区免费专区| 91精品国产肉丝高跟在线| 亚洲处破女AV日韩精品| 99久久免费国产精品热| 精品国产一区二区三区AV性色| 国产精品成人va在线播放| 国产av一区最新精品| 亚洲AV综合永久无码精品天堂| 亚洲中文久久精品无码1| 乱色精品无码一区二区国产盗| 国内精品伊人久久久久| 中文字幕精品一区| 久久亚洲中文字幕精品一区四| 亚洲精品无码久久久| 日本精品一区二区三区在线视频一|