idea连接Hbase卡住,没有输出

本文探讨了在IDEA中通过HBase连接创建命名空间时遇到的卡顿问题,提出避免使用hbase-site.xml并提供连接配置的替代方案。

1.项目场景 (idea连接hbase)

先检查hadoop,zookeeper,hbase启动没有

 idea连接hbase,创建命名空间,idea一直卡住在日志,没有输出

package com.wf.hbase;

import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;


import java.io.IOException;

public class HbaseDDL {
    //连接
    //  public static Connection connection=HbaseConnectUtil.connection;
    // 添加静态属性 connection 指向单例连接
    public static Connection connection = ConnectUtil.getConnection();

    // 1. 获取 admin
    public static void createNamespace(String namespace) throws
            IOException {

        Admin admin = connection.getAdmin();
        NamespaceDescriptor.Builder builder =
                NamespaceDescriptor.create(namespace);
        // 2.2 给命令空间添加需求
        builder.addConfiguration("user", "atguigu");
        // 2.3 使用 builder 构造出对应的添加完参数的对象 完成创建
        // 创建命名空间出现的问题 都属于本方法自身的问题 不应该抛出
        try {
            admin.createNamespace(builder.build());
        } catch (IOException e) {
            System.out.println("命令空间已经存在");
            e.printStackTrace();
        }
        // 3. 关闭 admin
        admin.close();
    }


    public static void main(String[] args) throws IOException {
        //DDL需要Admin示例来操作
        createNamespace("nazhan");
        //其他代码
        System.out.println("其他代码");
        //关闭connection,重量级的
        ConnectUtil.close();
    }
}

2.解决办法

不要使用resources下面的配置文件hbase-site.xml,虽然源码是读取这个,但是十分的慢

改成手动配置

package com.wf.hbase;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

import java.io.IOException;

public class ConnectUtil {

    private static Connection connection=null;
    public static Connection getConnection()  {
        Configuration conf = new Configuration();
        //2.添加配置参数
        conf.set("hbase.zookeeper.quorum","hadoop102,hadoop103,hadoop104");

        //3.创建hbase的连接
        //默认使用同步连接
        try {
            connection = ConnectionFactory.createConnection();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return connection;
    }


    public static void close() throws IOException {

        if(connection!=null){
            connection.close();
        }

    }
}

IdeaIntelliJ IDEA)是一款流行的集成开发环境,用于开发Java应用程序。要将Idea连接HBase,你需要遵循以下步骤: 1. **安装HBase依赖**:首先确保在项目中已经添加了HBase的依赖,如果你使用Maven,可以在pom.xml文件中添加 `<dependency>` 标签引入HBase的JAR包。 ```xml <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>版本号</version> </dependency> ``` 2. **配置HBase连接**:在Idea中打开Settings(File > Settings 或者 Preferences),选择 "Build, Execution, Deployment" > "Data Sources",然后点击"+"号添加新的数据源。选择 "Hadoop Configuration" 或 "HBase" 类型,并提供必要的连接信息,如HBase服务器地址、端口、以及可能需要的用户名和密码。 3. **创建HBase表和连接**:如果你要在代码中操作HBase,你还需要创建一个HBase表。在你的Java代码中,你可以通过`HBaseAdmin`类来创建表,然后使用`Table`类来连接和操作数据库。 4. **编写HBase操作代码**:使用`Table`对象执行查询、插入、更新或删除等HBase操作。例如: ```java Configuration config = HBaseConfiguration.create(); config.set("hbase.zookeeper.quorum", "zookeeper-hosts"); // 其他必要配置... Connection connection = ConnectionFactory.createConnection(config); Table table = connection.getTable(TableName.valueOf("your-table-name")); // 然后进行读写操作 connection.close(); // 执行完操作后别忘了关闭连接 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值