• HBase2.x(四)HBase API 创建连接


    环境准备

    新建项目后在 pom.xml 中添加依赖:

    注意:会报错 javax.el 包不存在,是一个测试用的依赖,不影响使用

    	<dependencies>
            <dependency>
                <groupId>org.apache.hbasegroupId>
                <artifactId>hbase-clientartifactId>
                <version>2.4.11version>
            dependency>
            <dependency>
                <groupId>org.apache.hbasegroupId>
                <artifactId>hbase-serverartifactId>
                <version>2.4.11version>
                <exclusions>
                    <exclusion>
                        <groupId>org.glassfishgroupId>
                        <artifactId>javax.elartifactId>
                    exclusion>
                exclusions>
            dependency>
            <dependency>
                <groupId>org.glassfishgroupId>
                <artifactId>javax.elartifactId>
                <version>3.0.1-b06version>
            dependency>
        dependencies>
    

    创建连接

    根据官方 API 介绍,HBase 的客户端连接由 ConnectionFactory 类来创建,用户使用完成之后需要手动关闭连接。同时连接是一个重量级的,推荐一个进程使用一个连接,对 HBase的命令通过连接中的两个属性 Admin 和 Table 来实现。

    鉴于代码比较少,不上传gitee了,直接搬套即可

    单线程创建连接

    public class HBaseConnection {
    
        public static void main(String[] args) throws IOException {
    
            //1.创建连接配置对象
            Configuration conf = new Configuration();
    
            //2.添加配置参数
            conf.set("hbase.zookeeper.quorum", "hadoop102,hadoop103,hadoop104");
    
            //3.创建连接
            //默认使用同步连接
            Connection connection = ConnectionFactory.createConnection(conf);
    
            //可以使用异步连接
            CompletableFuture<AsyncConnection> asyncConnection = ConnectionFactory.createAsyncConnection(conf);
    
            //4.使用连接
            System.out.println(connection);
    
            //5,关闭连接
            connection.close();
        }
    }
    
    

    多线程创建连接

    使用类单例模式,确保使用一个连接,可以同时用于多个线程。

    public class HBaseConnection {
    
        //声明一个静态属性
        public static Connection connection = null;
    
        static {
            
            //1.创建链接
            //默认使用同步连接
            try {
                //使用读取本地文件的形式添加参数
                connection = ConnectionFactory.createConnection();
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("连接失败");
            }
        }
    
        /**
         * 连接关闭方法,用于进程关闭时调用
         *
         * @throws IOException
         */
        public static void closeConnection() throws IOException {
            //判断线程是否为 null
            if (connection != null) {
                connection.close();
            }
        }
    
    
        public static void main(String[] args) throws IOException {
        
            //异步连接测试
            System.out.println(HBaseConnection.connection);
            //关闭连接
            HBaseConnection.closeConnection();
        }
    }
    

    在 resources 文件夹中创建配置文件 hbase-site.xml,添加以下内容

    
    
    <configuration>
        <property>
            <name>hbase.zookeeper.quorumname>
            <value>hadoop102,hadoop103,hadoop104value>
            <description>The directory shared by RegionServers.
            description>
        property>
        <property>
            <name>hbase.rootdirname>
            <value>hdfs://hadoop102:8020/hbasevalue>
            <description>The directory shared by RegionServers.
            description>
        property>
        <property>
            <name>hbase.cluster.distributedname>
            <value>truevalue>
        property>
    configuration>
    
    

    打印后结果如下:

    在这里插入图片描述

    此时连接成功!

  • 相关阅读:
    java中BigDecimal除法运算指定小数点保留位数和取舍规则
    TDengine 入门教程⑦——数据库管理工具 | IDEA 连接 TDengine
    如何安装Nacos服务器?
    PHP:命名空间必知必会
    Flink 源码解读系列 DataStream 数据流元素 StreamElement
    pytroch实战12:基于pytorch的网络结构可视化
    工具模板 | 用APOEM方法消除对用户行为的偏见
    桌面会飞的鸟Qt C++小项目
    数据库(1):数据库初识与基本操作
    Web前端:2022年每个开发人员都必须遵循的React最佳实践
  • 原文地址:https://blog.csdn.net/weixin_45417821/article/details/127114330