HBase JAVA api

这篇博客介绍了如何在HBase 1.2.5中使用Java API进行表的相关操作,包括创建、读写及管理表等核心功能,直接通过示例代码展示。
摘要由CSDN通过智能技术生成

本文是hbase1.2.5,使用java对表相关的操作,直接上代码

package com.sdnware.start04.hbase;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.NamespaceDescriptor;
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.util.Bytes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 
 * Hbase 对表的操作
 * @author chenb.bob
 * 2017年5月9日
 *
 */
public class HBaseTableTools {
   

    private static Logger LOG = LoggerFactory.getLogger(HBaseTableTools.class);

    private static Configuration conf = null;

    static {
        System.setProperty("hadoop.home.dir", "E:/soft/hadoop-2.6.0");
        conf = HBaseConfiguration.create();
    }

    /**
     * 
     * desc:判断命名空间是否存在
     * author:chen.bob
     * time:2017年5月9日 下午2:30:13
     * @param namespaceName
     * @return
     */
    public static boolean namespaceExists(String namespaceName){
        Connection connection = null;
        Admin admin = null;
        try {
            connection = ConnectionFactory.createConnection(conf);
            admin = connection.getAdmin();
            NamespaceDescriptor namespaceDescriptor = admin.getNamespaceDescriptor(namespaceName);
            LOG.info("获取表空间信息:"+namespaceDescriptor.getConfiguration());
            return Boolean.TRUE;
        } catch (IOException e) {
            LOG.error("获取命名空间失败,查看日志查看命名空间"+namespaceName+"是否存在",e);
            return Boolean.FALSE;
        } finally{
            if(null != admin){
                try {
                    admin.close();
                } catch (IOException e) {
                }
            }
            if(null != connection){
                try {
                    connection.close();
                } catch (IOException e) {
                }
            }
        }
    }

    /**
     * 
     * desc:创建命名空间
     * author:chen.bob
     * time:2017年5月9日 下午2:17:10
     * @param namespaceName
     * @return
     */
    public static boolean createNamespace(String namespaceName) {
        Connection connection = null;
        Admin admin = null;
        try {
            connection = ConnectionFactory.createConnection(conf);
            admin = connection.getAdmin();
            NamespaceDescriptor namespaceDescriptor = NamespaceDescriptor.create(namespaceName).build(); 
            //namespaceDescriptor.setConfiguration("hbase.namespace.quota.maxregion", "10");
            //namespaceDescriptor.setConfiguration("hbase.namespace.quota.maxtables", "10");

            admin.createNamespace(namespaceDescriptor);

            return Boolean.TRUE;
        } catch (IOException e) {
            return Boolean.FALSE;
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值