标签: cassandra

如何实现零停机时间

对于我们希望使用 Active Active 配置实现零数据库和应用程序停机时间的应用程序。我们的 dB 是 Oracle

以下是我的问题:

  1. 我们如何在 Oracle 中实现主动主动配置?
  2. 引入 Cassandra/HBase(或任何其他无 SQL dbs)云有助于零停机还是仅用于快速检索大型数据库中的数据?
  3. 还有其他选择吗?

感谢和问候, 希拉尔

oracle database cassandra nosql hbase

4
推荐指数
1
解决办法
1178
查看次数

Cassandra:了解复制因子

假设情况:

  1. 设置一个具有 N 个节点的 cassandra 集群。
  2. 创建一个键空间并设置replication_factor为 1 并使用SimpleStrategy.
  3. 添加一些数据。
  4. 删除 1 个节点。

这是否意味着现在缺少 1/N 的数据?

cassandra

4
推荐指数
1
解决办法
1771
查看次数

存储网站图像的最佳方式是什么?

我们正在使用 cassandra 数据库存储网站信息,但我们不确定如何保存图像。

我们可以将它们存储在 cassandra 中,但我们也可以分配一个服务器来存储图像。

Cassandra 对于大数据存储有很好的性能,但是如果我们在 cassandra 中存储图像,我们必须将它们保存为字节。对于任何检索,首先我们必须从 cassandra 读取图像字节并将其存储在一个文件夹中,然后将其地址发送到网页。

你对这个问题有什么想法吗?

image performance storage cassandra big-data

3
推荐指数
1
解决办法
2万
查看次数

“无法绑定到端口”启用 Cassandra 客户端加密

我在 Debian 7 上运行带有三节点集群的 Cassandra 1.2。集群运行良好。但我想为客户端启用加密,如此处所述:ttp://www.datastax.com/documentation/cassandra/1.2/webhelp/cassandra/security/secureSSLClientToNode_t.html

但是当我在进行必要的配置更改后重新启动 Cassandra 时,我在日志中收到此错误,并且 Cassandra 崩溃:

 INFO 20:12:16,734 enabling encrypted thrift connections between client and server
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:243)
Caused by: java.lang.RuntimeException: Unable to create thrift socket to /192.168.0.1:9160
        at org.apache.cassandra.thrift.CustomTThreadPoolServer$Factory.buildTServer(CustomTThreadPoolServer.java:267)
        at org.apache.cassandra.thrift.TServerCustomFactory.buildTServer(TServerCustomFactory.java:46)
        at org.apache.cassandra.thrift.ThriftServer$ThriftServerThread.<init>(ThriftServer.java:105)
        at org.apache.cassandra.thrift.ThriftServer.start(ThriftServer.java:52)
        at org.apache.cassandra.service.CassandraDaemon.start(CassandraDaemon.java:400)
        ... 5 more
Caused by: org.apache.thrift.transport.TTransportException: Could not bind to port 9160
        at org.apache.thrift.transport.TSSLTransportFactory.createServer(TSSLTransportFactory.java:117)
        at org.apache.thrift.transport.TSSLTransportFactory.getServerSocket(TSSLTransportFactory.java:103)
        at org.apache.cassandra.thrift.CustomTThreadPoolServer$Factory.buildTServer(CustomTThreadPoolServer.java:257)
        ... 9 more
Caused by: java.lang.IllegalArgumentException: …
Run Code Online (Sandbox Code Playgroud)

cassandra nosql

3
推荐指数
1
解决办法
1985
查看次数

获取属于 Cassandra 集群的节点列表的最佳方法是什么?

我正在为我操作的一些 Cassandra 集群创建一些脚本。其中一些脚本需要属于集群一部分的节点列表。

nodetool status将打印节点列表及其当前状态,但它打印出的信息比我需要的要多。例如:

$ nodetool status mykeyspace
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address      Load       Tokens  Owns    Host ID                               Rack
UN  10.11.12.13  47.66 KB   1       33.3%   aaa1b7c1-6049-4a08-ad3e-3697a0e30e10  rack1
UN  10.11.12.14  47.67 KB   1       33.3%   1848c369-4306-4874-afdf-5c1e95b8732e  rack1
UN  10.11.12.15  47.67 KB   1       33.3%   49578bf1-728f-438d-b1c1-d8dd644b6f7f  rack1
Run Code Online (Sandbox Code Playgroud)

节点列表应该只是 IP(不需要主机名),我想要像下面这样的干净输出:

10.11.12.13
10.11.12.14
10.11.12.15
Run Code Online (Sandbox Code Playgroud)

最好/最简单的方法是什么?

我将在下面提供我当前的方法来执行此操作,但如果有更好的方法,我很乐意看到它。即使它不使用nodetool命令。

scripting cassandra nodetool

3
推荐指数
1
解决办法
7482
查看次数

cassandra 节点发现

我刚刚建立了一个 IP 地址为“192.168.0.101”、“192.168.0.102”、“192.168.0.103”的 3 节点系统。我已将所有三台机器的配置上的种子值设置为 seeds: "192.168.0.101,192.168.0.102,192.168.0.103"

但是,在其中任何一个上运行 nodetool 时,只会103发现机器。

node101:/opt/cassandra/apache-cassandra-0.8.5/bin# ./nodetool ring -h 192.168.0.101 地址 DC 机架状态状态负载拥有令牌

192.168.0.103 datacenter1 rack1 Up 正常 151.96 KB
100.00% 38174485210079977599903748344879358256

有人能告诉我问题出在哪里吗?

cassandra

1
推荐指数
1
解决办法
3259
查看次数

如何解决 ConfigurationException: 在 Centos7 上配置多节点 Cassandra 集群时缺少必需的指令 CommitLogSync?

目标:在Centos7上配置多节点Cassandra集群


方法

本文档用于配置多节点 Cassandra 集群。

[user@cassandra01 ~]$ cat /etc/cassandra/conf/cassandra.yaml
cluster_name: 'MyCassandraCluster'
num_tokens: 256
seed_provider:
  - class_name: org.apache.cassandra.locator.SimpleSeedProvider
    parameters:
      - seeds: "<ipaddress_cassandra01>,<ipaddress_cassandra02>"
listen_address:
rpc_address: 0.0.0.0
endpoint_snitch: GossipingPropertyFileSnitch
Run Code Online (Sandbox Code Playgroud)

问题

当第一个 Cassandra 节点通过发出以下命令启动时:

sudo systemctl start cassandra
Run Code Online (Sandbox Code Playgroud)

该节点似乎没有启动,并且/var/log/cassandra/cassandra.log指示:

 INFO 12:56:38,057 Loading settings from file:/etc/cassandra/default.conf/cassandra.yaml
 INFO 12:56:40,073 Data files directories: null
 INFO 12:56:40,089 Commit log directory: null
ERROR 12:56:40,097 Fatal configuration error
org.apache.cassandra.exceptions.ConfigurationException: Missing required directive CommitLogSync
        at org.apache.cassandra.config.DatabaseDescriptor.applyConfig(DatabaseDescriptor.java:148)
        at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:112)
        at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:213)
        at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:554)
        at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:643)
Missing required directive …
Run Code Online (Sandbox Code Playgroud)

cassandra centos7

0
推荐指数
1
解决办法
6110
查看次数