在Java中,我连接到Cussandra集群,如下所示:
Cluster cluster = Cluster.builder().addContactPoints("host-001","host-002").build();
Run Code Online (Sandbox Code Playgroud)
我是否需要在那里指定群集的所有主机?如果我有一个1000个节点的集群怎么办?我随机选择几个吗?有多少,我真的随机做了吗?
我只是想学习Cassnadra,我正在做一个简单的练习设置两个节点集群,但是有困难 - 它到目前为止已经工作了.Cassandra版本:2.1.1.
主机操作系统:Centos 6.5 64位
Java:8(Oracle)
节点数:2
节点地址:192.168.0.41和192.168.0.43(静态)
两个盒子上的防火墙都打开了端口:7000,9042,9160,7199
我做了以下设置集群:
将两个框上的cluster_name更改为"MyCluster",在cassandra.yaml和表中都如此处所述:
cassandra - 已保存的群集名称Test Cluster!=已配置的名称
将listen_address分别更改为192.168.0.41和192.168.0.43.
将rpc_address分别更改为192.168.0.41和192.168.0.43.
在41我设置"种子:192.168.0.43"
在43我设置"种子:192.168.0.43"(与41相同)
每个节点自己工作(当另一个节点关闭时),它启动并响应
nodetool status
Run Code Online (Sandbox Code Playgroud)
就好了,继续运行,我也可以用cqlsh连接并运行
describe keyspaces;
Run Code Online (Sandbox Code Playgroud)
这也有效.但是,当我同时运行两个节点时,其中一个节点会在一两分钟后死亡.
确切的症状是:节点仍然响应cqlsh命令描述键空间很好,所以它有点活着,但是当尝试做nodetool状态后,会在nodetool输出上打印错误:
error: No nodes present in the cluster. Has this node finished starting up?
-- StackTrace --
java.lang.RuntimeException: No nodes present in the cluster. Has this node finished starting up?
at org.apache.cassandra.dht.Murmur3Partitioner.describeOwnership
(Murmur3Partitioner.java:130)
....
Run Code Online (Sandbox Code Playgroud)
另一个节点继续正常运行并且它自己报告100%所有权作为集群中唯一的节点.
这是43的system.log部分,它"死"时间:
WARN [GossipStage:1] 2014-11-17 04:33:30,163 TokenMetadata.java:198 - Token -7592767110844961279 changing ownership from /192.168.0.43 to /192.168.0.41
WARN [GossipStage:1] 2014-11-17 …Run Code Online (Sandbox Code Playgroud) 我有 Solr 服务器正在运行(在 Linux 机器上,这并不重要),它加载了 2M 文档,并且在 Java 中搜索工作正常。
然而,我需要编写 C#(客户端)程序来查询它。我下载了 Solr.NET,但我很困惑从何开始。它包含的解决方案无法编译,并且通过 C# 浏览,它看起来不像该程序正在执行我需要执行的操作。
有人有一种用 C# 编写的 Solr.NET 的 Hello World 程序吗?下面我将发布我正在寻找的Java版本,C#版本有人吗?哦,请问,我需要在这样简单的客户端程序中包含哪些最少的程序集?谢谢
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocumentList;
public class SolrHeloWorld // Java
{
public static void main(String[] args)
{
// Connect to server
SolrServer solr = new HttpSolrServer ("http://192.168.1.211:8983/solr/collection1");
// Query for search term 'banana'
SolrQuery query = new SolrQuery();
query.setQuery("banana");
query.setStart(0);
query.setRows(50);
query.set("defType", "edismax");
try
{
QueryResponse response = solr.query(query);
// Print results
SolrDocumentList …Run Code Online (Sandbox Code Playgroud)