HBase(1)--Hmaster

来源:互联网 发布:网络知识竞赛平台 编辑:程序博客网 时间:2024/06/06 07:08

HBase是hadoop datebase的缩写,就是所谓的hadoop的数据库。Hbase是面向列的存储模型。
配置启动HBase,需要通过zookeeper来协调其中的Hmaster的管理,通常配置HBase,会配置buckup-masters(备用节点)。
Hmaster节点的主要作用:
1.配置buckup-masters,启动Hmaster的热备,避免出现单点问题。
2.负责region分布到各个Hregionserver上
3.当单节点上的region数量过大,split之后,负责region的重新分布。
4.当Hregionserver宕机后,负责数据的恢复。
5.通过对象Admin负责表的DDL操作。
通过javaAPI连接到Hbase,进行表的DDL操作。
基本环境:
hadoop-2.6.5
hbase-1.2.6
zookeeper-3.4.10
eclipse
1)先建maven工程,添加maven依赖

    <dependency>            <groupId>org.apache.hbase</groupId>            <artifactId>hbase-client</artifactId>            <version>1.2.6</version>    </dependency>    <dependency>            <groupId>org.apache.hbase</groupId>            <artifactId>hbase-server</artifactId>            <version>1.2.6</version>    </dependency>

2)创建connection连接的两种方式(任意一种均可)

    //利用HBase中的HBaseConfiguration,直接加载配置文件    public static Configuration conf = HBaseConfiguration.create();    public static Connection connection;    public static void getConnection() throws Exception {            connection =  ConnectionFactory.createConnection(conf);    };    //创建Hadoop包下的configuration,调用set方法设置参数    public static Configuration conf = new Configuration();    public static Connection connection;    public static void setConnection() throws Exception {        conf.set("hbase.zookeeper.quorum", "master,slaver1,slaver2");        conf.set("hbase.zookeeper.property.clientPort", "2181");        connection = ConnectionFactory.createConnection(conf);    }

3)创建一张表

public static void createTable(String tableName,String... columnFamily) throws Exception {        //获取Admin        Admin admin = connection.getAdmin();        TableName tn = TableName.valueOf("namespace",tableName);        if (admin.tableExists(tn)) {            System.out.println("表已存在,不能重复创建");            return;        }else {            //TableDescriptor,实现类HTableDescriptor            HTableDescriptor tableDescriptor = new HTableDescriptor(tn);            for (String cf : columnFamily) {                HColumnDescriptor columnDescriptor = new HColumnDescriptor(cf);                tableDescriptor.addFamily(columnDescriptor);            }            admin.createTable(tableDescriptor);            System.out.println("表创建成功");        }    }

4)调用admin中的方法可以改变表的状态

admin.enableTable(tName);//将表的状态改变为enableadmin.disableTable(tName);//将表的状态改变为disable

5)删除表

//删除表之前先将表的状态变为disableadmin.deleteTable(TableName.valueOf(tableName));

6)还可以通过admin.list...等方法列出命名空间,表信息,列簇等基本信息

原创粉丝点击