首页 > 数据库 >Windows下Cassandra数据库安装及编程访问

Windows下Cassandra数据库安装及编程访问

时间:2024-11-07 22:18:31浏览次数:3  
标签:bin 数据中心 sigar Windows 编程 Cassandra 连接 cassandra

前提紧要:由于我的Java版本是Java 8所以为了兼容,我选择了apache-cassandra-3.11.11

官网下载链接:https://www.apache.org/dyn/closer.lua/cassandra/3.11.11/apache-cassandra-3.11.11-bin.tar.gz

通常推荐使用Java 8来运行Cassandra 3.x版本,因为它的性能和稳定性在这一组合下得到了优化。你们可以通过命令提示符输入java -version查看自己所对应的版本号

一、安装Cassandra并且配置环境变量

1、直接解压apache-cassandra-3.11.11-bin.tar.gz,记住自己的所解压的目录文件

2、配置环境变量

点击path编辑

输入自己的bin目录

二、配置Cassandra

1、打开Cassandra安装目录,找到conf文件夹中的cassandra.yaml配置文件。

特别注意缩进关系!
修改cassandra.yaml配置,这里可以先复制data_file_directories定位到,记得提前创建好三个文件夹
  • data:用于存储Cassandra的数据文件。它包含了所有Cassandra的表数据文件,数据库的核心数据将会存储在这个目录中。每个表都会有一个对应的子目录,用来存储数据。
  • commitlog:用于存储Cassandra的提交日志(Commit Log)。提交日志记录了所有的写操作,以便在系统崩溃或重启时进行数据恢复。它确保数据的持久性和一致性。
  • saved_caches:存储Cassandra的缓存数据。它包含了预先计算好的缓存内容,可以加速查询操作,提高数据库性能。

data_file_directories:
    - E:\apache-cassandra-3.11.11\data
commitlog_directory: E:\apache-cassandra-3.11.11\commitlog
saved_caches_directory: E:\apache-cassandra-3.11.11\saved_caches
根据Cassandra的安装和配置过程,修改lib\sigar-binsigar-bin_tmp这一步并不是必须的,通常只有在一些特定的情况下才需要执行。
为什么修改?

sigar-bin是Cassandra用来监控系统资源的库,它基于SIGAR(System Information Gatherer and Reporter)工具。如果你在运行Cassandra时遇到与系统监控相关的问题,或者看到类似于"sigar-bin"的问题,可能需要按要求进行修改。

是否需要修改?
  • 如果你没有遇到任何问题,尤其是与SIGAR库相关的错误或警告,那么你可以忽略这一步。
  • 如果你在启动Cassandra时遇到问题,并且错误日志中提到sigar-bin,那么按照文档的要求,将lib\sigar-bin改为sigar-bin_tmp可能会解决问题。

如果Cassandra正常启动并且没有相关错误,通常不需要执行这一步。如果有相关问题,再执行修改。

三、启动

1、打开命令提示符,在你所处的目录列如我的E:\apache-cassandra-3.11.11\bin

cassandra -f

2、最后一行提示出现 Created default superuser role 'cassandra'说明启动成功!

3、注意事项:

1.PowerShell 脚本执行警告:
日志开头的警告表示,你的 PowerShell 脚本执行权限被限制。为了让 Cassandra 具有完整功能,你需要通过运行 powershell Set-ExecutionPolicy Unrestricted 来解决此问题,尤其是在 Windows 平台上。如果不解决这个问题,某些 Cassandra 功能可能会受到影响。
SIGAR 库初始化失败:
2.Cassandra 在启动时尝试初始化 SIGAR 库(一个用于系统信息的工具),但是出现了严重的错误(EXCEPTION_ACCESS_VIOLATION),导致 Cassandra 崩溃。
错误发生在 sigar-amd64-winnt.dll 库中,这通常是因为操作系统与本地库之间的不兼容,或者库文件损坏。
 
3.Java 虚拟机(JVM)崩溃并生成了错误报告(hs_err_pid37516.log),这表明出现了内存访问冲突(EXCEPTION_ACCESS_VIOLATION)。这种类型的错误通常是由于与系统相关的底层问题引起的,比如内存分配错误、库文件损坏等。
 

4、如果你报错了怎么办?通常遇到最多的错误是什么?

初始化 SIGAR 库报错:解决的方法很简单,在apache-cassandra-3.11.2\lib\sigar-bin文件夹中把“sigar-amd64-winnt.dll”这个文件更改为“sigar-amd64-winntt.dll”即可

四、使用DataGrip连接cassandra数据库

点击Driver:Apache Cassandra,下载导入这个包

测试连接成功

