我遇到单个节点Cassandra安装的问题。 我可以在日志中没有任何错误地启动它。 我可以创建一个键空间,创建表,插入和删除数据。 但截断不起作用
cqlsh> CREATE KEYSPACE mykeyspace WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 1};
cqlsh> use mykeyspace;
cqlsh:mykeyspace> create table test1 (num int, primary key (num));
cqlsh:mykeyspace> insert into test1 (num) values (12);
cqlsh:mykeyspace> select * from test1;
num
-----
12
(1 rows)
cqlsh:mykeyspace> truncate test1;
Unable to complete request: one or more nodes were unavailable.
此外,如果我尝试运行nodetool describecluster,它也不会返回完整的响应
[XXXX@XXXX dsc-cassandra-2.0.6]$ ./bin/nodetool describecluster
Cluster Information:
Name: Test Cluster
Snitch: org.apache.cassandra.locator.DynamicEndpointSnitch
Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
Schema versions:
UNREACHABLE: [127.0.0.1]
我正在使用
我得到ping 127.0.0.1和ping localhost的响应
我使用telnet检查了所有我知道cassandra可能需要的端口(7000,9160,7199,9042) - 例如
telnet 127.0.0.1 7199
telnet localhost 7199
我可以连接到这些端口。
我正在使用默认的cassandra.yaml。这些是显示IP或主机名的行
listen_address: localhost
rpc_address: localhost
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "127.0.0.1"
我也查看了源代码。我相信问题可以接近方法org.apache.cassandra.service.StorageProxyMBean.describeSchemaVersions()。很可能我没有得到对SCHEMA_CHECK消息的回复 我尝试在log4中启用TRACE登录nodetool(conf / log4j-tools.properties)以获取有关该问题的更多信息,但不知何故log4j没有开始记录(它确实创建了我在appender中设置的文件,但是文件是空的。)
必须有特定于此环境的内容,因为我无法在任何其他环境中重复此问题。所以我无法弄清楚是什么导致了它。
答案 0 :(得分:1)
问题在于Cassandra无法加载snappy。
org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] null
at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:239)
at org.xerial.snappy.Snappy.<clinit>(Snappy.java:48)
at org.xerial.snappy.SnappyOutputStream.<init>(SnappyOutputStream.java:79)
at org.xerial.snappy.SnappyOutputStream.<init>(SnappyOutputStream.java:66)
at org.apache.cassandra.net.OutboundTcpConnection.connect(OutboundTcpConnection.java:359)
at org.apache.cassandra.net.OutboundTcpConnection.run(OutboundTcpConnection.java:150)
我在cassanda.yaml
中关闭了压缩internode_compression: none
现在nodetool都描述了集群,我截断了工作。
我也在这里找到了类似的帖子Cassandra Startup Error 1.2.6 on Linux x86_64
因为为了测试我无法在这台机器上安装另一个glibc我下载了snappy-java-1.0.4.1.jar并在我的snappy-java-1.0.5.jar中替换了libsnappyjava.so
使用这个罐子我可以用
运行cassandrainternode_compression: all
(我安装了glibc 2.5)