欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

HBase中怎么操作API

本篇文章給大家分享的是有關(guān)HBase中怎么操作API,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

衡陽縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

【常用到的幾個類】

1. org.apache.hadoop.hbase.HBaseConfiguration

每一個hbase client都會使用到的對象,它代表的是HBase配置信息。它有兩種構(gòu)造方式:

public HBaseConfiguration()
public HBaseConfiguration(final Configuration c)

默認(rèn)的構(gòu)造方式會嘗試從hbase-default.xml和hbase-site.xml中讀取配置。如果classpath沒有這兩個文件,就需要你自己設(shè)置配置。

Configuration HBASE_CONFIG = new Configuration();
HBASE_CONFIG.set(“hbase.zookeeper.quorum”, “zkServer”);
HBASE_CONFIG.set(“hbase.zookeeper.property.clientPort”, “2181″);
HBaseConfiguration cfg = new HBaseConfiguration(HBASE_CONFIG);

2. org.apache.hadoop.hbase.client.HBaseAdmin
提供了一個接口來管理HBase數(shù)據(jù)庫的表信息。它提供的方法包括:創(chuàng)建表,刪除表,列出表項,使表有效或無效,以及添加或刪除表列族成員等。
HBase中怎么操作API

3. org.apache.hadoop.hbase.HTableDescriptor
包含了表的名字極其對應(yīng)表的列族。 
常用方法:void addFamily(HcolumnDescriptor family) 添加一個列族。其詳細(xì)用法如下所示,向tb_user表中添加了一個content列族。

HTableDescriptor tableDescriptor = new HTableDescriptor("tb_user");  
HColumnDescriptor col = new HColumnDescriptor("content:");  
tableDescriptor.addFamily(col);  

  
4. org.apache.hadoop.hbase.HColumnDescriptor
作用:維護(hù)著關(guān)于列族的信息,例如版本號,壓縮設(shè)置等。它通常在創(chuàng)建表或者為表添加列族的時候使用。列族被創(chuàng)建后不能直接修改,只能通過刪除然后重新創(chuàng)建的方式。列族被刪除的時候,列族里面的數(shù)據(jù)也會同時被刪除。
  
5. org.apache.hadoop.hbase.client.HTable
作用:可以用來和HBase表直接通信。此方法對于更新操作來說是非線程安全的。 

HBase中怎么操作API

  
7. org.apache.hadoop.hbase.client.Get
作用:用來獲取單個行的相關(guān)信息

【實戰(zhàn)】

package com.youku.test;

import java.util.Iterator;
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.KeyValue;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
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.util.Bytes;
import org.junit.Before;
import org.junit.Test;

/**
 * HBase Java API Test Demo.
 */
public class HbaseDemo {

       private Configuration conf = null;

       /**
        * 初始化
        */
       @Before
       public void init() {
              conf = HBaseConfiguration.create();
              conf.set("hbase.zookeeper.quorum", "zk01,zk02,zk03");
       }

       /**
        * 刪除表
        * @throws Exception
        */
       @Test
       public void testDrop() throws Exception {
              HBaseAdmin admin = new HBaseAdmin(conf);
              admin.disableTable("yk_test");
              admin.deleteTable("yk_test");
              admin.close();
       }

       /**
        * 插入數(shù)據(jù)
        * @throws Exception
        */
       @Test
       public void testPut() throws Exception {
              HTable table = new HTable(conf, "person_info");
              Put p = new Put(Bytes.toBytes("person_rk_bj_zhang_000002"));
              p.add("base_info".getBytes(), "name".getBytes(), "zhangwuji".getBytes());
              table.put(p);
              table.close();
       }

       /**
        * 刪除某列
        * @throws Exception
        */
       @Test
       public void testDel() throws Exception {
              HTable table = new HTable(conf, "user");
              Delete del = new Delete(Bytes.toBytes("rk0001"));
              del.deleteColumn(Bytes.toBytes("data"), Bytes.toBytes("pic"));
              table.delete(del);
              table.close();
       }

