<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 国产成人精品美女在线| 国产99精品久久| 国产精品久久久久国产精品| 人人妻人人澡人人爽人人精品97 | 嫩B人妻精品一区二区三区| 亚洲精品美女网站| 少妇精品久久久一区二区三区| 伊在人亚洲香蕉精品区麻豆 | 国内精品久久久久久不卡影院| 久久这里的只有是精品23| 精品视频一区二区三区免费 | 精品国产青草久久久久福利| 精品国产乱码久久久久久鸭王1 | 精品国产乱码欠欠欠欠精品| 午夜精品免费在线观看| 精品人妻无码专区中文字幕| 国产精品美女网站在线看| 精品人妻系列无码一区二区三区| 亚洲精品乱码久久久久久中文字幕| 国产精品538一区二区在线| 亚洲精品123区在线观看| 91亚洲国产成人精品下载| 老司机99精品99| 久久久91人妻无码精品蜜桃HD| 国产精品伦子一区二区三区| 国产精品久久久久久久app| 99久久久国产精品免费牛牛四川 | 久久夜色精品国产噜噜麻豆| 91久久精品国产91久久性色tv| 久久91综合国产91久久精品| 精品久久久久一区二区三区 | 久久精品国产亚洲av日韩| 日本无码小泬粉嫩精品图| 伊人久久精品影院| 麻豆精品一区二区综合av| 成人综合婷婷国产精品久久蜜臀| 国产精品久久久香蕉| 国产精品美女久久久久网| 91精品啪在线观看国产电影| 久久精品a亚洲国产v高清不卡| 嫖妓丰满肥熟妇在线精品|