问题标签 [cassandra]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cassandra - 当节点宕机时,Cassandra 如何重新平衡?
当节点出现故障或不可用时,是否有人有使用Cassandra的经验?我最感兴趣的是集群是否重新平衡以及节点上线或被新机器替换时会发生什么。
cassandra - 我可以动态配置 Cassandra 而无需编辑 XML 来创建列吗?
我可以动态配置 Cassandra 而无需编辑 XML 来创建列吗?
database - 将 Cassandra 集群部署到一组 Linode VPS 实例是否有任何“陷阱”?
我正在学习 Apache Cassandra 数据库 [原文如此]。
在将 Cassandra 部署到像 Linode 或 Slicehost 产品这样的专用硬件上时,是否有人有任何好的/坏的经验?
我认为 Cassandra 将是一种轻松扩展 Web 服务以满足读/写/请求负载的好方法……只需将另一个运行 Cassandra 节点的 Linode 添加到现有集群即可。是的,这意味着在同一个 VPS 上运行公共 Web 服务和 Cassandra 节点(许多人可能会对此表示反对)。
Cassandra 类似 Linode 的部署的优点:
- 专用 VLAN;Cassandra 节点可以私下通信
- 用于配置新 Linode 的 API(并且可能使用安装 Cassandra 及其依赖项等的“StackScript”对其进行配置)
- 价格合适
缺点:
- 每个主机都是一个VPS,当然不是专用的
- 一旦您决定需要 4GB RAM(参见 SoftLayer 专用),RAM/成本比就不是那么好
- 我想只有 1 个磁盘,其中一个更喜欢 2 个磁盘(1 个用于提交日志,另一个磁盘用于数据文件本身)。可能没有实际意义,因为无论如何这是共享硬件。
编辑:发现这有点帮助:http ://wiki.apache.org/cassandra/CassandraHardware
我看到 1GB 是最低要求,但这是建议吗?例如,我可以使用 Linode 720 进行部署(比如 500 MB 可用于 Cassandra)吗?见http://www.linode.com/
nosql - 对于 Cassandra 集群,我绝对需要至少 3 个节点/服务器还是 2 个就足够了?
当然可以运行一个单节点集群,但我想要某种程度的容错。
目前我可以租两台服务器(8GB RAM,私有 VLAN @1GigE),但不能租 3 台。
我的理解是,Cassandra 集群至少需要 3 个节点,因为 2 个节点之间不可能存在多数,解决版本冲突需要多数。哦,等等,我在想“矢量时钟”和 Riak 吗?确认!Cassandra 使用时间戳来解决冲突。
对于 2 个节点,推荐的读/写策略是什么?我通常应该写入所有(两个)节点并从一个(N=2;W=N/2+1;W=2/2+1=2)读取吗?即使是 2 个节点,Cassandra 也会像往常一样使用提示切换,是吗?
这 2 台服务器位于同一个数据中心 FWIW 中。
谢谢!
database - 是否有任何针对 Cassandra 的数据建模练习,例如 Retwis for Redis?
我正在尝试学习如何映射我的应用程序中的实体/演员/对象/事物以存储在 Cassandra 中。有一个很棒的 Redis 教程,用于建模 Twitter 数据和典型的访问模式,称为 Retwis [1]。我找到了几个 Cassandra 的例子。
您是如何开始对 Cassandra 的数据模型产生直觉的?
mysql - 从 MySQL 切换到 Cassandra - 优点/缺点?
对于一些背景知识 - 这个问题涉及在单个小型 EC2 实例上运行的项目,并且即将迁移到中型实例。主要组件是 Django、MySQL 和大量用 python 和 java 编写的自定义分析工具,它们完成了繁重的工作。同一台机器也在运行 Apache。
数据模型如下所示 - 大量实时数据来自各种联网传感器,理想情况下,我想建立一个长轮询方法,而不是当前每 15 分钟轮询的方法(限制为计算统计数据并写入数据库本身)。一旦数据进来,我将原始版本存储在 MySQL 中,让分析工具对这些数据松散,并将统计信息存储在另外几个表中。所有这些都是使用 Django 呈现的。
我需要的关系特征 -
- 按[Cassandra API 中的 SliceRange 似乎对此感到满意]
- 通过...分组
- 多个表之间的多对多关系[Cassandra SuperColumns 似乎适合一对多]
- Sphinx 在这方面给了我一个很好的全文引擎,所以这也是必要的。【在 Cassandra 上,Lucandra 项目似乎满足了这个需求】
我的主要问题是数据读取非常慢(写入也不那么热)。我现在不想在它上面投入大量资金和硬件,我更喜欢可以随时间轻松扩展的东西。从这个意义上说,垂直扩展 MySQL 并非易事(或便宜)。
所以本质上,在阅读了很多关于 NOSQL 并尝试了 MongoDB、Cassandra 和 Voldemort 之类的东西之后,我的问题是,
在中型 EC2 实例上,我是否会通过转移到 Cassandra 之类的东西在读/写方面获得任何好处?这篇文章(pdf) 似乎确实暗示了这一点。目前,我会说每分钟几百次写入将是常态。对于读取 - 由于数据每 5 分钟左右更改一次,因此缓存失效必须很快发生。在某些时候,它也应该能够处理大量并发用户。即使创建了索引,在 MySQL 对大型表进行一些连接时,应用程序的性能也会受到影响——大约 32k 行的东西需要一分钟以上的时间来呈现。(这也可能是 EC2 虚拟化 I/O 的产物)。表的大小约为 4-5 百万行,大约有 5 个这样的表。
鉴于 CAP 定理和最终一致性,每个人都在谈论在多个节点上使用 Cassandra。但是,对于一个刚刚开始发展的项目,部署单节点 cassandra 服务器是否有意义?有什么注意事项吗?例如,它可以取代 MySQL 作为 Django 的后端吗?【推荐吗?】
如果我确实转移了,我猜我将不得不重写应用程序的某些部分来做更多的“管理”,因为我必须进行多次查找来获取行。
Would it make any sense to just use MySQL as a key value store rather than a relational engine, and go with that? That way I could utilize a large number of stable APIs available, as well as a stable engine (and go relational as needed). (Brett Taylor's post from Friendfeed on this - http://bret.appspot.com/entry/how-friendfeed-uses-mysql)
Any insights from people who've done a shift would be greatly appreciated!
Thanks.
java - 为什么 Cassandra 是用 Java 编写的?
关于Cassandra
的问题 为什么会有人用 Java 编写数据库引擎?
我可以理解你为什么想要一个 Java 接口,但是引擎......
我的印象是没有什么比 C/C++ 更快的了,而且数据库引擎不应该比最大速度慢,当然不使用垃圾收集...
谁能解释一下这可能是什么意思/为什么 Cassandra 可以比在 C/C++ 代码上运行的普通 SQL 更快?
编辑:
对不起“为什么是人间地狱”部分,但这对我来说真的没有任何意义。
我忽略了考虑,与普通的普通用户程序不同,数据库只需要启动一次,然后运行很长时间,并且可能还作为服务器上唯一的程序,这不言而喻重要的性能差异。
我更多地比较/引用了我在撰写本文时(或者更确切地说本来希望使用)的“功能失调”(委婉地说)Java 税务程序。
事实上,与使用 Java 编写税务程序不同,使用 Java 编写专用服务器程序非常有意义。
nosql - Cassandra 端口使用情况 - 端口是如何使用的?
在试验 Cassandra 时,我观察到 Cassandra 监听以下端口:
- TCP *:8080
- TCP *:8888
- TCP *:57311
- TCP *:57312
- TCP 127.0.0.1:7000
- TCP 127.0.0.1:9160
- UDP 127.0.0.1:700
Cassandra 如何使用列出的每个端口?
nosql - Cassandra 文件结构 - 文件是如何使用的?
在试验 Cassandra 时,我观察到 Cassandra 写入以下文件:
一般结构似乎是:
Cassandra 文件结构是什么?更具体地说, , 目录是如何使用的data
,目录 ( / / )commitlog
中的文件结构是什么?data
Data
Filter
Index