       /**
        * 單條查詢
        * @throws Exception
        */
       @Test
       public void testGet() throws Exception {
              HTable table = new HTable(conf, "person_info");
              Get get = new Get(Bytes.toBytes("person_rk_bj_zhang_000001"));
              get.setMaxVersions(5);
              Result result = table.get(get);

              List<Cell> cells = result.listCells();

              for (Cell c : cells) {
              }

              // result.getValue(family, qualifier); 可以從result中直接取出一個特定的value
              // 遍歷出result中所有的鍵值對
              List<KeyValue> kvs = result.list();
              // kv ---> f1:title:superise.... f1:author:zhangsan f1:content:asdfasldgkjsldg
              for (KeyValue kv : kvs) {
                     String family = new String(kv.getFamily());
                     System.out.println(family);
                     String qualifier = new String(kv.getQualifier());
                     System.out.println(qualifier);
                     System.out.println(new String(kv.getValue()));

              }
              table.close();
       }

       /***
        * 遍歷表
        * @throws Exception
        */
       @Test
       public void testScan() throws Exception {
              HTable table = null;
              try {
                     table = new HTable(conf, "person_info");
                     Scan scan = new Scan();
                     scan.addFamily(Bytes.toBytes("v"));
                     ResultScanner rs = table.getScanner(scan);
                     Iterator<Result> it = rs.iterator();

                     while (it.hasNext()) {
                            Result result = it.next();
                            if (result != null && result.size() > 0) {
                                   byte[] row = result.getRow();
                                   String rowStr = Bytes.toString(row); // rowkey
                                   System.out.println("rowkey:" + rowStr);
                                   byte[] value = result.getValue(Bytes.toBytes("v"), Bytes.toBytes("c"));
                                   if(value != null){
                                          long count = Bytes.toLong(value); // value
                                          System.out.println("colum value:" + count);
                                   }
                                   
                            }
                     }
              } catch (Exception e) {
                     e.printStackTrace();
              } finally {
                     if (table != null) {
                            try {
                                   table.close();
                            } catch (Exception e2) {
                                   e2.printStackTrace();
                            }
                     }
              }
       }

【補(bǔ)充說明】

在使用scan操作時,由于HBase表一般很大,往往需要結(jié)合過濾器使用,詳細(xì)參考《HBase--常用過濾器篇》,另外,若在scan時指定了startRow和stopRow時,結(jié)果不包含stopRow,但是包含startRow,且startRow和stopRow支持部分匹配,實際應(yīng)用中若rowkey設(shè)計比較復(fù)雜,由多部分組成,可以用這種方式查詢符合條件的行。

以上就是HBase中怎么操作API,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文標(biāo)題:HBase中怎么操作API
文章URL:http://aaarwkj.com/article18/gjdcgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、面包屑導(dǎo)航、ChatGPT、企業(yè)建站、用戶體驗、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
日韩丰满少妇在线观看| 性感美女国产av一区二区三区| 国产美女高潮流白浆视频免费看| 白白色最新福利在线视频观看| 欧美日韩综合精品无人区| 亚洲一区日韩精品颜射| 中文字幕不卡一区在线| 国产成人精品视频午夜蜜蜂| 精品人妻一区二区在线99| 超碰av之男人的天堂| 一区二区三区福利视频在线观看| 欧美一级特黄大片做受另类| 永久免费看黄在线观看| 在线看黄视频网站永久免费| 国产一区二区三区av| 国产精品中文一区二区三区| 亚洲伦理av在线观看| 久久综合伊人欧美精品| 国产一区二区三区91精品| 人体蜜桃视频一区二区| 在线观看中文字幕有码| 91精品人妻一区二区三区| 日本高清精品视频在线| 日本特黄特色大片免费| 在线中文字幕日韩精品| 美女av在线免费观看| 日韩欧美黄网站免费看| 国产在线精品成人欧美| 久久精品有码视频免费观看| 欧美在线免费一级黄片| 日本三本道成人免费毛片| 岛国大片日韩在线观看| 欧美国产日韩激情在线| 中文字幕在线五月婷婷| 国产麻豆91精品女同性恋| 欧美日韩一区二区三区在线| 青青草视频免费观看高清在线观看新| 麻豆午夜视频免费在线观看| 欧洲一区二区在线激情| 欧美黑人在线一区二区| 亚洲综合欧美自偷自拍|