最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

HBase安装和使用

来源:动视网 责编:小OO 时间:2025-10-01 19:34:08
文档

HBase安装和使用

实验报告一、Hbase数据模型 hbase模式里的逻辑实体包括: (1)表(table):HBase用表来组织数据。表名是字符串(String),由可以在文件系统路径里使用的字符组成。 (2)行(row):在表里,数据按行存储。行由行键(rowkey)唯一标识。行键没有数据类型,总是视为字节数组byte[]。 (3)列族(columnfamily):行里的数据按照列族分组,列族也影响到HBase数据的物理存放,因此,它们必须事前定义并且不轻易修改。表中每行拥有相同列族,尽管行不需要在每个列族里
推荐度:
导读实验报告一、Hbase数据模型 hbase模式里的逻辑实体包括: (1)表(table):HBase用表来组织数据。表名是字符串(String),由可以在文件系统路径里使用的字符组成。 (2)行(row):在表里,数据按行存储。行由行键(rowkey)唯一标识。行键没有数据类型,总是视为字节数组byte[]。 (3)列族(columnfamily):行里的数据按照列族分组,列族也影响到HBase数据的物理存放,因此,它们必须事前定义并且不轻易修改。表中每行拥有相同列族,尽管行不需要在每个列族里
实验报告

一、Hbase数据模型 

hbase模式里的逻辑实体包括: 

(1)表(table):HBase用表来组织数据。表名是字符串(String),由可以在文件系统路径里使用的字符组成。 

(2)行(row):在表里,数据按行存储。行由行键(rowkey)唯一标识。行键没有数据类型,总是视为字节数组byte []。 

(3)列族(column family):行里的数据按照列族分组,列族也影响到HBase数据的物理存放,因此,它们必须事前定义并且不轻易修改。表中每行拥有相同列族,尽管行不需要在每个列族里存储数据。列族名字是字符串(String),由可以在文件系统路径里使用的字符组成。 

(4)列限定符(column qualifier):列族里的数据通过列限定符或列来定位。列限定符不必事前定义,列限定符不必在不同行之间保持一致。就像行键一样,列限定符没有数据类型,总是视为字节数组byte []。 

(5)单元(cell):行键、列族和列限定符一起确定一个单元。存储在单元里的数据称为单元值(value)。值也没有数据类型,总是视为字节数组byte []。 

(6)时间版本(version):单元值有时间版本。时间版本用时间戳标识,是一个long。没有指定时间版本时,当前时间戳作为操作的基础。HBase保留单元值时间版本的数量基于列族进行配置,默认数量是3个。 

HBase的每个数据值使用坐标来访问。一个值的完整坐标包括行键、列族、列限定符和时间版本。由于把所有坐标视为一个整体,因此HBase可以看作是一个键值(key-value)数据库。

二、Hbase分布式部署

1、下载发布包

到HBase官方下载最新的版本 hbase-1.2.6-hadoop2-bin.tar.gz

$ tar xfz hbase-1.2.6-hadoop2-bin.tar.gz

$ cd hbase-1.2.6-hadoop2

2、配置系统环境

            sudo vim /etc/profile

            source /etc/profile

    export HBASE_HOME="/usr/local/share/hbase"

    export PATH=$HBASE_HOME/bin:$PATH

3、修改配置文件:/conf/hbase-site.xml

hbase.rootdir

hdfs://localhost:9000/hbase

hbase.cluster.distributed

true

4、演示

4.1、启动HBase:

4.2、shell演示 建表、插入数据、查询数据、删除表

三、使用Java客户端对对自定的表进行CURD操作

Java代码:

public class myHbase {

    

    private static Configuration conf= null;

    static {

        conf=HBaseConfiguration.create();

    }

    /**

     * column familys add column <--->hbase columnName

     * @param tableName

     * @param familys

     * @throws Exception

     */

    public void createTable(String tableName,String[] familys) throws Exception{

        HBaseAdmin admin = new HBaseAdmin(conf);

        if(!admin.tableExists(tableName)){

            HTableDescriptor desc = new HTableDescriptor(tableName);

            for (int i = 0; i < familys.length; i++) {

                desc.addFamily(new HColumnDescriptor(familys[i]));

            }

              admin.createTable(desc);  

        }else{

            System.out.println("the table:"+ tableName +" exsists");

        };

    }

    /**

     * @param tableName

     * @param rowKey

     * @param family

     * @param qualifier

     * @param value

     * @throws Exception

     */

    public void putData(String tableName,String rowKey, String family,

            String qualifier, String value) throws Exception {

        HTable ht = new HTable(conf, tableName);

        Put put = new Put(Bytes.toBytes(rowKey));

        put.add(Bytes.toBytes(family), Bytes.toBytes(qualifier), Bytes.toBytes(value));

        ht.put(put);

    }

    public static void main(String [] agrs) throws Exception{

        myHbase h= new myHbase();

        String [] familys = {"family1

        h.createTable("mytable", familys);

        h.putData("mytable", "row", "family1", "qualifier:name1", "value1");

    }

}

运行Java应用程序:登录Hbase shell 发现可以get和scan到数据了:hbase(main):016:0> scan 'mytable'

ROW                   COLUMN+CELL                                               

 row                  column=family1:qualifier:name1, timestamp=1354559928275, v

                      alue=value1                                               

1 row(s) in 0.0410 seconds

hbase(main):017:0> get 'mytable','row','family1:qualifier:name1'

COLUMN                CELL                                                      

 family1:qualifier:na timestamp=1354559928275, value=value1                     

 me1                                                                            

1 row(s) in 0.0120 seconds

文档

HBase安装和使用

实验报告一、Hbase数据模型 hbase模式里的逻辑实体包括: (1)表(table):HBase用表来组织数据。表名是字符串(String),由可以在文件系统路径里使用的字符组成。 (2)行(row):在表里,数据按行存储。行由行键(rowkey)唯一标识。行键没有数据类型,总是视为字节数组byte[]。 (3)列族(columnfamily):行里的数据按照列族分组,列族也影响到HBase数据的物理存放,因此,它们必须事前定义并且不轻易修改。表中每行拥有相同列族,尽管行不需要在每个列族里
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top