按照步骤安装apache-cassandra最新版本。首次启动时(./cassandra -f),我明白了:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/cassandra/thrift/CassandraDaemon
Caused by: java.lang.ClassNotFoundException: org.apache.cassandra.thrift.CassandraDaemon
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)
Could not find the main class: org.apache.cassandra.thrift.CassandraDaemon. Program will exit.
我导出了JAVA_HOME路径等。我做错了什么?我应该注意到我在Ubuntu Lucid机器上。
答案 0 :(得分:3)
答案 1 :(得分:1)
如果使用Ubuntu(Lucid),请使用此处的教程:http://dustyreagan.com/installing-cassandra-on-ubuntu-linux/,它基于debian软件包。从Git构建不起作用。
答案 2 :(得分:1)
如果您在技术上不需要从源代码构建,并且刚刚开始使用新的Cassandra安装而不是升级现有的Cassandra,那么这个答案可能对您有所帮助。
从源码构建时遇到了同样的问题。为了解决这个问题,我在这里使用了“Latest Builds(Hudson)”http://cassandra.apache.org/download/链接的开发版本。
您将遇到的下一个问题是在全新安装时不会设置任何键空间。要解决 问题,您可以使用最新版本0.6.3。这个解决方案对我不起作用,因为我想使用需要0.7的Pycassa。
所以我必须做的是以下步骤:
启动JMX控制台。就个人而言,我找不到运行Cassandra的服务器,所以我需要使用ssh隧道,如下所示:
jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=1080
然后使用这个时髦的网址连接:
service:jmx:rmi:///jndi/rmi://my.hostname.com:8080/jmxrmi
然后在左侧
一旦弄清楚架构的外观,就可以使用相同的步骤在开发过程中添加新的键空间。但是,只有在没有数据的情况下,上述步骤才有效。因此,在关闭服务器之后,您必须使用rm / var / lib / cassandra / *删除所有数据。 (当然,您可以采取其他步骤,在不破坏数据的情况下迁移数据会更复杂。)
我意识到你并没有问过创建密钥空间,但是在cassandra的主干版本上,如果你刚刚开始,这就是你将要遇到的下一个问题。我只花了一天时间解决它,我希望它有所帮助。
答案 3 :(得分:-1)
您能提供更多详情吗?你在使用ubuntu Open JDK 6吗? 此外,您不必从源代码构建。只需从以下网址获取二进制文件: http://mirror.nexcess.net/apache/cassandra/1.1.2/apache-cassandra-1.1.2-bin.tar.gz