进行简单测试
代码如下:
// 1. 创建 Keyspace(数据库)首先,在 Cassandra 中,你需要创建一个 Keyspace,它相当于传统关系型数据库中的数据库。以下是创建一个简单 Keyspace 的语法:
CREATE KEYSPACE IF NOT EXISTS my_keyspace
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};
// 2. 使用 Keyspace
USE my_keyspace;
// 3. 创建表
CREATE TABLE IF NOT EXISTS users (
    user_id UUID PRIMARY KEY,
    username TEXT,
    email TEXT,
    created_at TIMESTAMP
);
// 4. 插入数据
INSERT INTO users (user_id, username, email, created_at)
VALUES (uuid(), 'alice', '[email protected]', toTimestamp(now()));
// 5. 查询数据
SELECT * FROM users;

五、编程访问cassandra数据库

1、使用Java实现cassandra编程访问

创建Maven项目

在pom.xml引入依赖
    <dependency>
      <groupId>com.datastax.oss</groupId>
      <artifactId>java-driver-core</artifactId>
      <version>4.13.0</version>
    </dependency>
编写测试类代码CassandraTest.java
import com.datastax.oss.driver.api.core.CqlSession;

public class CassandraTest {
    public static void main(String[] args) {
        // 建立与Cassandra集群的连接
        try (CqlSession session = CqlSession.builder().build()) {
            // 如果连接成功,则输出连接成功的消息
            System.out.println("Cassandra连接成功!");
        } catch (Exception e) {
            // 如果连接失败,则输出错误信息
            System.out.println("连接Cassandra失败: " + e.getMessage());
        }
    }
}
测试连接

另外一种连接方法的代码--

import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.CqlSessionBuilder;

public class CassandraTest {
    private static final String CONTACT_POINT = "127.0.0.1"; // Cassandra节点IP地址
    private static final int PORT = 9042; // Cassandra端口号
    private static final String LOCAL_DATACENTER = "datacenter1";  // 本地数据中心名称

    private CqlSession session;

    // 建立连接的方法
    public void connect() {
        try {
            CqlSessionBuilder builder = CqlSession.builder();
            builder.addContactPoint(java.net.InetSocketAddress.createUnresolved(CONTACT_POINT, PORT));  // 设置Cassandra的IP和端口
            builder.withLocalDatacenter(LOCAL_DATACENTER);  // 显式指定数据中心
            session = builder.build();
            System.out.println("Cassandra连接成功!");  // 连接成功时输出
        } catch (Exception e) {
            System.out.println("连接Cassandra失败: " + e.getMessage());
        }
    }

    // 关闭连接的方法
    public void close() {
        if (session != null) {
            session.close();
            System.out.println("Cassandra连接已关闭。");
        }
    }

    // 主函数,测试连接
    public static void main(String[] args) {
        CassandraTest connector = new CassandraTest();
        connector.connect();  // 建立连接
        // 在此可以添加执行查询、插入等其他操作
        connector.close();  // 关闭连接
    }
}

关键更改:

withLocalDatacenter(LOCAL_DATACENTER):此方法明确指定了数据中心(在此示例中为 datacenter1)。确保你指定的值与 Cassandra 配置中的数据中心名称一致。通常,datacenter1 是默认数据中心,但如果你的 Cassandra 配置不同,请调整为相应的名称。

数据中心名称的获取:

如果你不确定数据中心的名称,可以通过以下命令在 Cassandra 中查看:

nodetool status

该命令将显示 Cassandra 集群的所有节点和其所在的 "数据中心" 信息。你可以根据输出中的 DC 列来确认数据中心名称。

可能的输出示例:

Datacenter: datacenter1
===============
Status=Up/Down  |  State=Normal/Leaving/Joining/Moving
  Address       |  Load   |  Tokens  |  Host ID                               |  DC         |  Rack
  127.0.0.1     |  10.56 MB|  256     | 6788dee1-1264-4247-9abb-fbf29f958ba3   |  datacenter1|  rack1

其他可能的配置:

如果你的 Cassandra 集群有多个数据中心或者你想设置多个 contact points,也可以进行调整。例如:

builder.addContactPoint(java.net.InetSocketAddress.createUnresolved("127.0.0.1", 9042));  // Contact point 1
builder.addContactPoint(java.net.InetSocketAddress.createUnresolved("127.0.0.2", 9042));  // Contact point 2
builder.withLocalDatacenter("datacenter1");  // 本地数据中心名称

运行结果:

如果连接成功,控制台将显示:


六、总结:

