问题标签 [datastax]

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.

0 投票
1 回答
4643 浏览

cassandra - 在 cassandra 中更改列类型时出错

我在更改 cassandra 表中的列类型时遇到问题。

这是文档的链接,该链接说如果列不是 PRIMARY KEY 的一部分并且没有索引,则可以更改类型。我只是无法让它工作。

当我尝试更改列类型时,出现错误。

我错过了什么或做错了什么?任何帮助表示赞赏。

0 投票
1 回答
1037 浏览

cassandra - 如何在 cassandra 中将环从集群中分离出来

我们有一个 cassandra DSE 集群,其中 10 个节点用于 cassandra 环,10 个节点用于 hadoop 环。现在应用程序将数据写入 cassandra 环,而 cassandra 会将数据复制到 hadoop 环。

我们想将两个环分开,使它们成为两个不同的集群,应用程序同时将数据写入两个集群。

如何分离集群?那可能吗?
我们在集群中有大约 600GB 的数据,我们无法删除它。

0 投票
1 回答
2204 浏览

cassandra - 如果使用 AWS 弹性 IP 地址,Cassandra 无法联系种子……仅适用于私有 IP 地址

我创建了 3 个实例,其中 3 个弹性 IP 地址指向这些实例。

我做了 dsc 的 yum 安装:dsc12.noarch 1.2.13-1 @datastax

并且 /etc/cassandra/default.conf/cassandra.yaml 具有: - 种子:[弹性 IP 列表]

但是当我通过“service cassandra start”启动 cassandra 时,我在 /var/log/cassandra/cassandra.log 中看到:... 启动过程中遇到异常:无法联系任何种子!...果然“nodetool status”显示:无法连接到'127.0.0.1:7199':连接被拒绝

但是:如果我将种子的值更改为使用实例的“私有 IP”,cassandra 就可以正常启动。我希望它与 Elastic IP 一起工作得很好,但事实并非如此。

你知道这是为什么吗?

