我是Ubutu(linux) + Cassandra的新手。
我在我的ubuntu机器上用OpenJdk测试了Cassandra。有一些很好的文章可以解释如何在ubuntu上安装Cassandra,所以我可以这样做。我更改了一些配置值,并检查了它的运行是否正确。
而且,我决定移除cassandra并重新安装,以获得干净的版本。
什么-我-做
我通过以下步骤卸载Cassandra:
apt-get remove cassandra
rm -rf /var/lib/cassandra
rm -rf /var/log/cassandra
rm -rf /etc/cassandra
在那之后,我尝试安装新的cassandra
cassandra apt-get install
错误-消息
sudo cassandra -f
线程"main“java.lang.ExceptionInInitializerError异常由: java.lang.RuntimeException:无法确定log4j配置: log4j-server.properties
在org.apache.cassandra.service.AbstractCassandraDaemon.initLog4j(AbstractCassandraDaemon.java:86)
at org.apache.cassandra.thrift.CassandraDaemon.(CassandraDaemon.java:62)找不到主类:org.apache.cassandra.thrift.CassandraDaemon。程序将退出。`
并且在"/var/lib/cassandra“、"/var/log/cassandra”和"/etc/cassandra“目录下没有文件。
我想知道,我怀念什么。
发布于 2014-05-12 01:51:51
通过执行以下操作,我能够完全卸载Cassandra:
apt-get remove cassandra
-删除cassandra目录
rm -rf /var/lib/cassandra
rm -rf /var/log/cassandra
rm -rf /etc/cassandra
但是,在执行上述操作后,仍然会留下一些东西,如果您在执行此操作后尝试重新安装它,它将不起作用,因为安装会检测到这些剩余的文件,并认为您仍然安装了该软件。您将获得一组新的目录,但它们将是空的。所以,你需要删除所有额外的东西。有些目录和文件需要手动删除。
-查找剩余的Cassandra文件
find / -name 'cassandra'
或,
find / -name '*cassandra*'
(需要删除系统上的所有剩余文件,或者保留一些空目录,或者根本不创建目录)。
上面的命令将返回遗留的文件和目录的列表。去掉它们。
现在,您应该能够执行以下操作:
apt-get update
然后是:
apt-get install cassandra
这样做之后,我得到了一个全新的安装,在启动Cassandra时,它完成了所有第一次启动的事情,并启动并运行。
如果你得到一个关于签名因为公钥而没有被验证的GPG错误,这需要在install语句之前进行设置。
发布于 2012-11-16 20:03:46
AFAIK,您的卸载步骤是正确的。
检查每个目录的权限。在我安装的Ubuntu10.04上的Cassandra 1.1.6中,/etc/cassandra归root所有,/var/lib/cassandra和/var/log/cassandra归cassandra用户和组所有。
另外,您应该使用init脚本来启动cassandra,如下所示:
sudo service cassandra start
而不是直接从sudo开始。
我见过以root身份手动运行cassandra而不是以cassandra用户身份运行权限的情况,这是由init脚本为您处理的。
发布于 2014-06-10 03:18:17
Datastax为此提供了一个bash脚本:
下面是脚本代码:
# Stop services
/etc/init.d/cassandra stop
/etc/init.d/dse stop
/etc/init.d/opscenter-agent stop
# Remove packages
PACKAGES=(dsc dsc1.1 dsc12 dsc20 cassandra apache-cassandra1 dsc-demos \
dse dse-libhadoop-native dse-libhadoop dse-libcassandra dse-hive dse-libhive dse-pig \
dse-libpig dse-demos dse-libsqoop dse-libtomcat dse-liblog4j dse-libsolr dse-libmahout dse-full)
DEB_PACKAGES=(python-cql python-thrift-basic)
RPM_PACKAGES=(python26-cql python26-thrift)
if [ `which dpkg` ]; then
PLIST=(${PACKAGES[@]} ${DEB_PACKAGES[@]})
dpkg -P ${PLIST[*]}
rm -rf /etc/apt/sources.list.d/datastax.list
else
PLIST=(${PACKAGES[@]} ${RPM_PACKAGES[@]})
yum -y remove ${PLIST[*]}
rm -rf /etc/yum.repos.d/datastax.repo
fi
# Cleanup log and configuration files
rm -rf /var/lib/cassandra/* /var/log/{cassandra,hadoop,hive,pig}/* /etc/{cassandra,dse}/* \
/usr/share/{dse,dse-demos} /etc/default/{dse,cassandra}
要重新安装,只需运行此脚本,然后再次安装cassandra,就像第一次安装一样。
编辑:看起来他们的脚本有点过时了。我不得不将dsc20添加到包列表中。
编辑2:链接变坏(是http://www.datastax.com/documentation/opscenter/3.2/webhelp/#opsc/online_help/opscRemovingPackages_t.html,感谢荒木大辅找到了最新的链接)
https://stackoverflow.com/questions/13390775
复制相似问题