本文详细介绍了如何安装和配置 Cassandra 3.11.11 版本,并通过 Java 8 进行 Cassandra 数据库的访问。首先,安装并配置了 Cassandra,确保正确设置了数据文件目录、提交日志和缓存目录等参数。启动 Cassandra 后,使用 DataGrip 测试连接,并创建了简单的 Keyspace 和表来进行数据操作。在 Java 中,使用 DataStax 提供的 Cassandra 驱动(版本 4.13.0)实现了对 Cassandra 的编程访问。代码展示了如何通过指定本地数据中心 datacenter1 连接到 Cassandra 集群,并提供了异常处理来确保连接的稳定性。

其中遇到了许多报错以及很多问题(关于我的也许也是大部分人的我都列出来了希望对你们有所帮助)

标签:bin,数据中心,sigar,Windows,编程,Cassandra,连接,cassandra
From: https://blog.csdn.net/weixin_73907099/article/details/143579437

相关文章

  • windows & MacBook 下载视频网站视频
    下载yt-dlpgithub地址:https://github.com/yt-dlp/yt-dlp下载:https://github.com/yt-dlp/yt-dlp/releases下载ffmpeg官网:https://ffmpeg.org/解压后,只有bin下的这2个文件放C盘目录下将下面这3个程序,挪到:C:\Windows\System32下载视频在任意路径:cmd命令:yt-dlp{视频......
  • PowerShell DSC(Desired State Configuration)是一种配置管理框架,旨在通过声明性的方式
    PowerShellDSC(DesiredStateConfiguration)是一种配置管理框架,旨在通过声明性的方式自动化和管理计算机的配置。它是WindowsPowerShell的一部分,允许管理员定义和维护计算机系统的目标配置状态,而不是手动进行逐个更改。1. 什么是PowerShellDSC?PowerShellDSC是一种基于声......
  • 少儿编程竞赛与等级考试:家长的参与热情与理性选择
    近年来,随着少儿编程教育的普及,编程竞赛与等级考试逐渐成为家长关注的焦点。数据显示,在时间允许的情况下,66%的家长愿意让孩子参与编程竞赛或等级考试,但大多数家长对此持冷静态度,会根据实际情况选择性地参加竞赛和考试。同时,也有15%左右的家长全力支持孩子参加多项赛事和考试,希......
  • 2024年最受欢迎的编程语言
    No.1JavaScript/TypeScript自从创建第一个网站以使其动态化以来,JavaScript多年来一直受到欢迎。话虽如此,目前JavaScript是整个市场上需求量最大的编程语言。此外,TypeScript(一种具有类型安全性的JavaScript超集)的到来也可能有助于实现这一里程碑。TypeScript的受欢迎程度近......
  • PowerShell 脚本(.ps1)、批处理文件(.bat)、VBScript(.vbs) 和 旧版 JavaScript(.js) 都可以在
    PowerShell脚本(.ps1)、批处理文件(.bat)、VBScript(.vbs)和旧版JavaScript(.js)都可以在Windows系统中运行,但它们的兼容性和支持范围有一定的差异,尤其是在不同的Windows版本上。下面是它们在Windows系统中支持的情况:1. PowerShell脚本(.ps1)兼容性: PowerShell是自Window......
  • 并发编程/6种线程池设计图/1大线程池标准设计与执行规范/2种线程池管理设计(全面篇)
    在现代多核处理器时代,线程池成为了并发编程中不可或缺的工具,它不仅提高了程序性能,还简化了线程管理。线程池允许我们重用有限数量的线程来执行大量任务,从而减少了线程创建和销毁的开销。Java中的ExecutorService接口及其实现类,如FixedThreadPool、SingleThreadExecutor、Ca......
  • Nexpose 6.6.277 for Linux & Windows - 漏洞扫描
    Nexpose6.6.277forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,releasedNov06,2024请访问原文链接:https://sysin.org/blog/nexpose-6/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序新增功能2024年11月......
  • HCL AppScan Standard 10.7.0 (Windows) - Web 应用程序安全测试
    HCLAppScanStandard10.7.0(Windows)-Web应用程序安全测试HCLAppScanStandardv10forWindowsMultilingual请访问原文链接:https://sysin.org/blog/appscan-10/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org市场领先的应用程序安全解决方案(SAST、D......
  • 在Windows上同时运行多个java程序如何区分
    显示命令行后通过jar文件路径区别也可以通过内存大小来判定是哪个程序在服务中也能找到PID用*.bat来启动UdpListener8102效果,会在应用中显示用服务启动则在后台进程中显示 ......
  • windows的显卡型号怎么查、主板型号
    1.使用DirectX诊断工具按下 Win+R 打开“运行”对话框。输入 dxdiag 并按回车。在DirectX诊断工具窗口中,查看“显示”标签页,这里会显示显卡的相关信息。2.使用设备管理器右键点击“开始”按钮,选择“设备管理器”。展开“显示适配器”部分,这里会列出所有安装的显......