HBase(1)--Hmaster

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.hbasegroupId>
            <artifactId>hbase-clientartifactId>
            <version>1.2.6version>
    dependency>
    <dependency>
            <groupId>org.apache.hbasegroupId>
            <artifactId>hbase-serverartifactId>
            <version>1.2.6version>
    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);//将表的状态改变为enable
admin.disableTable(tName);//将表的状态改变为disable

5)删除表

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

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

你可能感兴趣的:(HBase)