2023 级课堂测试试卷—HBASE数据库应用-科技成果基本信息填报,搭建Hbase集群,java项目连接Hbase数据库,解决getSubject is supported only if a security manager is allowed

项目需求

一: 搭建hadoop集群

二: 搭建zookeeper集群

三: 搭建Hbase集群

四: java项目连接Hbase数据库

五: 编写前后端完成项目需求

项目需求

image

image

一: 搭建hadoop集群

参考搭建hadoop集群,点击跳转B站

直接使用其中的快照三,hadoop,hive都已经配置好了。
对于没有基础不知道怎么操作的同学,我建议要跟着视频操作一下,重点有以下几个章节
image
image

二: 搭建zookeeper集群

参考搭建zookeeper集群,点击跳转B站

讲得很全面,不过这个zookeeper的压缩包也可以搜索黑马程序员zookeeper的相关视频获取。

这是要改的笔记
/export/data/zkdata

server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

三: 搭建Hbase集群

参考搭建Hbase集群,点击跳转B站

正好,这个视频没有前面搭建zookeeper集群的部分,这样就完整了。

四: java项目连接Hbase数据库

参考java项目连接Hbase数据库,点击跳转B站

实际上就两个类的代码getConnectTestConnect

HBaseConnect来连接hbase数据库

点击查看代码
package com.example;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import java.io.IOException;

public class HBaseConnect {

    public static Connection getConnect() {
        Connection conn = null;
        try {
            Configuration config = HBaseConfiguration.create();
            // 指定各节点主机名(需提前在hosts配置)
            config.set("hbase.zookeeper.quorum", "node1,node2,node3");

            // 添加以下配置来解决安全管理器问题
            config.set("hbase.security.authentication", "simple");
            config.set("hbase.rpc.protection", "authentication");

            conn = ConnectionFactory.createConnection(config);
            System.out.println("已经连接成功");
        } catch (Exception e) {
            System.err.println("连接失败: " + e.getMessage());
            e.printStackTrace();
        }
        return conn;
    }

    public static void closeConn(Connection connect) {
        if (connect == null) {
            System.out.println("连接为空,无需关闭");
            return;
        }

        try {
            if (!connect.isClosed()) {
                System.out.println("关闭HBase连接");
                connect.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

不过直接运行的话会报一个错:getSubject is supported only if a security manager is allowed

修改报错

打开 IntelliJ IDEA

转到 Run -> Edit Configurations...

选择您的 TestConnect 运行配置

在 VM options 字段中添加:

-Djava.security.manager=allow

点击 OK 保存并重新运行程序,注意要在springboot和TestConnect的配置中都添加。

image

可能会有第二个报错:

org.apache.hadoop.util.Shell -- Failed to locate the winutils binary in the hadoop binary path

Hadoop在Windows环境下需要 winutils.exe 工具来支持本地文件系统操作,但程序未能找到该可执行文件。

需要下载并配置winutils:

下载对应Hadoop版本的winutils 下载地址,也可以在黑马程序员的hbase视频中获取

解压到C:\hadoop\bin目录

添加系统环境变量:

HADOOP_HOME=C:\hadoop

在Path中添加%HADOOP_HOME%\bin

五: 编写前后端完成项目需求

项目代码:

我用夸克网盘给你分享了「源代码」,点击链接或复制整段内容,打开「夸克APP」即可获取。
/336638INyp😕
链接:https://pan.quark.cn/s/437597101daa?pwd=YBEW
提取码:YBEW

项目结构及说明,可以看readme文档
image

运行截图:

image

image

image

posted @ 2025-09-15 23:25  雨花阁  阅读(49)  评论(1)    收藏  举报