我希望弹性 IP 工作的原因是我提前知道 IP 地址,因此当我使用 Puppet 配置机器时,我可以在 cassandra.yaml 文件中预先填充种子。直到机器启动后我才知道私有 IP 地址:(

这几乎是以下内容的副本:Cassandra on Amazon EC2 with Elastic IP addresses

0 投票
0 回答
232 浏览

cassandra - Need multiple Index in cassandra

We are migrating from oracle to cassandra. We have a requirement to do minimal changes to the application.

Three questions came up when i am doing POC on cassandra.

  1. In a Oracle we have created multiple composite indexes but i don't find any document saying cassandra will support that. Is it possible to create multiple composite indexes?. If not any suggestion on this.

  2. Our Txn table is having 7 out of 15 columns used in where clause. Without index i cannot put that column in where clause. Even if i create multiple secondary index, In where clause, Casandra will select one column with low cardinality and it will not use other secondary indexes i have created. Any other way to improve the performance?

  3. Problem on creating index on boolean data type. This is how we are decided to create a table/columnfamily

create table dept( emp_name varchar, emp_id int, dept_id int, dept_name varchar, active boolean, primary key(dept_id,emp_id));

In application we have queries like below 1. select * from dept where dept_name='software'; I have created secondary index for dept_name. So This problem is solved.

  1. select * from dept where dept_id=1001 and active = 'Y'; I feel difficult to create indexes for this query. Since active column is a boolean type, creating secondary index is not useful. Without index i will not able to include that condition in where clause.

Any suggestions for my queries?

0 投票
1 回答
64 浏览

maven - 使用 DSE Hadoop/Mahout,org.w3c.dom.Document 的 NoClassDef

尝试运行一个简单的 hadoop 作业,但 hadoop 在“org/w3c/dom/Document”上抛出 NoClassDef

我正在尝试运行“Mahout In Action”一书(https://github.com/tdunning/MiA)中的基本示例。

我使用几乎相同的 maven 设置来执行此操作,但它是为 cassandra 使用而不是文件数据模型而设计的。

但是,当我尝试运行 *-job.jar 时,它会从 datastax/hadoop 端吐出一个 NoClassDef。

我正在使用驱动程序的 1.0.5-dse,因为它是唯一支持当前 DSE 版本的 Cassandra(1.2.1) 的驱动程序,如果这有帮助的话,尽管问题似乎更深。

附件是包含更多信息的要点。有 maven 文件、简要概述和控制台输出。

https://gist.github.com/zmarcantel/8d56ae4378247bc39be4

谢谢

0 投票
1 回答
2508 浏览

cassandra - 具有 kerberos 安全性的 Datastax Java 驱动程序

我正在尝试从 Eclipse 访问启用了 kerberos 的 DSE 集群。

示例连接代码是

我的 dseclient 文件看起来像这样

运行代码时出现以下异常

我正在使用 DSE 3.2.3 和 java 驱动程序 1.0.4

0 投票
2 回答
2379 浏览

cassandra - 如何为 murmur3 分区器生成多数据中心令牌

我有一个有 3 个节点的 cassandra 环,有 3 个节点的 hadoop 环和有 3 个节点的 solr 环都在同一个集群中。

我的计划是将数据写入 cassandra 环并使用 cassandra DC 复制我将数据复制到其他两个环(Hadoop 和 solr)

我为 cassandra 环使用了 vnode,我需要为 hadoop 和 solr 使用令牌,因为 hadoop/solr 不支持 vnode。

我的问题是如何为 murmur3 分区器生成多个数据中心令牌?

0 投票
2 回答
8499 浏览

cassandra - 无法让 DataStax OpsCenter 4.0.3 连接到 Cassandra 2.0.4 集群

我有一个 1 节点 C* 2.0.4 集群正在运行,nodetool 状态显示一个健康的集群。

然后,我使用“sudo yum install opscenter-free”在同一网络上的另一台计算机上安装了 OpsCenter 4.0.3。

在 opscenterd.conf 文件中,我设置 interface = 'OpsCenter 服务器的公共 IP' 并启动 OpsCenter 服务器。

然后我可以看到 OpsCenter 网页并单击使用现有集群。

在 Add Cluster 界面下,我输入了 1 节点 Cassandra 集群的 rpc_address。OpsCenter 接受了它并在下一页上正确显示了集群名称。

但是,没有加载 OpsCenter 中的图表,我看到错误:0 of 0 个代理已连接。我还看到一个闪烁的红色 X,顶部有一个插头图标。

目前在 CentOS 中 OpsCenter 和 C* 节点上的防火墙均已关闭。

如何让 OpsCenter 正确连接到 C* 节点?

这是 OpsCenter 日志显示的内容(注意:我将 IP 替换为 ABCD):

在 Cassandra 节点上,一切看起来都很健康:

但是,我无法 curl OpsCenter 尝试访问的 URL:

在 OpsCenterd.conf 文件中关闭 SSL(默认设置)。

这是我在以下 URL 中看到的内容 http:// OpsCenter 的公共 IP :8888/Dog/nodes

关于如何解决这个问题的任何想法?

注意,在 Cassandra 的 YAML 文件中,rpc_server_type 设置为同步。


更新:

我还尝试使用“yum install datastax-agent”在 C* 节点上手动安装 OpsCenter 代理,然后使用以下设置编辑 address.yaml 文件:

我为 address.yaml 文件尝试了一些不同的设置,但都没有奏效。例如,我尝试只设置 stop_interface 并删除其他 3 行。没用。我还尝试设置为停止和本地接口,但这也不起作用。

当我现在使用“service datastax-agent start”启动 datastax 代理时,Cassandra 服务突然崩溃:

[root@cassandra01 ~]# sudo service cassandra status cassandra dead but pid file存在

当 C* 服务崩溃时,opscenter 代理保持正常运行。如果我停止代理服务并再次启动 C* 服务(sudo service cassandra status),则 C* 成功启动备份并且 nodetool 状态显示健康的 1 节点集群。但是我一启动代理服务,C*服务突然又崩溃了。我在 address.yaml 文件中尝试的所有不同设置都会导致相同的行为。

理想情况下,我宁愿不手动安装代理,而只想将其安装程序从 OpsCenter GUI 推送到 C* 节点,但由于这不起作用,我尝试手动安装代理并将其连接到 OpsCenter,但是不幸的是,这也不起作用。

有时,当 Cassandra 服务崩溃时,我也会在 Cassandra 节点上看到这一点:[root@cassandra01 ~]# sudo service cassandra stoplog4j:WARN No appenders could be found for logger (org.eclipse.jetty.util.log)。log4j:WARN 请正确初始化 log4j 系统。log4j:WARN 有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig。用法:cassandra start|stop|status|restart|reload

这是 Cassandra 节点的 log4j-server.properties 包含的内容:

最后,以下是在 Cassandra 节点上运行的 OpsCenter 代理的 agent.log 显示的内容:

0 投票
2 回答
998 浏览

cassandra - apache cassandra 的 Hector 客户端 - 如何创建表?

我一直在为我的项目使用 Datastax 提供的 Apache Cassandra (v2.x)。我正在使用 Datasatx API 创建一个 ColumnFamily,如下所示:

我现在被要求从 Datastax 提供的 Cassandra 转移到 Apache Cassandra (v2.x) 的普通风味,并使用 Hector API 做同样的事情。

但是我一直无法在 Hector 中找到类似的 API。我到目前为止所做的如下:

我现在被困在这一点上。我在 Hector 中找不到 API,在那里我可以像使用 Datastax API 一样为 CREATE TABLE 提供一个简单的查询字符串(即,通过提供简单的 CQL),我确实在互联网上探索了各种其他选项,但找不到一个简单的解决方案。我在 Hector WIKI 上看到的一个选项是使用 ColumnFamilyTemplate。我看到的其他选项是使用 BasicColumnDefinition。我的另一个选择是使用 Mutator.insert() 操作。

但是这些解决方案都不够清楚我将如何定义我的表列(又名列族)的“数据类型”。

此外,关于序列化器(StringSearlizer 等)和比较器到底是什么,没有足够清晰的指导/API 详细信息。

有人可以帮我解决这个问题吗?我的总目标是在 Hector 中搜索可以接受简单 CQL 查询并执行它们的 API(就像使用 Datastax API 一样)。


@亚历克斯波佩斯库

谢谢澄清,我现在明白了。

我现在修改了我的客户端,如下所示:

我现在使用 cqlsh 查看查询 DESCRIBE COLUMNFAMILY "TEST_CF" 的输出,我得到以下输出:

我无法理解这个输出。我在此输出中看不到“aKey”和“aColumn”列。输出如何将列名显示为“key”、“column1”等(我从未在我的代码中提到它们)。此外,我无法理解此输出中显示的数据类型。

我的期望是输出如下:

您能否指出我在 Hector API 中犯了什么错误,以至于我没有得到预期的输出?另外,如果我希望列数据类型不是 varchar(比如 float);我应该在我的代码中做些什么改变?

0 投票
1 回答
2157 浏览

cassandra - 具有客户端到节点 SSL 加密的 Cqlsh

我正在尝试在我的 DSE 服务器中启用客户端到节点 SSL 加密。

我的 cqlshrc 文件如下所示

当我尝试登录 cqlsh shell 时出现以下错误